歡迎您光臨本站 註冊首頁

Linux的基礎知識二

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

Linux基礎知識二:

1、控制命令的執行方式:

Ctrl C:取消命令的執行;

用;隔開隔開多條命名以實現在一行中執行多條命令;

2、命令的分類:

內部命令:隸屬於某一個已經打開的shell程序的命令;

外部命令:在系統的某個路徑下存在一個與命令名稱相同的可執行文件的命令;

# which command:查看某一個命令的路徑;

# type command :查看某一個命令是內部的命令還是外部命令;

3、ls [options][file|directory]

# ls file:將文件名再顯示一遍;

# ls dirctory :顯示目錄裡面的文件名;

4、如何獲得命令幫助:

1、大多數外部命令都可以通過--help獲取幫助信息;(有寫可以使用-h獲取幫助)

2、內部命令可以使用help command來獲取幫助信息;

3、查看命令的手冊: # man command;

4、查看命令的信息頁:# info command,含有超鏈接,可以實現在文檔之間進行跳轉的;

5、命令自身附帶的官方文檔存放路徑:/usr/share/doc/command-version

6、http://www.redhat.com

7、google搜索;

5 1】如何使用man(manual)查看命令手冊頁:

# man [chapter]

例如:# man 1 ls ,如果不加chapter時,則使用命令首次出現的手冊頁作為默認顯示的幫助手冊;

man 是分章節的,按命令類型歸類,不同類別的命令幫助手冊可能位於不同的章節中;同一個命令可以歸類為多個章節的,則在多個章節中均可以存在手冊頁;

man的八個章節:

1、用戶命令;

2、系統調用相關的幫助信息;

3、庫調用幫助信息;

4、特殊文件說明(通常指設備文件的說明);

5、文件格式(通常指配置文件的格式);

6、遊戲有關的幫助信息;

7、雜項;

8、管理命令(只有管理員可以執行的命令);

2】# whatis command:查看命令的手冊頁在哪個或哪些章節中有幫助手冊.

whatis:whatis所依賴的資料庫不是自動生成的,而是裝完系統后使用makewhatis生成的;

makewhatis被做成了系統任務,每隔一些時間自動執行一次.如果其不能夠自動執行,則可以手動執行:# makewhatis.makewhatis這個命令會遍歷系統的所有命令的手冊頁,然後生成資料庫.

3】man手冊通常都是壓縮后存放的,默認情況下存放在/usr/share/man下面,但並非所有的man手冊頁都壓縮存放在該目錄下.

/etc/man.config中存放man的手冊頁的路徑信息,當我們配置完一個命令后,需要在該配置文件中指明該命令的手冊頁存放位置才能使用man命令查看該命令的手冊頁.

4】手冊頁說明:

命令手冊頁中用大寫的粗體顯示的稱為該手冊頁的不同段落;

NAME:命令說明.

SYNOPSIS:命令的使用格式,[]表示選項可選;<>表示選項必選;...,表示可以有多個;|,表示多選一;{},將多選一的選項括起來,以避免歧義.

DESCRIPTION:命令描述信息.

OPTIONS:命令可選的選項.

AUTHOR:命令的作者;

REPORTING BUGS:向某郵箱報告bugs信息.

COPYRIGHT:版權信息.

SEE ALSO:其他途徑獲取命令的幫助信息.

FILES:說明命令依賴的配置文件.

EXAMPLES:命令的使用樣例.

5】man -M COMMAND-PATH COMMAND:臨時將手冊頁載入到man路徑下以便可以用man命令來查看命令的幫助信息,開機重啟后無效.

man -k command:顯示出跟命令相關的所有命令的手冊頁的位置.

6】man手冊頁中如何翻屏?

空格鍵:往文件尾部翻一屏;

b鍵:往文件首部翻一屏;

enter鍵: 一行一行的往文件尾部看;

k鍵:一行一行的往文件首部看;

G鍵:跳到文件尾部;

1G:跳到文件首部;

7】man中如何搜索字元串?

/keyword:從文件首部向下尋找;

n鍵:當查找的字元串有多個的時候,按n鍵表示向文件尾部查找,而且查找的是每一行首次出現的匹配字元串.

N鍵:當查找的字元串有多個的時候,按N鍵表示向文件首部查找,而且查找的是每一行首次出現的匹配字元串.

?keyword:從文件尾部向下尋找;

n鍵:當查找的字元串有多個的時候,按n鍵表示向文件首部查找,而且查找的是每一行首次出現的匹配字元串.

N鍵:當查找的字元串有多個的時候,按N鍵表示向文件尾部查找,而且查找的是每一行首次出現的匹配字元串.

6、cp 源文件 目標位置:服務某一個文件到某一個目標位置去.

7、history

-c:清空此前的命令歷史.

-d n :刪除第n條命令.

