馬哥教育網絡20期+第一周練習博客

一、計算機的組成及其功能

        眾所周知,現代計算機設備是由五大部分組成,分別為:運算器、控制器、存儲器、輸入設備、輸出設備,也就是現實生活中可以直觀看到的CPU、內存、硬盤、主板、鼠標、鍵盤、顯示器等設備。那么,這五大部分與現實生活中看到的硬件設備是怎樣的對應關系呢?下面我會一一說明。

 
CPU:中央處理器(Central Processing Unit),是一塊超大規模的集成電路,包括了運算單元、控制單元與寄存器,運算單元主要是指算術邏
     輯運算單元,控制單元也就是CPU指令,指令又分為特權指令與普通指令兩種,寄存器怎是用來保存指令執行過程中臨時需要存放的數據。運
     算器、控制器、寄存器三者共同構成了CPU。 
內存:Memory,是一個編制存儲設備,是CPU能直接尋址的存儲空間,是由一些電路板、芯片、金手指組成,用于暫時存放CPU中的運算數據以及與
     硬盤等外部存儲設備進行數據交換,在計算機運行過程中,CPU會把需要運算的數據存儲到內存中,運算時直接從內存中進行調用數據,運算
     完成后,再把結果輸出到內存當中。 
硬盤:計算機的主要存儲媒介之一,用來保存計算機運行所需要的程序。當今,硬盤基本分為兩大類:機械硬盤(HDD)與固態硬盤(SDD),HDD
     采用磁性碟片的方式來存儲數據,SDD則采用閃存顆粒來存儲數據。 
主板:MainBoard,主要用于將CPU、內存、硬盤、外設等設備進行連接。主板上最重要的構成組件是芯片組,芯片組通常是由南橋和北橋組成,北
     橋芯片提供對CPU的類型和主頻、內存的類型和最大容量、PCI/AGP/ISA插槽等支持,南橋芯片則是提供對鍵盤控制、時鐘控制、總線控制等
     支持。 
鼠標、鍵盤:輸入設備 
顯示器:輸出設備

二、Linux各個發行版之間的聯系與區別

Linux發行版主要有slackware、debian、redhat、ArchLinux、Gentoo等。
        
slackware:主流發行版為S.u.S.E,基于S.u.S.E的二次發行版則是openS.u.S.E 
debian:主流發行版為ubuntu,基于ubuntu的二次發行版為mint 
redhat:主流發行版為RHEL(RedHat Enterprise Linux),CentOS則是RHEL的克隆版,并且完全免費試用,但RHEL不提供任何的技術支持;Fedora
    則是RHEL的實驗版本,每次更新都會合入新的功能,測試成功的功能則會合入到RHEL的版本中 
ArchLinux:是一個輕量簡潔的發行版 
Gentoo:據說是一款非高手不可玩的自由操作系統

三、Linux哲學思想

一切皆文件
由眾多單一目的的小程序組成,組合小程序來完成復雜的任務
盡量避免跟用戶交互
使用純文本文件保存配置信息

四、命令使用格式以及常用命令介紹

COMMAND [OPTIONS...] [ARGUMENTS...]    
    選項:用于啟用或關閉命令的某個或某些功能;
        短選項:-c, 例如:-l, -h
            多個短選項可命令使用,例如-l -h, 可寫作-lh;
        長選項:--word,例如:--long, --human-readable
    參數:命令的作用對象

詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用

ifconfig:configure a network interface(配置內核固有的網絡接口)

命令格式:

ifconfig [-v] [-a] [-s] [interface]
ifconfig [-v] interface [aftype] options | address …

如果ifconfig沒有給定參數,那么則會顯示當前系統當中活動的網絡接口的狀態,例如

