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的基礎知識二已經有849次圍觀