提供《Linux命令大全.chm》文件,下載地址為:
/Files/amazon/Linux命令大全.rar
shutdown指令:
shutdown命令用于終止操作系統(tǒng)、重開(kāi)機(jī)或者向所有用戶傳送信息,具體路徑為/sbin/shutdown,只有root權(quán)限才有權(quán)運(yùn)行此命令。
shutdown [-t seconds] [-arkhncfF] minutes [警告信息]
-h shutdown后立即halt
-k 不shutdown,僅發(fā)送警告信息給所有用戶
-r shutdown后重新開(kāi)機(jī)
-n 非正常方式關(guān)機(jī),用強(qiáng)迫的方式kill掉所有程序然后關(guān)機(jī)
-t sec 在警告信息和關(guān)機(jī)信號(hào)之間有sec秒的延遲
-f 關(guān)機(jī)并開(kāi)機(jī)后,略過(guò)fsck工具的磁盤(pán)檢查
-F 關(guān)機(jī)并開(kāi)機(jī)后,強(qiáng)制fsck工具的磁盤(pán)檢查
-c 取消shutdown指令,不需要使用minutes參數(shù),但是可以有警告信息
注意:minutes參數(shù)是強(qiáng)制性的,可以用now表示立即關(guān)機(jī)。
linux文件屬性:
-rwxrwx---
第一個(gè)屬性代表文件是目錄(d)、文件(-)、鏈接文件(l)、設(shè)備文件中供存儲(chǔ)的接口設(shè)備(b)、設(shè)備文件中的串口設(shè)備如鍵盤(pán)鼠標(biāo)(c)。
接下來(lái)的屬性3個(gè)為一組,其中r代表可讀、w代表可寫(xiě)、x代表可執(zhí)行、-代表不具備某個(gè)屬性。第一組為擁有者的權(quán)限,第二組為群組的權(quán)限,第三組為其他非本群組的用戶的權(quán)限。
對(duì)于目錄的權(quán)限要額外注意。如果對(duì)某目錄的權(quán)限是rwx,那么可讀可寫(xiě)可執(zhí)行;如果權(quán)限是r-x,那么可讀可進(jìn)入,但無(wú)法寫(xiě)入;如果權(quán)限是r--,那么不可進(jìn)入該目錄。注意:目錄與x的關(guān)系很重要,如果某用戶對(duì)某目錄沒(méi)有x權(quán)限,自然也就無(wú)法執(zhí)行l(wèi)s、cd等指令,所以也就無(wú)法進(jìn)入目錄。如果某用戶對(duì)某目錄僅有r的權(quán)限,是不能進(jìn)入該目錄的。
linux下的文件是否可執(zhí)行與后綴名無(wú)關(guān),而是由x這個(gè)屬性來(lái)決定的,后綴僅起到修飾的作用。文件名之前如果有一個(gè)".",說(shuō)明該文件是隱藏文件,例如“.bashrc_history”,使用ls -al可以顯示隱藏文檔。
改變所在群組/bin/chgrp:
chgrp group file/dir
注意:改變的群組名必須在/etc/group中存在,否則會(huì)顯示錯(cuò)誤。
改變擁有者/bin/chown:
chown [-R] owner file/dir
chown [-R] owner:group file/dir
-R 循環(huán)地將該目錄下的所有文件都改成owner與group的名稱,而不僅僅是該目錄
改變權(quán)限/bin/chmod:
chmod [-R] xyz file/dir
-R 循環(huán)地將該目錄下的文件都改變,而不僅僅是該目錄
xyz為三組rwx屬性數(shù)值的相加,其中r為4,w為2,x為1,那么-wx就是3,rwx就是7。
chmod [-R] u=,o=,g= file/dir
其中:
u是user,g是group,o是others,a是所有三組。例如:chmod u=rwx,og=rx file,chmod u=rwx,g=rx,o=r file。
+是加入,-是除去。chmod a+w file/dir,chmod u-x file/dir。
chattr/lsattr:
待查。
------------------------------------------------------------------------------------------------
cd命令:
cd 相對(duì)路徑/絕對(duì)路徑
登入linux系統(tǒng)后,root的工作路徑會(huì)自動(dòng)切換到root目錄下,而用戶會(huì)自動(dòng)轉(zhuǎn)到/home/user下。
/bin/pwd命令:
pwd
pwd用于顯示當(dāng)前所在目錄。
/bin/mkdir和/bin/rmdir命令:
mkdir [-p] 目錄名稱
-p 順序創(chuàng)建目錄和子目錄,例如mkdir -p a/b/c,則順序建立a、a/b和a/b/c。
mkdir建立新的目錄,尤其注意:當(dāng)建立/home/amazon/test的目錄時(shí),必須確保前面的目錄都存在。
rmdir 目錄名稱
-p 順序刪除目錄和子目錄,同上。
rmdir刪除舊有的目錄,目錄需要層層刪除,而且被刪除的目錄中不能有其他的目錄或文件,除非使用rm -rf 目錄名稱 這樣的命令。
/bin/ls命令:
ls [-ailS]
-a 列出所有文件(包括隱藏文檔)
-i 打印inode的值
-l 詳細(xì)列出,包括文件大小,屬性數(shù)據(jù)等
-S 以文件大小排序
--color=never 不顯示顏色
--color=always 總顯示顏色
--color=auto 由系統(tǒng)自行判斷
如果想使ls默認(rèn)沒(méi)有顏色,可以在/root/.bashrc或者根用戶的.bashrc文件中加入下面的代碼:
alias ls='ls --color=never'
/bin/cp命令:
cp [-drsu] 源文件 目標(biāo)文件
-r 可以進(jìn)行目錄的復(fù)制
-s 做成符號(hào)鏈接文件,與ln指令功能相同
-u 如果源文件較新,或者沒(méi)有目標(biāo)文件,才會(huì)進(jìn)行復(fù)制動(dòng)作,可用于備份操作
-d 如果是復(fù)制鏈接文件,若不加任何參數(shù)則默認(rèn)情況下會(huì)將鏈接到的源文件復(fù)制到目的地;若加-d,則鏈接文件可原封不動(dòng)地鏈接這個(gè)快捷方式到目的地,即保留軟硬鏈接
注意:只有目標(biāo)路徑而缺少目標(biāo)文件的話,只要源目錄與目標(biāo)目錄不相同即可,復(fù)制后的目標(biāo)文件與源文件同名。
/bin/rm命令:
rm [-irf] 文件名
-i 提供用戶確認(rèn)(默認(rèn)值)
-r 循環(huán)刪除,直到?jīng)]有東西為止
-f 強(qiáng)制刪除
注意:-rf可以連續(xù)刪除某目錄下所有文件與目錄,以及該目錄本身。
/bin/mv命令:
mv [-u] 源文件 目標(biāo)文件
-u 為update的縮寫(xiě),當(dāng)源文件比目標(biāo)文件還新時(shí)才會(huì)動(dòng)作
示例:
mv file file.new //更改文件名
mv file1 file2 /tmp //最后一個(gè)/tmp才是目標(biāo)文件目錄,file1和file2是源文件
/bin/cat和/bin/tac命令:
cat [-n] 文件名
-n 顯示時(shí),連行號(hào)一起輸出到屏幕上
tac 文件名
tac剛好將cat反寫(xiě)過(guò)來(lái),從最后一行到第一行反向顯示在屏幕上。
/bin/more和/usr/bin/less命令:
more 文件名
more命令可以一頁(yè)一頁(yè)地顯示文件內(nèi)容,而通常情況下用cat沒(méi)法看清楚。more也可以用來(lái)配合管道使用,例如ls -al | more可以將顯示的內(nèi)容一頁(yè)一頁(yè)地列出。
less 文件名
使用more時(shí)無(wú)法向前翻看,而使用less就可以使用pageup和pagedown向前向后翻看。
/usr/bin/head和/usr/bin/tail命令:
head [-n number] 文件名
顯示一個(gè)文件的前幾行,若沒(méi)有加上-n參數(shù),默認(rèn)顯示前10行,若只想顯示一行,可以輸入head -n 1 filename。
tail [-n number] 文件名
同上。
例子:要求輸出某文件的第n行到第n+m行,可以使用head -n n+m file | tail -n m這樣的指令。
/usr/bin/nl命令:
nl 文件名
nl指令的用法和cat -n用法相似,即查看文件的同時(shí)也可以顯示行號(hào)。
/usr/bin/od命令:
od 文件名
od用于讀取非ASCII文件,例如二進(jìn)制文件,使用cat或者vi讀取二進(jìn)制文件是亂碼。
--------------------------------------------------------------------------------------------
硬鏈接/符號(hào)鏈接:
hard link就是重新建立一個(gè)inode鏈接到文件放置的block塊,并在查詢時(shí)利用原來(lái)的inode與后來(lái)添加的inode均可指定到該文件放置的地點(diǎn),讀取兩個(gè)indoe的結(jié)果都是存取同一個(gè)文件的內(nèi)容。但是使用硬鏈接有兩個(gè)最大限制:
1.不能跨文件系統(tǒng),因?yàn)椴煌募到y(tǒng)有不同的inode table;
2.不能鏈接目錄,因?yàn)槟夸洷旧聿皇俏募瑑H僅消耗inode而沒(méi)有block,而inode是鏈接到block塊的。
symbolic link就是再建立一個(gè)獨(dú)立文件,這個(gè)文件會(huì)讓數(shù)據(jù)讀取操作指向它鏈接的那個(gè)文件。其缺點(diǎn)在于,當(dāng)源文件被刪除,符號(hào)鏈接的文件就打不開(kāi)了,屏幕顯示“無(wú)法開(kāi)啟某文件”。
ln [-s] 源文件 目標(biāo)文件
-s 提供符號(hào)鏈接,不加該參數(shù)為硬鏈接
假設(shè)a為文件,a.hard為硬鏈接文件,a.sym為符號(hào)鏈接文件,那么使用rm a之后,more a.hard依然正常顯示文件內(nèi)容,而more s.sym顯示“不存在該目錄或文件”。這是因?yàn)閍.sym為符號(hào)鏈接文件,對(duì)其進(jìn)行操作相當(dāng)于對(duì)a指定的block內(nèi)文件進(jìn)行操作;而a.hard為硬鏈接文件,相當(dāng)于a的另外一個(gè)別名,去掉a只是去掉了其中一個(gè)別名而已,但文件還在block中。
-----------------------------------------------------------------------------------------
/usr/bin/which、/usr/bin/whereis和/usr/bin/find等指令:
which command
which查看命令所在可執(zhí)行文件的位置(僅僅是可執(zhí)行文件),即通過(guò)PATH環(huán)境變量到該路徑內(nèi)尋找可執(zhí)行文件。
whereis [-bmsu] command
-b 只尋找二進(jìn)制文件
-m 只尋找在說(shuō)明文件manual路徑下的文件
-s 只尋找source源文件
-u 只尋找非說(shuō)明文檔的文件
whereis將命令行所在文件的路徑列出來(lái)。
find 路徑 [參數(shù)]
find命令將某一路徑下的文件列印出來(lái)。
-atime n 將n×24小時(shí)內(nèi)被存取過(guò)的文件列出來(lái)
-ctime n 將n×24小時(shí)內(nèi)被改變、新增的文件或目錄列出來(lái)
-mtime n 將n×24小時(shí)內(nèi)被修改過(guò)的文件列出來(lái)
-newer file 把比f(wàn)ile還要新的文件列出來(lái)
-gid n 尋找群組ID為n的文件
-group name 尋找群組名稱為name的文件
-uid n 尋找擁有者ID為n的文件
-user name 尋找用戶名為name的文件
-name file 尋找文件名為file的文件
-type type 尋找文件屬性為type的文件,包括b、c、d、p、l、s等。
locate dir/file
使用locate查找數(shù)據(jù)比f(wàn)ind快,因?yàn)閘ocate是從已經(jīng)建立的數(shù)據(jù)庫(kù)/var/lib/slocate中查找數(shù)據(jù),不用直接在硬盤(pán)中存取數(shù)據(jù)。
----------------------------------------------------------------------------------------------
查看硬盤(pán)或目錄的容量指令/bin/df和/bin/du:
df [-ikm]
查看硬盤(pán)的總?cè)萘俊⒁延萌萘颗cinode等。
-i 使用inodes顯示結(jié)果
-k 使用KBytes顯示結(jié)果(默認(rèn))
-m 使用MBytes顯示結(jié)果
du [-abckms] [目錄名稱] (省略表示當(dāng)前所在目錄)
統(tǒng)計(jì)某目錄下的文件容量。
-a 列出所有的文件與目錄,默認(rèn)值是列出目錄的值
-b 列出的值以bytes輸出
-c 最后求總total
-k 列出的值以KB輸出(默認(rèn))
-m 列出的值以MB輸出
-s 只列出最后求總的值
---------------------------------------------------------------------------------------------
/bin/echo指令:
echo $variable
顯示當(dāng)前variable變量。
/bin/env指令:
env
顯示系統(tǒng)的所有環(huán)境變量,某些重要的環(huán)境變量如下:
ENV=/home/amazon/.bashrc 用戶自定義環(huán)境變量的配置文件,root用戶的是/root/.bashrc
HISTSIZE=1000 當(dāng)前指令記憶數(shù)量
HOME=/home/amazon 登入者的根目錄
HOSTNAME=localhost.localdomain 主機(jī)的名字
HOSTTYPE=i386 主機(jī)硬件的等級(jí)狀態(tài)(i386、i686)
LANGUAGE =C 默認(rèn)語(yǔ)言的資料
LOGNAME=amazon 登入者的帳號(hào)
MAIL=/var/spool/mail/amazon 郵件文件
PATH=...... 指令路徑
PWD=/home/amazon 當(dāng)前所在路徑
USERNAME=amazon 登入者的帳號(hào)
USER=amazon 用戶帳號(hào)
/bin/set指令:
set
顯示當(dāng)前的環(huán)境變量,也會(huì)顯示自定義的變量。注意:自定義變量只能自己使用,而不會(huì)干擾到別人,除非修改了系統(tǒng)的配置文件。
變量設(shè)定規(guī)則:
var='......'
1.變量與變量?jī)?nèi)容用=連結(jié);
2.等號(hào)兩邊不能直接接空格符,如name = variable錯(cuò)誤;
3.變量只能是英文字母與數(shù)字,數(shù)字不能開(kāi)頭;
4.有空格符的情況下,使用雙引號(hào)或者單引號(hào)括住變量,雙引號(hào)的特殊字符可以保留變量特性,如"$PATH",單引號(hào)不可以;
5.\為轉(zhuǎn)義字符,可以將特殊字符(Enter、$、\、空格符、'等)變成一般符號(hào),而不需要雙引號(hào);
6.擴(kuò)增變量需要用"$PATH":/home、"$PATH:/home"或者$PATH:/home這樣的形式累加;
7.若該變量需要在其他子程序執(zhí)行,以export使變量可以動(dòng)作,如export PATH;(什么意思?)
8.系統(tǒng)預(yù)設(shè)變量用大寫(xiě),自定義變量用小寫(xiě);
9.用unset variable取消變量。
別名alias指令:
alias name='.....'
別名和變量的定義基本一致。
alias
查詢所有別名,包括系統(tǒng)默認(rèn)別名和自定義別名。
unalias name
取消別名。
-----------------------------------------------------------------------------------------
/usr/bin/compress指令:
compress [-d] filename
-d 解壓縮參數(shù),也可以使用uncompress filename指令
zcat filename.Z
zcat可以讀取.Z壓縮文件的內(nèi)容。
注意:compress用來(lái)壓縮與解壓縮后綴名為.Z的文件。使用compress壓縮后,如果沒(méi)有給出其他參數(shù),原始文件會(huì)被后來(lái)的.Z文件取代,使用uncompress指令也是一樣。
/usr/binbzip2和/usr/binbzcat指令:
bzip2 [-dz] filename
-d 解壓縮,可以使用bunzip2 filename取代
-z 壓縮(默認(rèn))
bzcat filename.bz2 //讀取壓縮文件內(nèi)容,而不需要解壓縮
注意:當(dāng)文件后綴為.bz、.bz2、tbz、tbz2等時(shí),可以使用bzip2進(jìn)行解壓。原始文件會(huì)被壓縮文件.bz2等取代。
/bin/gzip和/bin/zcat指令:
gzip [-d#] filename
-d 解壓縮參數(shù)
-# 壓縮等級(jí),1最不好,9最好,默認(rèn)為6
zcat filename.gz
注意:zcat不僅可以讀取.gz后綴的壓縮文件,也可以同時(shí)讀取compress的壓縮文件(.Z)。原始文件會(huì)被壓縮文件.bz2等取代。
/bin/tar指令:
tar [-zxcvfpP] tarfile file
-z 同時(shí)具有g(shù)zip
-j 同時(shí)具有bzip
-x 解開(kāi)一個(gè)壓縮文件
-t 查看tarfile的文件
-c 建立一個(gè)壓縮文件
-v 壓縮過(guò)程中顯示文件
-p 使用原文件的屬性
-P 可以使用絕對(duì)路徑
-f file 使用file文件名作為目標(biāo)
-N 'yyyy/mm/dd' 比后面接的日期還要新的文件才會(huì)被打包進(jìn)新建的文件中
--exclude FILE 在壓縮過(guò)程中,不要將FILE打包
例子:
tar -cvf file.tar file //可以打包目錄,并且原文件/目錄依然存在
tar -zcvf file.tar.gz file
tar -xvf file.tar //不使用-zxvf,因?yàn)槭?tar文件而不是.tar.gz文件,且壓縮文件依然存在
tar -zxvf file.tar.gz
tar -ztvf file.tar.gz //查看tar.gz里面的文件信息,而不需要解壓縮
tar -tvf file.tar
tar -N '2002/06/25' -zcvf home.tar.gz /home //將/home目錄中,比日期還要新的文件打包進(jìn)入home.tar.gz中
tar -zcvf host.tar.gz /home --exclude /amazon --exclude /host //除amazon和host外,home目錄打包
tar -cvf - /home | tar -xvf - //直接打包后解壓縮,沒(méi)有中間文件
-------------------------------------------------------------------------------------------
正則表達(dá)式/bin/grep:
grep "word" filename
將某filename文件中含有word的那一行顯示出來(lái)。
例子:
grep root /var/log/secure
grep "*[a-d]*" /var/log/secure
grep boot /etc/* //輸出的是/etc下文件內(nèi)容含有boot的所有行
grep \* /etc/*
grep "a\{5\}" file //必須要有雙引號(hào)
符號(hào):
^ 句首字符相符
$ 句尾字符相符
? 任何一個(gè)單一字符
* 任意幾個(gè)字符,包括0個(gè)
\ 轉(zhuǎn)義字符,使^、?、*等變?yōu)槠胀ㄗ址?br>[list] 列表中的字符,例如[123456789]
[range] 列表范圍內(nèi)的字符,例如[1-9]
\{n\} 與前一個(gè)相同字符連續(xù)n個(gè)
\{n,m\} 與前一個(gè)相同字符連續(xù)n到m個(gè)
------------------------------------------------------------------------------------------
如何增加用戶:
1.如果用戶所屬群組不存在,先新增群組。(增加用戶前,該群組必須存在)
2.新增用戶帳號(hào)。
如何刪除群組:
3.如果某群組中有用戶,先刪除用戶。(刪除群組前,該群組必須為空)
4.刪除群組。
groupadd [-g GID] groupname
-g GID 自行設(shè)定GID的大小,否則默認(rèn)提供
groupdel groupname
注意:在刪除群組之前,必須將該群組下的用戶刪除。
useradd [-u UID] [-g GID] [-d HOME] [-mM] [-s shell] username
-u 直接給出一個(gè)UID
-g 直接給出一個(gè)GID(此GID必須已存在)
-d 直接將其根目錄指向已經(jīng)存在的目錄(系統(tǒng)不會(huì)再默認(rèn)建立)
-M 不建立根目錄
-s 定義其使用的shell
userdel [-r] username
-r 將該帳號(hào)的[home directory]和[/var/spool/mail/username]一并刪除,默認(rèn)情況下是保留的
密碼管理與設(shè)定:
root可以設(shè)定任何樣式的密碼,而且可以幫助user設(shè)定他們的密碼,而user僅能修改自己的密碼。
passwd [username]
用戶身份切換:
su
使用su可以進(jìn)行身份切換,但是需要注意:
1.環(huán)境依然屬于當(dāng)初登入的那個(gè)用戶,例如以test的身份登入linux,再切換到root,但是個(gè)人的mail、PATH等環(huán)境變量都還是test的。
2.對(duì)于環(huán)境變量,最麻煩的當(dāng)屬PATH,為了避免一般用戶使用root的管理指令,通常linux會(huì)將指令分類(lèi)放在兩個(gè)目錄下,分別是/bin和/sbin,其中/sbin存放的大多是root用來(lái)管理系統(tǒng)的指令。所以,當(dāng)從一般用戶切換到root后,某些指令不可用,就是因?yàn)镻ATH中沒(méi)有/sbin這個(gè)路徑。
具體解決方法如下:
1.使用命令的完整路徑。
2.將/sbin和/usr/sbin路徑添加到普通用戶的PATH路徑中。
3.使用su -命令切換,-是指同時(shí)切換用戶的環(huán)境變量。
sudo [-u username/#uid] [command]
-u 將分身變成username的身份
使用sudo可以不需要root的密碼也能執(zhí)行root身份的工作。具體情況略。
用戶查詢:
id [username]
直接輸入id查詢當(dāng)前帳號(hào)的UID、GID與所屬群組,輸入id username生成username的相關(guān)信息。不需要察看/etc/passwd和/etc/group。
finger [-s] [username]
-s 完整列出
使用finger可以知道某用戶的相關(guān)信息,基本都在/etc/passwd上,還包括/var/spool/mail這個(gè)郵件存放地點(diǎn),所以還會(huì)顯示是否有郵件信息。
groups
直接輸入groups就可以顯示當(dāng)前用戶所屬的群組。
手動(dòng)添加用戶:
大致步驟如下:
1.先建立需要的群組(vi /etc/group)
2.建立帳號(hào)的各個(gè)屬性(vi /etc/passwd)
3.將passwd與shadow同步(pwconv)
4.建立該帳號(hào)的密碼(passwd acount)
5.建立用戶根目錄(cp -r /etc/skel /home/account)
6.更改根目錄屬性(chown -R account.group /home/account)
刪除帳號(hào)步驟:
1.刪除/etc/passwd與/etc/shadow中的相關(guān)信息
2.轉(zhuǎn)到/home下刪除該帳號(hào)的根目錄
3.轉(zhuǎn)到/var/spool/mail下刪除該帳號(hào)的郵件