n:顯示命令歷史最近n條命令,包括當前命令和錯誤命令.

-w:表示直接寫入命令歷史文件(~/.bash_history)中,會覆蓋原有命令歷史.

-a:在原有命令歷史文件(~/.bash_history)的尾部,將當前緩衝區中的命令寫入.

# !n:執行命令歷史中的第n條命令.

# !string:執行命令歷史列表中最近一次以“string”開頭的命令.

#!!:重複執行上一條命令;

# cd ESC,.:使用上一條命令的一個參數;

#cd !$:使用上一條命令的一個參數;

#cd atl .:使用上一條命令的一個參數,但在遠程連接中不可用.

history的命令歷史有兩部分組成:

一部分為:~/.bash_history:保存的是此前用戶退出后保存至用戶的配置文件當中的命令歷史,

二部分為:當前緩衝區中的命令歷史;

與命令歷史相關的環境變數:

HISTFILESIZE,該變數決定~/.bash_history中能保存的命令的條數.

HISTSIZE,定義的是該次登錄后,在內存緩衝區中能保存的命令歷史的條目.

HISTFILE,該變數定義哪一個文件是默認的命令歷史的保存文件.

# export HISTCONTROL=ignorespace|ignoredups|ignoreboth|erasedups :

ignorespace:以空格開頭的命令不計入命令歷史中;

ignoredups:但凡是重複的命令就不再重複計入命令歷史中,保留的是該變數修改後的第一個出現重複的命令;

ignoreboth:前兩者都生效;

erasedups:去除重複的命令,保存的是當前出現重複的命令,將該參數修改後出現同樣的命令去除掉.

8、查看文本文件的命令:

1】 cat 文件名:顯示文本文件內容,直接顯示到尾部;

-n 文件名:顯示文件的時候,也顯示行號;

-E 文件名:顯示行結束符;

-v 文件名:顯示非列印字元,但不顯示製表符;

-T 文件名:顯示製表符;

tac 文件名:倒著顯示文件內容;

2】more/less:

more:當顯示到文件尾部時,會自動退出,並且在顯示過程中,不可以向前翻頁,除非文件內容大於兩屏才行.enter鍵表示一行一行地往後看.

less:不同於more,當顯示到文件尾部時,不會自動退出.

less支持的控制命令:

空格鍵:往文件尾部翻一屏;

b鍵:往文件首部翻一屏;

enter鍵: 一行一行的往文件尾部看;

k鍵:一行一行的往文件首部看;

G鍵:跳到文件尾部;

1G:跳到文件首部;

/keyword:從文件首部向下尋找;

n鍵:當查找的字元串有多個的時候,按n鍵表示向文件尾部查找,而且查找的是每一行首次出現的匹配字元串.

N鍵:當查找的字元串有多個的時候,按N鍵表示向文件首部查找,而且查找的是每一行首次出現的匹配字元串.

?keyword:從文件尾部向下尋找;

n鍵:當查找的字元串有多個的時候,按n鍵表示向文件首部查找,而且查找的是每一行首次出現的匹配字元串.

N鍵:當查找的字元串有多個的時候,按N鍵表示向文件尾部查找,而且查找的是每一行首次出現的匹配字元串.

3】head/tail 文件名:顯示文件內容的前|后十行.

head -n FILE:例如,# head -5 /etc/init.d/functions

head -n # FILE:例如,# head -n 5 /etc/init.d/functions,顯示functions文件的前5行內容.

tail與head用法基本相同,但其有特殊選項:

tail -f 文件名:表示不退出,一直查看文件內容,多用於監控一個日誌文件內容的變化.例如,# tail -f /var/log/messages

4】wc:(words counts)做字元統計;

wc -l 文件名:顯示某一個文件內容有多少行;

-w 文件名:顯示某一個文件內容有多少單詞數;

-c 文件名:顯示某一個文件內容有多少字元數;

9、cut:切割文件內容.

cut -d: -f1 文件名:顯示該文件中,以“:”分割開的第一個欄位的內容;

cut -d : -f1,6 文件名:顯示該文件中,以“:”分割開的第一個和第六個欄位的內容;

cut -d: -f1-6 文件名:顯示該文件中,以“:”分割開的第一到第六個欄位的內容;

cut -d'' -f1 文件名:顯示該文件中,以“空格”作為分割符的第一段內容;

10、sort:排序命令,對文件的原內容沒有排序,只是將排序的結果顯示在屏幕上;

sort 文件名:純粹以ASCII碼的次序逐個升序排序.

-r 文件名:逆序排序文件內容;

-n 文件名:以數值大小的方式比較;

-f 文件名:在比較的時候不區分字元的大小寫;

-u 文件名:排序后重複的行只顯示一次;

11、uniq:uniq判斷兩行是否是相同的行的標準是:這兩行是連續的,且這兩行是相同的.uniq命令通常與sort一塊使用.

