一、計算機的組成及其功能
眾所周知,現代計算機設備是由五大部分組成,分別為:運算器、控制器、存儲器、輸入設備、輸出設備,也就是現實生活中可以直觀看到的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
寫的太棒了,而且還有案例做輔助說明,非常好!