一、Linux的登陸流程 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
login:
用戶名:每個用戶名都有一個用戶ID(用戶標(biāo)識符),計算機(jī)處理的就是用戶ID(數(shù)字)而不是用戶名(字符),。
認(rèn)證機(jī)制:Authentication,比如密碼或者其他生物識別技術(shù)
授權(quán):Authorization,資源訪問的權(quán)限授權(quán)。但是授權(quán)不代表權(quán)限可以濫用,因此需要審計。
審計:Audition(通過日志)。
登陸成功后,進(jìn)入prompt,命令提示符界面,因此需要輸入命令來執(zhí)行程序。這些命令既可以是二進(jìn)制程序也可以是腳本文件。對于內(nèi)核而言,嚴(yán)格區(qū)分兩者不同。一般情況,一個可執(zhí)行程序文件,必須有程序的執(zhí)行入口。一般這個二進(jìn)制文件開始處,有幾個特殊字符,我們稱為程序的magic number(魔數(shù))。
二、命令 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
1、命令格式
command? options arguments
選項是用來修改命令的執(zhí)行特性,它有兩種格式:短選項和長選項。其中,短選項可以合并。而且,有些選項是可以帶參數(shù)的?! ?
參數(shù)指定命令的作用對象。
2、命令類型
內(nèi)置命令(shell內(nèi)置):bash內(nèi)部的基本實現(xiàn)管理功能的命令,不同的shell內(nèi)置不同的命令,一般都有cd 等。
外部命令:在文件系統(tǒng)的某個路徑下有一個與命令名稱相對應(yīng)的可執(zhí)行文件,比如ls,su等。雖然執(zhí)行命令都應(yīng)該指定其所在路徑,但是由于環(huán)境變量的存在,所以不必指定其路徑,直接去PATH中查找路徑下,是否擁有該條命令,因此直接使用ls su就可以了。當(dāng)然,如果執(zhí)行一條命令就去查找環(huán)境變量,會特別慢,因此第一次查找后,會在內(nèi)存的緩存中保存該命令和其路徑,使用hash命令可以查看,hash保存的鍵值對,查找時間復(fù)雜度O(1)。
可以用type來顯示指定命令屬于哪種類型。
hao@hao:~$ which ls /bin/ ls hao@hao:~$ which su /bin/ su hao@hao:~$ which cd
? 這里的3,1,1表示命中的次數(shù)
hao@hao:~ $ hash ?戒腑 ? 戒護(hù) 3 /usr/bin/ which 1 /usr/bin/ sudo 1 /usr/bin/printenv
?
3、常用命令:
ls: 顯示文件目錄及屬性(在文件及目錄專門講)
pwd: 顯示當(dāng)前目錄
root@hao:/home/hao# pwd /home/hao
cd: change directory切換目錄。家目錄(Home Directory),也叫主目錄,
cd ,不加參數(shù)可以直接回到家目錄,家目錄用~表示.
cd ~ username,可以直接回到某個用戶的家目錄。
cd - 在當(dāng)前目錄和前一次所在目錄來回切換
root@hao:/home/hao# ls / bin cdrom etc initrd.img lost + found mnt proc run selinux sys usr vmlinuz boot dev home lib media opt root sbin srv tmp var
root@hao: /home/hao# cd / usr root@hao : /usr#
root@hao: /home/hao# cd /usr
root@hao: /usr# cd
root@hao: ~# pwd
/root
root@hao:~# cd ~ hao root@hao:/home/hao#
? date: 顯示當(dāng)前時間
4、環(huán)境變量
環(huán)境變量是命名的內(nèi)存空間,變量聲明的過程就是向內(nèi)存請求空間的過程,向內(nèi)存空間放置數(shù)據(jù)的過程叫做賦值。
hao@hao:~ $ printenv SHELL =/bin/ bash TERM = xterm XDG_SESSION_COOKIE =42b11f1fd75eaec16fec907e00000020- 1413373884.792806 - 1786291659 HUSHLOGIN = FALSE USER = hao LS_COLORS =rs= 0 :di= 01 ; 34 : ln = 01 ; 36 :mh= 00 :pi= 40 ; 33 :so= 01 ; 。。。 MAIL =/var/mail/ hao PATH =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/ games PWD =/home/ hao LANG = en_US SHLVL = 1 HOME =/home/ hao LANGUAGE = zh_CN:zh LOGNAME = hao LESSOPEN =| /usr/bin/lesspipe % s LESSCLOSE =/usr/bin/lesspipe %s % s _ =/usr/bin/printenv
5、使用幫助
對于內(nèi)部命令,可以使用help command
對于外部命令,可以使用command --help 獲取簡要幫助信息。
當(dāng)然無論內(nèi)部還是外部命令,可以通過man命令查看命令使用手冊,比如man ls,可以打開命令使用手冊。對于內(nèi)部命令,不是man的內(nèi)部命令,而是man的這個內(nèi)部命令所屬的shell,如man cd,會顯示bashell的,因此內(nèi)部命令很少使用man命令。
man:分章節(jié),8個章節(jié)。默認(rèn)顯示第一個出現(xiàn)的章節(jié)(不一定是第一章),可以通過whatis command 來查看命令出現(xiàn)的章節(jié)。
hao@hao:~$ whatis ls whatis: can ' t set the locale; make sure $LC_* and $LANG are correct ls ( 1 ) - list directory contents
root@hao:~ # whatis read read ( 2 ) - read from a file descriptor
?
1:用戶命令 (/bin,/usr/bin,usr/local/bin)2:系統(tǒng)調(diào)用 3:庫調(diào)用? 4:設(shè)備文件 5:文件格式(解釋被指文件的語法) 6:游戲 7:雜項
8:管理命令(/sbin,/usr/sbin,/usr/local/sbin)
DATE( 1 ) User Commands DATE( 1 ) NAME date - print or set the system date and time SYNOPSIS date [OPTION]... [+ FORMAT] date [-u|--utc|-- universal] [MMDDhhmm[[CC]YY][.ss]] DESCRIPTION Display the current time in the given FORMAT, or set the system date . -d, -- date = STRING display time described by STRING, not `now ' -f, -- file = DATEFILE like -- date once for each line of DATEFILE ...
如/etc/passwd文件保存的是用戶的情況,man 5 passwd 便可以看該文件的語法。
root@hao:~# cat /etc/ passwd root:x: 0 : 0 :root:/root:/bin/ bash daemon:x: 1 : 1 :daemon:/usr/sbin:/bin/ sh bin:x: 2 : 2 :bin:/bin:/bin/ sh
... root@hao: ~# man 5 passwd
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