uniq -u :只顯示那些唯一的行;

-d :只顯示重複的行並且只顯示一次;

-c :顯示某一行重複的次數;

12、tr:轉換或者刪除字元,以字元作為單位的,只是將結果顯示出來,並不修改原文件的內容;

格式:tr [options] SET1 [SET2] < 文件名: 將文件中所有的SET1替換成SET2;

tr -d SET1 < 文件名:將文件中所有的SET1字元刪除掉;

例如:# tr 'a-z' 'A-z' < /etc/passwd 或者 # cat /etc/passwd |tr 'a-z' 'A-Z' :將/etc/passwd文件中的小寫字元都轉換成大寫字元;

13、 /etc/shadow裡面記錄的格式: account:!!:自1970年開始到最近一次密碼修改後中間經過的天數:密碼最短使用期限天(默認為0):密碼最長使用期限天(默認為99999):密碼過期之前多少天向用戶發出警告:密碼過期之後多少天此用戶賬號將被禁用(即非活動時間):自1970年開始過多少天後用戶賬號將被禁用:預留段.

!!是處於鎖定狀態的用戶賬號,不允許用戶登錄進來,但管理員可以su進去.

$1$加的鹽$最終的密碼$:“1”表示使用的加密方法是md5加密演算法.

14、# bc :bc是一個計算器.

scale=2:表示精確到小數點后兩位.

15、禁用用戶賬號:

# passwd -l:鎖定用戶賬號;

-u:解除用戶賬號鎖定;

--stdin 用戶名:給用戶指定初始密碼;

-n:定義密碼最短使用期限;

-x:定義密碼最長使用期限;

-w:定義密碼過期前多少天向用戶發出警告信息.

-i:定義非活動時間,即密碼過期多長時間用戶賬號將被禁用.

16、pwck:檢查passwd文件的完整性.

passwd的屬性配置文件在/etc/login.defs.

17、查看用戶信息的方法:

1)id其使用格式:id [option] [username]

id :顯示當前用戶的屬性信息.

用戶名:顯示該用戶的屬性信息.

-u 用戶名:顯示該用戶的uid.

-g 用戶名:顯示該用戶的gid.

-G 用戶名:顯示該用戶名所屬的所有組的id號.

-n 用戶名:使用用戶名或者組名顯示該用戶或者該用戶所屬的組,需要和-G|-u|-g一起使用.

2)finger:查看用戶信息的第二種方法.其使用格式:finger [username]

18、chfn:改變finger的信息,該些信息會以“,”隔開顯示在文件/etc/passwd記錄的第五段里,即GECOS的內容.格式 :chfn 用戶名

chsh:用戶的shell.格式:chsh 用戶名.

19、usermod:

-u:修改戶的uid;

-g:修改用戶的gid;

-a -G:給用戶追加附加組,若只使用-G,則用戶以前的附加組組會被覆蓋掉.

-c:修改用戶的註釋信息,即GECOS信息;

-d:修改用戶的家目錄,此新的家目錄事先不能存在.此時用戶家目錄裡面的文件不會被一併複製到新的家目錄裡面,需要和-m 一塊使用,即 -dm;

-s:修改用戶的登錄shell;

-l newlogname:修改登錄名;

-L:鎖定用戶賬號;

-U:解除用戶賬號鎖定;

-o:可以實現兩個用戶使用同一個uid號.

-e:指定用戶賬號的最長使用時間;

-f:指定用戶賬號的非活動時間;

20、chage:

-m:改變密碼的最短使用期限;

-M:改變密碼的最長使用期限;

-W:改變密碼過期之前多少天出現警告信息.

21、userdel 用戶名:刪除用戶,默認不會刪除用戶的家目錄.-r選項可以一塊刪除用戶的家目錄.

22、groupadd -g:指定該組的gid;

-r:添加該組為系統組;

groupmod -g gid:修改gid.

-n newgroupname:修改組名.

groupdel 組名:刪除組.

gpasswd 組名:給組添加密碼.

newgrp 組名:切換到其他的組,並使其他的組作為該組的基本組.通過exit退出 .

23、Linux的安全模型:

1)每一個文件都有屬主和屬組;

2)每一個進程都以某個用戶和組的身份運行;

3)每一個文件都有讀、寫、執行許可權;

4)先用戶、組,是其他.

24、chmod:改變文件的許可權.其方法有如下四種:

1)chmod 644 file1:將文件的許可權修改為rw-r--r--;

chmod 64 file1:將文件的許可權修改為---rw-r--;

2)在文件許可權修改中,u代表修改屬主的許可權;g代表修改屬組的許可權;o代表修改其他用戶的許可權;a代表修改所有用戶的許可權.例如:u=rw,g=r或者ug=rwx等.如果對應位沒有許可權,則u|g|o= .