[root@localhost ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.2.99  netmask 255.255.255.0  broadcast 192.168.2.255
    inet6 fe80::20c:29ff:fe59:590b  prefixlen 64  scopeid 0x20<link>
    ether 00:0c:29:59:59:0b  txqueuelen 1000  (Ethernet)
    RX packets 45596  bytes 20196166 (19.2 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 20734  bytes 3212158 (3.0 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
    inet 127.0.0.1  netmask 255.0.0.0
    inet6 ::1  prefixlen 128  scopeid 0x10<host>
    loop  txqueuelen 0  (Local Loopback)
    RX packets 16  bytes 1224 (1.1 KiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 16  bytes 1224 (1.1 KiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

如果給定的參數是一個接口,那么就會顯示這個接口的狀態

[root@localhost ~]# ifconfig eno16777736
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.2.99  netmask 255.255.255.0  broadcast 192.168.2.255
    inet6 fe80::20c:29ff:fe59:590b  prefixlen 64  scopeid 0x20<link>
    ether 00:0c:29:59:59:0b  txqueuelen 1000  (Ethernet)
    RX packets 45596  bytes 20196166 (19.2 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 20734  bytes 3212158 (3.0 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

如果給定-a選項,則會顯示內核當中所有的網絡接口信息,包括down掉的網絡接口,例如:              

[root@localhost ~]# ifconfig -a
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.2.99  netmask 255.255.255.0  broadcast 192.168.2.255
    inet6 fe80::20c:29ff:fe59:590b  prefixlen 64  scopeid 0x20<link>
    ether 00:0c:29:59:59:0b  txqueuelen 1000  (Ethernet)
    RX packets 45717  bytes 20207023 (19.2 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 20798  bytes 3219966 (3.0 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
    inet 127.0.0.1  netmask 255.0.0.0
    inet6 ::1  prefixlen 128  scopeid 0x10<host>
    loop  txqueuelen 0  (Local Loopback)
    RX packets 16  bytes 1224 (1.1 KiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 16  bytes 1224 (1.1 KiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
    inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
    ether 52:54:00:f7:9e:82  txqueuelen 0  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
virbr0-nic: flags=4098<BROADCAST,MULTICAST>  mtu 1500
    ether 52:54:00:f7:9e:82  txqueuelen 500  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

如果給定-s選項,則會以簡短的信息顯示內核當中活動的網絡接口信息,例如:

[root@localhost ~]# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eno16777  1500    45758      0      0 0         20828      0      0      0 BMRU
    lo       65536       16      0      0 0            16      0      0      0 LRU
    virbr0    1500        0      0      0 0             0      0      0      0 BMU

使用up、down選項則會將指定的網絡接口打開或關閉,例如:

[root@localhost ~]# ifconfig lo down
[root@localhost ~]# ifconfig lo up

echo:Echo the STRING(s) to standard output.(將字符串輸出到標準輸出) 

命令格式:

echo [SHORT-OPTION]... [STRING]...
echo LONG-OPTION

使用-n選項,則是在尾部繼續輸出,不啟用新的行,例如:

[root@localhost ~]# echo -n /etc/issue
/etc/issue[root@localhost ~]#

使用-e選項,則允許使用反斜杠轉義

使用-E選項,則不允許使用反斜杠轉義(默認值)

在-e選項生效的情況下,可以使用反斜杠進行轉義,來達到要實現的目的,例如:

\\  backslash  對反斜杠進行轉義
\b  backspace  退格
\n  new line 新的一樣
\r  carriage return 回車
\t   horizontal tab 水平制表符
\v  vertical tab 垂直制表符                
[root@localhost ~]# echo -e '\\abc\babc\n\raaa\tabc\vabc'
\ababc
aaa     abc
           abc

tty:print the file name of the terminal connected to standard input.(打印來自標準輸入終端的文件名)

命令格式:

tty [OPTION]...

不給定任何參數,則直接輸出當前終端的文件名稱,例如:

[root@localhost ~]# tty
/dev/pts/2

-s選項,不打印任何東西,僅返回推出狀態,例如:

[root@localhost ~]# tty -s
[root@localhost ~]# echo $?
0

startx:initialize an X session(初始化一個圖形界面的會話)

命令格式:

startx [ [ client ] options ... ] [ -- [ server ] [ display ] options ... ]

舉例:

[root@localhost ~]# startx -- --depth 16

export:set the export attribute for variables(設置屬性變量)

命令格式:

export name[=word]...
export -p

顯示當前屬性變量:

[root@localhost ~]# export -p 
[root@localhost ~]# export

設置環境變量:

[root@localhost ~]# export PATH=/local/bin:$PATH

pwd:print name of current/working diretory(打印當前或工作目錄的名稱)

命令格式:

pwd [OPTION]... 
-L,--logical,使用PWD環境,即使包含符號鏈接
-P,--physical,避免所有的符號鏈接

history:管理歷史命令

命令格式:

history [OPTION]...

-a: 追加本次會話新執行的命令歷史列表至歷史文件中

[root@localhost ~]# history -a

-d: 刪除歷史中指定的命令

[root@localhost ~]# history -d

-c: 清空命令歷史;

[root@localhost ~]# history -c

快捷操作:

!#:調用歷史命令中的第#條命令
!string:調用歷史中最近一個以string開頭的命令
!!:上一條命令

shutdown:halt,power-off or reboot the machine(停止、關閉電源、重啟機器)

命令格式:

shutdown [OPTIONS...] [TIME] [WALL...]

-H,–halt:停止機器

[root@localhost ~]# shutdown -H

-P,–poweroff:關閉機器的電源

[root@localhost ~]# shutdown -P

-r,–reboot:重啟機器

[root@localhost ~]# shutdown -r

-h:等同于poweroff,除非–halt被指定

[root@localhost ~]# shutdown -h

-k:不進行停止、關閉電源、重啟的操作,只是發送這些消息

[root@localhost jobs]# shutdown -k
Shutdown scheduled for Sun 2016-06-19 20:14:19 CST, use 'shutdown -c' to cancel.
[root@localhost jobs]# 
Broadcast message from root@localhost.localdomain (Sun 2016-06-19 20:13:19 CST):
The system is going down for power-off at Sun 2016-06-19 20:14:19 CST!

poweroff:halt,power-off or reboot the machine(停止、關閉電源、重啟機器)

命令格式:

halt [OPTIONS...]
poweroff [OPTIONS...]
reboot [OPTIONS...]

–halt:停止機器,不管是調用三個命令中的哪一個

[root@localhost jobs]#poweroff --halt

-P,poweroff:關閉機器的電源,不管是調用三個命令中的哪一個

[root@localhost jobs]#poweroff -P

–reboot:重啟機器,不管是調用三個命令中的哪一個

[root@localhost jobs]#poweroff --reboot

reboot:與poweroff用法基本一樣,此處不再贅述

hwclock:query or set the hardware clock(查詢或者設置硬件時間)

命令格式:

hwclock [function] [option...]

-s,–hctosys:將硬件時間設置為系統時間

[root@localhost jobs]# hwclock -s

-w,–systohc:將系統時間設置為硬件時間

[root@localhost jobs]# hwclock -s

date:print or set the system date and time(打印或者設置系統日期和時間)

命令格式:

date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

FORMAT: 格式符號

%D
%F
%T

date [MMDDhhmm[[CC]YY][.ss]]:設置

MM: 月分
DD:幾號
hh: 小時
mm: 分鐘
YY: 兩位年份
CCYY: 四位年份
.ss: 秒鐘

五、獲取命令幫助     

內部命令

help  COMMAND

外部命令

獲取命令位置

which、whereis

獲取幫助:

1、COMMAND –help

COMMAND -h

2、使用手冊manual

man COMMAND

手冊頁位于/usr/share/man目錄下,分為man1、man2、……man8

man1:用戶命令
man2:系統調用
man3:C庫調用
man4:設備文件及特殊文件
man5:配置文件格式
man6:游戲
man7:雜項
man8:管理類命令

注意:有些幫助文檔不止存在于一個章節中,查看指定的章節

man  #  COMMAND

man命令的配置文件:/etc/man.conf,指明新的手冊文件搜索位置 MANPATH  /PATH/TO/SOMEWHERE

man -M /PATH/TO/SOMEWHERE COMMAND:到指定位置下搜索COMMAND命令的手冊也并顯示   

幫助手冊的段落說明:

MANE:名稱
SYNOPSIS:摘要
  []:可選內容
  <>: 必選內容
  a|b:二選一
  ...: 同一內容可出現多次
DESCRIPTION:描述
OPTIONS:選項
EXAMPLES:例子
AUTHOR:作者
REPORTING BUGS:提交BUGS
SEE ALSO:參考其他

man命令的操作方法:

Space, ^V, ^f, ^F: 向文件尾翻屏;
b, ^B: 向文件首部翻屏;
d, ^D: 向文件尾部翻半屏;
u, ^U: 向文件首部翻半屏;
RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行;
y or ^Y or ^P or k or ^K:向文件首部翻一行;
q: 退出;                            
#:跳轉至第#行;
1G: 回到文件首部
G:翻至文件尾部

文件搜索:

/KEYWORD:以KEYWORD指定的字符串為關鍵字,從當前位置向文件尾部搜索;不區分字符大小寫;
n: 下一個
N:上一個                        
?KEYWORD:  以KEYWORD指定的字符串為關鍵字,從當前位置向文件首部搜索;不區分字符大小寫;
n: 跟搜索命令同方向,下一個
N:跟搜索命令反方向,上一個

3、信息頁

info COMMAND

4、程序自身的幫助文檔

README、INSTALL、ChangLog

5、程序官方文檔

Documentation

6、發行版的官方文檔

7、Google

六、Linux發行版的基礎目錄名稱命名法則以及功用規定 

/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader、grub)都存放于此目錄
/bin:供所有用戶使用的基本命令,不能關聯至獨立分區,OS啟動即會用到的程序
/sbin:管理類的基本命令,不能關聯至獨立分區,OS啟動即會用到的程序
/lib:基本共享庫文件,以及內核模塊文件(/lib/modules)
/lib64:專用于x86_64系統上的輔助共享庫文件存放位置
/etc:配置文件目錄(純文本文件)
/home/USERNAME:普通用戶家目錄
/root:管理員的家目錄
/media:便攜式移動設備掛載點 cdrom usb
/mnt:臨時文件系統掛載點
/dev:設備文件及特殊文件存儲位置
   b:block device,隨機訪問
   c:character device,線性訪問
/opt:第三方應用程序的安裝位置
/srv:系統上運行的服務用到的數據
/tmp:臨時文件存儲位置
/usr:universal shared,read-only data
    /bin:保證系統擁有完整功能而提供的應用程序
    /sbin:管理類的基本命令
    /lib:基本共享庫文件
    /lib64:專用于x86_64系統上的輔助共享庫文件存放位置
    /include:C程序的頭文件(header files)
    /share:結構化獨立的數據,例如doc,man等
    /local:第三方應用程序的安裝位置,包含/bin,/sbin,/lib,/lib64,/etc,/share
/var:variable data files
    /cache:應用程序緩存數據目錄
    /lib:應用程序狀態信息數據
    /local:專用于為/usr/local下的應用程序存儲可變數據
    /lock:鎖文件
    /log:日志目錄及文件
    /opt:專用于為/opt下的應用程序存儲可變數據
    /run:運行中的進程相關的數據,通常用于存儲進程的pid文件
    /spool:應用程序數據池
    /tmp:保存系統兩次重啟之間產生的臨時數據
/proc:用于輸出內核與進程信息相關的虛擬文件系統
/sys:用于輸出當前系統上硬件設備相關信息的虛擬文件系統
/selinux:security enhanced Linux,selinux相關的安全策略等信息的存儲位置

原創文章,作者:Anaconda,如若轉載,請注明出處:http://www.www58058.com/16849

(0)
AnacondaAnaconda
上一篇 2016-06-23 11:09
下一篇 2016-06-23 11:10

相關推薦

  • 第四周作業

    第四周作業
    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。
    2、編輯/etc/group文件,添加組hadoop。
    3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。
    4、復制/etc/skel目錄為/home/hadoop,要求修改hadoop目錄的屬組和其它用戶沒有任何訪問權限。
    5、修改/home/hadoop目錄及其內部所有文件的屬主為hadoop,屬組為hadoop。
    6、顯示/proc/meminfo文件中以大寫或小寫S開頭的行;用兩種方式;
    7、顯示/etc/passwd文件中其默認shell為非/sbin/nologin的用戶;
    8、顯示/etc/passwd文件中其默認shell為/bin/bash的用戶;
    9、找出/etc/passwd文件中的一位數或兩位數;
    10、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;
    11、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;
    12、打出netstat -tan命令執行結果中以‘LISTEN’,后或跟空白字符結尾的行;
    13、添加用戶bash, testbash, basher, nologin (此一個用戶的shell為/sbin/nologin),而后找出當前系統上其用戶名和默認shell相同的用戶的信息;

    2018-06-07
  • Linux 用戶及權限管理(未完)

    1、查看(登錄)用戶名稱及所啟動的進程 A、使用w命令查看登錄用戶正在使用的進程信息 w命令用于顯示已經登錄系統的用戶的名稱,以及他們正在做的事。該命令所使用的信息來源于/var/run/utmp文件。w命令輸出的信息包括: 用戶名稱 用戶的機器名稱或tty號 遠程主機地址 用戶登錄系統的時間 空閑時間(作用不大) 附加到tty(終端)的進程所用的時間(JC…

    Linux筆記 2018-05-28
  • LVS

    LVS概述 1.LVS:Linux Virtual Server全稱叫做linux虛擬服務器,是一個虛擬的服務器集群系統。本項目在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。四層路由器(交換),根據請求報文的目標IP和目標協議及端口將其調度轉發至后端主機集群中的某臺RealServer(真實服務器),根據調度算法來挑選RS; 主要有…

    Linux干貨 2016-11-07
  • 分布式存儲介紹、FastDFS 部署

    什么是分布式系統? 簡單來說,多臺主機提供同一個服務,例如負載均衡集群,就是一個分布式系統。 什么是分布式存儲? 看看某寶,上面多少圖片,如果使用傳統的單機存儲,需要準備多大的磁盤空間?讀寫性能如何提升? 上圖就是一個分布式存儲的結構,此處存儲節點不在是磁盤,而是多個主機組成,多個主機內部通信實現數據副本,客戶端發來的請求發往前端,前端分發至后端,有點像負載…

    2017-03-08
  • 搭建LAMP+NFS(附加mysql共享NFS目錄練習總結)

    練習一 環境布局: 主機6 route A (10.1.32.14)作為DNS服務器 主機centos 7 class (10.1.32.3)作為Apache,PHP(模塊方式)服務器1(有discuz程序) 主機centos 7 server (10.1.32.13)作為Apache,php(模塊方式)服務器2(無discuz) 主機centos 6 cl…

    系統運維 2016-10-25
  • N26-第七周博客作業

    一、創建一個10G分區,并格式為ext4文件系統; 1、 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;          A、創建一個10G的磁盤空間 [root@VM_221_40_centos ~]#fdisk /de…

    2017-07-09

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-06-23 11:30

    寫的太棒了,而且還有案例做輔助說明,非常好!

欧美性久久久久