3)如果要給對應位加許可權,則可以使用u|g|o /-r|w|x .

如果改變的是目錄的許可權,則只改變目錄本身的許可權,而不會改變目錄內文件以及子目錄的許可權.

chmod -R u|g|o /-r|w|x 目錄名:遞歸修改目錄以及子目錄文件中的許可權.

4)chmod [-R] --reference=/etc/ 文件名或者目錄名:以某個文件作為參照來修改指定文件或目錄的許可權;

25、chown:改變文件的屬主和屬組.其格式為:chown 新的屬主:新的屬組 文件名.-R選項表示遞歸修改.--reference=文件或者目錄名,此時文件的屬主和屬組一併會修改.

chgrp:改變文件的屬組.其格式為:chgrp 新的屬組 文件名.-R選項表示遞歸修改.--reference=文件或者目錄名,此時修改的僅是屬組.

26、date:

date %X :顯示系統時間;

date %x :顯示系統日期;

date :顯示系統日期和時間;

date -u MMDDhhmmYY.ss:設置系統日期和時間;

date %s:顯示自1970年開始到最近一次密碼被修改所經歷的秒鐘.

27、# du -sh 文件|目錄名:統計文件或目錄的大小.

28、系統主要的全局配置文件有三個:

1)/etc/profile

2)/etc/profile.d下面的所有文件都是/etc/profile文件的肢解部分,即/etc/profile.d下面的文件整個組成了/etc/profile該文件內容.

3)/etc/bashrc.

用戶主要的個人配置文件:

1)~/.bash_profile

2) ~/.bashrc

3) ~/.bash_logout

用戶登錄shell的方式有兩種,它們讀取配置文件的方式也不相同:

1)互動式登錄的shell,如通過用戶名和密碼登錄的shell、管理員通過# su - 用戶名 方式登錄的shell(退出後會清屏的).

讀取配置文件的次序如下:

/etc/profile—>/etc/profile.d/*->~/.bashprofile—>~/.bashrc->/etc/bashrc

2)非互動式登錄的shell,如管理員通過 # su 用戶名 方式進入到某一個用戶的shell、腳本執行過程中運行的shell、圖形用戶界面下打開的模擬shell等.

讀取配置文件的次序如下:

~/.bashrc—>/etc/bashrc—>/etc/profile.d/*

profile類文件主要定義的內容:1)設定環境變數;

2)在用戶登錄完成前執行一些命令;

bashrc類文件主要定義的內容: 1)設定本地變數;

2)定義命令別名;

29、部分環境變數的解釋:

PATH:用於定義在shell中鍵入的命令的對應的可執行文件的搜索位置;

在PATH路徑下新增值的方法:# export PATH=$PATH:新的路徑,但此種方法不會使新路徑永久生效,下次登錄時會失效.要想永久生效,可以通過編輯配置文件來實現.例如,如果想讓/usr路徑在PATH中出現,且對全局有效,可以通過如下方式實現:編輯/etc/profile文件,在PATH變數的尾部加入:/usr即可,重新登錄shell,通過# echo $PATH命令來查看是否PATH中多出了/usr該路徑.

DISPLAY=localhost:10.0,表示用戶當前處於本機的10號終端第0個屏幕上.

HISTSIZE=1000,表示該次登錄后,可以在內存中保存的命令歷史的條數.可以在文件/etc/profile中修改該值.

HOME=/root,表示當前用戶的家目錄為root.

HOSTNAME=localhost.localdomain,表示該主機的主機名稱.

INPUTRC=/etc/inputrc,表示輸入設備的配置文件.

LANG=en,默認使用的語言和字符集.使用# locale -a 顯示當前系統上支持的所有字符集.使用# locale 顯示當前系統正在使用的字符集. 可以使用# export LANG= ,來修改我們使用的語言和字符集,但此方法不能永久有效,也可以通過修改配置文件/etc/sysconfig/i18n來達到永久有效.

LOGNAME=root,登錄名為root.

MAIL=/var/spool/mail/root,用戶的郵筒地址.

OLDPWD=/tmp ,指明用戶當前工作目錄的上一個工作目錄.

PWD=/root,指明用戶的當前工作目錄.

LS_COLORS= ,指明ls命令使用時的顏色設置.

SHELL=/bin/bash,指明當前正在使用的shell.

30、使用# source 配置文件或者# . 配置文件,讓系統重讀一下該配置文件.但會用負面影響,比如,當我們修改了PATH環境變數的值后,當source第二次的時候,PATH變數的值會重複出現我們剛才加進去的路徑,即出現冗餘現象.

31、# basename 路徑名 ,可以顯示該路徑的基名.


[火星人 ] Linux的基礎知識二已經有877次圍觀

http://coctec.com/docs/linux/show-post-45794.html