序言
廢話就不多說了,還沒想好說啥廢話,暫時直接先上乾貨吧。QAQ
如發現問題還請聯繫博主進行修改,謝謝!!!
文章版權爲Anoyer博客所有,轉載請以鏈接形式標明本文地址
Linux常用命令
1、pwd 命令
pwd
(Print Working Directory ):顯示當前所在目錄。
2、cd 命令
cd
(Change Directory): 切換當前目錄。常用特殊目錄表示:
cd 進入用戶主目錄; cd ~ 進入用戶主目錄; cd - 返回進入此目錄之前所在的目錄; cd .. 返回上級目錄(若當前目錄爲"/",則執行完後還在"/";".."爲上級目錄的意思); cd ../.. 返回上兩級目錄; cd !$ 把上個命令的參數作爲cd參數使用。
3、ls 命令
ls
(list): 列出指定目錄列表信息,如果沒有參數默認列出當前目錄下的所有文件和文件夾(隱藏文件和文件夾除外)。常見
ls
命令選項:-l:以長格式顯示目錄下的內容列表。輸出的信息從左到右依次包括文件名,文件類型、權限模式、硬連接數、所有者、組、文件大小和文件的最後修改時間等; -a:顯示所有文件和文件夾(包括隱藏文件/文件夾); -a:顯示所有檔案及目錄(ls內定將檔案名或目錄名稱爲“.”的視爲影藏,不會列出); -A:顯示除影藏文件“.”和“..”以外的所有文件列表; -l:列出內容的詳細信息; -r:以文件名反序排列並輸出目錄內容列表; -s:顯示文件和目錄的大小,以區塊爲單位; -i:顯示文件索引節點號(inode)。一個索引節點代表一個文件; -R:遞歸處理,將指定目錄下的所有文件及子目錄一併處理。
例如:顯示根目錄下所有文件和文件夾。
- 如果一次查看多個目錄,則每個目錄名用空格隔開。
應用示例一:
查看目錄
/mnt
下的所有信息(包括隱藏內容),則可以使用如下命令:
ls -a /mnt
應用示例二:
查看目錄
/mnt
下的所有信息(包括隱藏內容),同時顯示每個文件的詳細信息,則可以使用如下命令:
ls -al /mnt
Linux文件操作
1、touch 創建文件
linux中創建文件的常用命令是
touch
,命令格式如下:
touch filename
有時可能需要創建一個空的文件的情況。在這種情況下,可以使用
touch
命令來輕鬆創建一個空文件。例如:創建一個新的文件
testfile
可以使用如下命令。
touch testfile
如果想同時創建多個文件也可以使用
touch
命令完成,具體格式如下:
touch file1 file2 ...
只需將不同的文件名用空格分隔即可完成創建多個文件。
2、rm 刪除文件
Linux中常用的刪除文件的命令是
rm
,使用格式如下:
rm [命令選項] filename
常用命令選項:
-f:強制刪除文件或目錄; -r或-R:遞歸處理,將指定目錄下的所有文件與子目錄一併處理; -i:刪除已有文件或目錄之前先詢問用戶;
例如,刪除我們剛剛創建的文件
testfile
可以使用如下命令。
rm -f testfile
3、mkdir 創建文件夾
Linux中創建文件夾命令是
mkdir
,命令格式如下:
mkdir [命令選項] dirname
常用命令選項:
-p或--parents 若所要建立目錄的上層目錄目前尚未建立,則會一併建立上層目錄;
例如:我們新創建一個文件夾
testdir
可以使用如下命令。mkdir testdir
因爲新創建的文件夾是一個空的文件夾,所以使用
ls -l
顯示的結果是空。
4、rmdir刪除文件夾
Linux中刪除文件夾的命令是
rmdir
或者rm -r
,命令格式如下:
rmdir [命令選項] dirname
常用命令選項:
-p或--parents:刪除指定目錄後,若該目錄的上層目錄已變成空目錄,則將其一併刪除;
例如:將剛剛新創建的文件夾
testdir
刪除可以使用如下命令。
rmdir testdir
在
Linux
系統命令行下刪除一個不爲空的目錄,則可以使用如下命令:
rm -r Dir
5、cp 文件和文件夾拷貝
Linux使用
cp
命令用來將一個或多個源文件或者目錄複製到指定的目錄中,命令格式如下:
cp [命令選項] 源文件 目的文件
常用命令選項:
-f:強行復制文件或目錄,不論目標文件或目錄是否已存在; -i:覆蓋既有文件之前先詢問用戶; -p:保留源文件或目錄的屬性; -R/r:遞歸處理,將指定目錄下的所有文件與子目錄一併處理;
例如:新建一個文件
newfile
和一個文件夾newdir
,將newfile
複製到newdir
目錄下。具體命令如下。touch newfile mkdir newdir cp newfile newdir
6、mv 文件和文件夾移動/重命名
Linux使用
mv
命令用來對文件或目錄重新命名,或者將文件從一個目錄移到另一個目錄中,命令格式如下:
mv [命令選項] 源文件 目標文件
常用命令選項:
-f:強行復制文件或目錄,不論目標文件或目錄是否已存在; -i:覆蓋既有文件之前先詢問用戶;-p:保留源文件或目錄的屬性; -R/r:遞歸處理,將指定目錄下的所有文件與子目錄一併處理;
例如:新建一個文件
newfile
和一個文件夾newdir
,將newfile
剪切到newdir
目錄下,並重新命名爲newfileCpy
。具體命令如下。touch newfile mkdir newdir mv newfile newdir/newfileCpy
Linux命令查詢
1、man 查詢命令的幫助文件
linux中使用
man
命令來查詢命令的幫助文件,命令格式如下:
man [章節] command
常用命令如下:
d, Ctrl+D: 向文件尾部翻半屏 u, Ctrl+U: 向文件首部翻半屏 q: 退出 #:跳轉至第#行 1G: 回到文件首部 G:翻至文件尾部
命令的幫助文件通常存放在
/usr/share/man
目錄下。
man
包含9
個章節,章節用數字表示,分別是:1.用戶命令 2.系統調用 3.C庫調用 4.設備文件及特殊文件 5.配置文件格式 6.遊戲 7.雜項 8.管理類的命令Linux 9.內核API
如果查詢命令的時候不追加章節,則默認從第一個章節開始查詢,以此類推,直到找到對應要查詢的命令爲止。
例如:使用
man
命令查詢open
命令的使用方法。
man open
如果想查詢系統庫函數的
open
函數的使用方法,則使用如下命令:
man 2 open
使用
man
搜索命令
/KEYWORD:
以
KEYWORD
指定的字符串爲關鍵字,從當前位置向文件尾部搜索,不區分字符大小寫;n: 下一個 N:上一個
?KEYWORD:
以
KEYWORD
指定的字符串爲關鍵字,從當前位置向文件首部搜索,不區分字符大小寫;n: 跟搜索命令同方向,下一個 N:跟搜索命令反方向,上一個
2、info 查詢命令的幫助文件
linux中使用
info
命令來查詢命令的幫助文件。info
頁面比man page
編寫得要更好、更容易理解,也更友好,但man page
使用起來確實要更容易得多。一個man page
只有一頁,而info
頁面幾乎總是將它們的內容組織成多個區段(稱爲節點),每個區段也可能包含子區段(稱爲子節點)。命令格式如下:
info [命令參數] command
常用命令參數選項:
-d:添加包含info格式幫助文檔的目錄; -f:指定要讀取的info格式的幫助文檔; -n:指定首先訪問的info幫助文件的節點; -o:輸出被選擇的節點內容到指定文件。
常見命令如下:
?鍵:它就會顯示info的常用快捷鍵。 N鍵:顯示(相對於本節點的)下一節點的文檔內容。 P鍵:顯示(相對於本節點的)前一節點的文檔內容。 U鍵:進入當前命令所在的主題。 M鍵:敲M鍵後輸入命令的名稱就可以查看該命令的幫助文檔了。 G鍵:敲G鍵後輸入主題名稱,進入該主題。 L鍵:回到上一個訪問的頁面。 SPACE鍵:向前滾動一頁。 BACKUP或DEL鍵:向後滾動一頁。 Q:退出info。
例如:我們使用
info
來查詢info
的幫助手冊。
info info
3、whatis 顯示命令的簡短描述
whatis
用來顯示命令的簡短描述。命令格式如下:
whatis command
例如:我們使用
whatis
來查詢ls
的使用方法。
Linux之文件/目錄內容查看
1、cat 查看文件內容
具體命令如下:
cat 參數 文件名
常用參數如下:
-n 或 --number
:由1
開始對所有輸出的行數編號;
--b 或 --number-nonblank
:和-n
相似,只不過對於空白行不編號。具體說明:
cat
命令支持同時查看多個文件,當一次查看多個文件時,每個文件的內容都會被打印到屏幕上;cat
命令不能對文件進行編輯操作,只能查看文件內容。應用示例:
查看文件
/etc/passwd
內容,則可以使用如下命令:
cat /etc/passwd
2、head 查看文件前n行內容
具體命令如下:
head 參數 文件名
常用參數如下:
-n number
:顯示文件的前number
行內容;具體說明:
head
命令是從文件的開頭顯示內容,默認情況下只顯示前10
行的內容;head
命令不能對文件進行編輯操作,只能查看文件內容。應用示例:
查看文件
/etc/passwd
的前8
行內容,則可以使用如下命令:
head -n 8 /etc/passwd
3、tail 查看文件後n行內容
具體命令如下:
tail 參數 文件名
常用參數如下:
-n number
:顯示文件的最後number
行內容;具體說明:
tail
命令是從文件的結尾顯示內容,默認情況下只顯示最後10
行的內容;tail
命令不能對文件進行編輯操作,只能查看文件內容。應用示例:
查看文件
/etc/passwd
末尾5
行內容,則可以使用如下命令:
tail -n 5 /etc/passwd
Linux文件/目錄高級管理一
1、chmod 用戶文件/目錄權限修改
Linux
中使用chmod
命令來修改文件或者目錄權限。文字設定法具體命令如下:
chmod [who] [+ | - | =] [mode] 文件名/目錄名
who
參數如下:
- u 表示“用戶
(user)
”,即文件或目錄的所有者;- g 表示“同組
(group)
用戶”,即與文件屬主有相同組ID的所有用戶;- o 表示“其他
(others)
用戶”;- a 表示“所有
(all)
用戶”,它是系統默認值。操作符如下:
- +:添加某個權限;
- -:取消某個權限;
- =:賦予給定權限並取消其他所有權限。
mode
參數如下:
- r 可讀;
- w 可寫;
- x 可執行。
數字設定法具體命令如下:
chmod [mode] 文件名/目錄名
mode
爲具體的數字。首先了解用數字表示的屬性的含義:
0
表示沒有權限,1
表示可執行權限,2
表示可寫權限,4
表示可讀權限,然後將其相加。所以數字屬性的格式應爲3
個從0
到7
的八進制數,其順序是u
、g
和o
。將文件
testFile
的所有權限設置爲僅讀權限,可以使用如下命令:
chmod a=r testFile
案例演示二:
將文件
testFile
的所有權限設置爲可讀可寫,同組用戶權限設置爲只讀,可以使用如下命令:
chmod u=rw,g=r testFile
2、chown 修改目錄所有者命令
Linux中使用
chown
命令來修改目錄所有者。具體命令如下:
chown 參數 用戶名/用戶ID 目錄名
常見命令參數:
-R或——recursive
:遞歸處理,將指定目錄下的所有文件及子目錄一併處理;--help
:在線幫助;執行權限
chown
必須以root
權限才能執行,如果是普通用戶想執行chown
時,需要在命令前加sudo
命令來提升權限爲root
權限。案例演示一:
將系統中已存在的目錄
testDir
的所有者設置爲newUser
,可以使用如下命令:
sudo chown newUser testDir
可以使用
ls -l
或ll
命令查看目錄所有者是否修改成功。將系統中已存在的目錄
Dir
以及其所有子目錄和子文件的所有者設置爲newUser
,可以使用如下命令:
sudo chown -R newUser Dir
可以看到
Dir
目錄下的所有子目錄和子文件的所有者都已經修改成了newUser
。
3、chgrp 修改目錄所屬組命令
Linux中使用
chgrp
命令來修改目錄所屬組。具體命令如下:
chgrp 參數 用戶組名/組ID 目錄名
常見命令參數:
-R或——recursive
:遞歸處理,將指定目錄下的所有文件及子目錄一併處理;--help
:在線幫助;執行權限
執行權限
chgrp
必須以root
權限才能執行,如果是普通用戶想執行chgrp
時,需要在命令前加sudo
命令來提升權限爲root
權限。案例演示一:
將系統中已存在的目錄
testDir
的所屬組設置爲newGroup
,可以使用如下命令:
sudo chgrp newGroup testDir
案例演示二:
將系統中已存在的目錄
Dir
以及其所有子目錄和子文件的所屬組設置爲newGroup
,可以使用如下命令:
sudo chgrp -R newGroup Dir
linux
中也可以使用chown
命令來修改目錄的所屬組,其使用方法與修改文件的使用方法一致。案例演示一:
使用
chown
命令將系統已存在的文件Dir
以及其所有子目錄和子文件的所有者設置爲fzm
所屬組設置爲fzm
,可以使用如下命令:
sudo chown -R fzm:fzm Dir
Linux文件/目錄高級管理二
1、df 顯示磁盤分區上的可使用的磁盤空間
df
命令用於顯示磁盤分區上的可使用的磁盤空間。默認顯示單位爲KB
。可以利用該命令來獲取硬盤被佔用了多少空間,目前還剩下多少空間等信息。具體命令如下:
df 命令參數 參數
常用參數如下:
-a或--all
:包含全部的文件系統,包括系統特有的/proc
等文件系統;-k
: 以KB爲單位顯示各文件系統;-m
: 以MB爲單位顯示各文件系統;-h
: 以可讀性較高的方式來顯示信息;-i或--inodes
:顯示inode
的信息。案例演示一:
查看系統所有磁盤設備,默認是
KB
爲單位,可以使用如下命令:
df
案例演示二:
使用
-h
選項以KB
以上的單位來顯示,可讀性高,可以使用如下命令:
df -h
案例演示三:
將
/etc
目錄下的可用的磁盤容量以易讀的格式顯示出來,可以使用如下命令:
df -h /etc
2、du 對文件和目錄磁盤使用的空間的查看
du命令也是查看使用空間的,但是與
df
命令不同的是Linux
du
命令是對文件和目錄磁盤使用的空間的查看,還是和df
命令有一些區別的。具體命令如下:
du 命令參數 參數
常用參數如下:
- -a : 列出所有的文件與目錄容量,因爲默認僅統計目錄下面的文件量而已;
- -h : 以可讀性較高的方式來顯示信息;
- -k : 以
KB
爲單位顯示容量;- -m : 以
MB
爲單位顯示容量;- -s : 列出總量,不列出每個目錄佔用的容量。
案例演示一:
列出當前目錄下的所有文件的總容量,可以使用如下命令:
du
注: 直接輸入
du
命令沒有加任何參數時,則du
會分析當前所在目錄的文件與目錄所佔用的磁盤空間,但是,實際顯示時僅會顯示目錄容量。案例演示二:
列出當前目錄下的所有文件的總容量,同時將每個文件大小也列出來,可以使用如下命令:
du -a
以可讀性較高的方式顯示多個文件所佔磁盤大小,可以使用如下命令:
du -h c++ g++
3、ln 創建鏈接和軟鏈接
硬鏈接指通過索引節點來進行鏈接。在
Linux
的文件系統中,保存在磁盤分區中的文件不管是什麼類型都給它分配一個編號,稱爲索引節點號(Inode Index
)。在Linux
中,多個文件名指向同一索引節點是存在的。一般這種鏈接就是硬鏈接。硬鏈接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬鏈接到重要文件,以防止誤刪的功能。其原因如上所述,因爲對應該目錄的索引節點有一個以上的鏈接。只刪除一個鏈接並不影響索引節點本身和其它的鏈接,只有當最後一個鏈接被刪除後,文件的數據塊及目錄的鏈接纔會被釋放。也就是說,文件真正刪除的條件是與之相關的所有硬鏈接文件均被刪除。
硬鏈接特點如下:
- 文件有相同的
inode
及data block
;- 只能對已存在的文件進行創建;
- 不能交叉文件系統進行硬鏈接的創建;
- 不能對目錄進行創建,只可對文件創建;
- 刪除一個硬鏈接文件並不影響其他有相同
inode
號的文件。具體命令如下:
ln 源文件 目標文件
案例演示一:
爲當前目錄下的文件
testFile
創建一個硬鏈接testFileLink
,可以使用如下命令:
ln testFile testFileLink
在
ls
結果的最左邊一列,是文件的inode
值,你可以簡單把它想成C
語言中的指針。它指向了物理硬盤的一個區塊,事實上文件系統會維護一個引用計數,只要有文件指向這個區塊,它就不會從硬盤上消失。可以看到,這兩個文件就如同一個文件一樣,inode
值相同,都指向同一個區塊。
軟鏈接文件有類似於
Windows
的快捷方式。它實際上是一個特殊的文件。在符號鏈接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。與硬鏈接不同的是,符號鏈接確實是一個新文件,當然它具有不同的I節點號;而硬鏈接並沒有建立新文件。
軟鏈接特點如下:
- 源文件和目標文件有不相同的
inode
及data block
;- 軟鏈接沒有硬鏈接的限制,可以對目錄文件做符號鏈接;
- 軟鏈接可以在不同文件系統之間做軟鏈接;
- 在目錄長列表中,符號鏈接作爲一種特殊的文件類型顯示出來,其第一個字母是
l
;- 符號鏈接的大小是其鏈接文件的路徑名中的字節數;
具體命令如下:
ln -s 源文件 目標文件
案例演示一·:
爲當前目錄下的文件
testFile
創建一個軟鏈接myLink
,可以使用如下命令:
ln -s testFile myLink
4、mount 掛載
mount命令詳解
mount
是Linux
下的一個命令,它可以將分區掛接到Linux
的一個文件夾下,從而將分區和該目錄聯繫起來,因此我們只要訪問這個文件夾,就相當於訪問該分區了。
mount
命令的最常用於掛載cdrom
,使我們可以訪問cdrom
中的數據,因爲你將光盤插入cdrom
中,早先Linux
發行版並不會自動掛載,必須使用mount
命令來手動完成掛載。具體命令如下:
mount 命令參數 設備文件名 掛載點
常用命令參數:
-r:將文件系統加載爲只讀模式; -h:顯示幫助信息並退出; -t <list>:指定文件系統類型; -o <list>:描述設備的掛載方式;
常用文件系統類型:
光盤或光盤鏡像:iso9660 DOS fat16文件系統:msdos Windows 9x fat32文件系統:vfat Windows NT ntfs文件系統:ntfs Mount Windows文件網絡共享:smbfs UNIX(LINUX) 文件網絡共享:nfs
常用設備的掛載方式:
loop:用來把一個文件當成硬盤分區掛接上系統 ro:採用只讀方式掛接設備 rw:採用讀寫方式掛接設備 iocharset:指定訪問文件系統所用字符集
**注意:**通常在掛載設備時不需要指定文件系統類型,
mount
會自動選擇正確的類型。執行權限:
mount
必須以root權限才能執行,如果是普通用戶想執行mount
時,需要在命令前加sudo
命令來提升權限爲root
權限。案例演示:
將文件
/etc/passwd
製作成一個光盤鏡像文件mydisk.iso
,創建一個掛載點/home/vcdrom
,將鏡像文件mydisk.iso
掛載到/home/vcdrom
目錄下,列出鏡像文件中的內容,具體使用如下命令:sudo mkisofs -r -J -V mydisk -o ./mydisk.iso /etc/passwd 2> /dev/nullsudo mkdir /home/vcdromsudo mount -o loop -t iso9660 ./mydisk.iso /home/vcdrom ls -l /home/vcdrom
第一條命令是將
/etc/passwd
文件製作成一個iso
鏡像文件;第二條命令是創建一個掛載點;
第三條命令是將創建好的鏡像文件掛載到
/home/vcdrom
目錄下;第四條命令是查看鏡像文件的內容;
5、umount 卸載已經加載的文件系統
umount
命令用於卸載已經加載的文件系統。利用設備名或掛載點都能umount
文件系統,不過最好還是通過掛載點卸載,以免使用綁定掛載(一個設備,多個掛載點)時產生混亂。具體命令如下:
umount 命令參數 掛載點/設備名
常用命令參數:
-r:若無法成功卸除,則嘗試以只讀的方式重新掛入文件系統;-h:顯示幫助信息並退出;
執行權限:
mount
必須以root
權限才能執行,如果是普通用戶想執行mount
時,需要在命令前加sudo
命令來提升權限爲root
權限。案例演示:
將上一個案例已經掛載好的鏡像文件(
mydisk.iso
)卸載,然後看到掛載點目錄內容,可以使用如下命令:sudo umount /home/vcdromls -l /home/vcdrom
將鏡像文件從
/home/vcdrom
目錄卸載後,該目錄還原爲原有的內容,即爲空目錄。
Linux之用戶管理
1、useradd 創建用戶
Linux創建用戶命令
Linux
中使用useradd
命令來創建一個新用戶。命令格式格式:
useradd [命令參數] 參數
常見命令參數:
- -d<登入目錄>:指定用戶登入時的啓始目錄;
- -D:查看或變更預設值;
- -g<羣組>:指定用戶所屬的羣組;
- -m:自動建立用戶的登入目錄;
- -M:不要自動建立用戶的登入目錄;
- -s:指定用戶登入後所使用的
shell
。
useradd
必須以root
權限才能執行,如果是普通用戶想創建一個新用戶時,需要在命令前加sudo
命令來提升權限爲root
權限。案例演示
1 . 查看
useradd
系統默認屬性值,使用命令useradd -D
。筆者使用的系統是
Ubuntu16.04
,useradd
系統默認值如下所示:
參數 說明 GROUP 指新創建的用戶將被添加到用戶組ID爲100的公共用戶組中 HOME 指新創建的用戶將在/home目錄下創建一個HOME賬戶 INACTIVE 指當密碼逾期時,用戶將不會被禁用 EXPIRE 指新創建的用戶不會在設定日期被設置爲逾期 SHELL 指新創建的用戶使用/bin/sh(也就是bash)作爲默認shell SKEL 指系統會將/etc/skel目錄中的內容複製到新創建的用戶的HOME目錄 CREATE_MAIL_SPOOL 指系統不會在郵件目錄中創建一個文件用於新創建用戶賬戶接受郵件 2 . 使用
useradd
命令新創建一個用戶test
,並且自動建立用戶的登入目錄。在背景介紹中,我們瞭解到,
Linux
中用戶信息是保存在/etc/passwd
文件中,我們可以使用命令tail /etc/passwd
命令查看/etc/passwd
文件最後10行中是否存在剛剛新創建的test
用戶信息。
2、userdel 刪除用戶
Linux刪除用戶命令
Linux
中使用userdel
命令來刪除一個已經存在的用戶。命令格式:
userdel [命令參數] 參數
常見命令參數:
- -f:強制刪除用戶,即使用戶當前已登錄;
- -r:刪除用戶的同時,刪除與用戶相關的所有文件。
userdel
必須以root
權限才能執行,如果是普通用戶想使用該命令時,需要在命令前加sudo
命令來提升權限爲root
權限。案例演示
1 . 使用
userdel
命令刪除一個已經存在的用戶test
,並且自動刪除其家目錄文件。因爲系統默認是不會給新創建的用戶自動創建一個文件夾用於用戶賬戶接收郵件,所以在使用
userdel -r
命令刪除的時候會提醒/var/mail/test
文件夾不存在。2、將當前工作目錄切換到新創建的用戶
newUser
家目錄;
cd /home/newUser
3、passwd 修改用戶密碼
用戶密碼存放地及方式
Linux中用戶的登錄密碼是存放在
/etc/shadow
文件中,/etc/shadow
文件中存放的是加密過後的密碼,所以在/etc/shadow
文件中看到的密碼是加密過後的密文。看下筆者的電腦中
/etc/shadow
文件存放的內容格式。可以看到第一個冒號前是用戶名,用戶名是以明文的方式存放。
在第一個冒號和第二個冒號之間存放的是加密過後的密碼,密碼是以密文的方式存放,其中密文是由用戶密碼和其它信息加密後組成的,這裏不做詳細講解,我們只需要知道如果第一個冒號和第二個冒號之間是
*
或者!
或者空,則表示該用戶沒有密碼,否則,則表示該用戶是有密碼。例如:用戶名
fzm
是存在密碼,而mysql
是不存在密碼的。使用passwd命令修改用戶密碼
命令格式:
passwd [命令參數] 參數
常見命令參數:
- -d 刪除密碼;
- -l 停止賬號使用;
- -S 顯示密碼信息。
passwd
必須以root
權限才能執行,如果是普通用戶想執行passwd
時,需要在命令前加sudo
命令來提升權限爲root
權限。案例演示
1: 使用
useradd
命令來新創建一個用戶,使用passwd
命令來設置登錄密碼。使用
useradd
命令創建一個新用戶(test
),此時test
用戶是沒有密碼的,所以使用tail -n 1 /etc/shadow
命令查看/etc/shadow
文件的最後一行可以看出test
用戶密碼部分爲!
。使用
passwd
命令爲test
用戶設置密碼時,可以看到需要輸入兩次密碼,目的是爲了確保兩次輸入的密碼一致。當設置完密碼後,可以看到/etc/shadow
文件中test
用戶的密碼部分已經爲加密過後的密文。2: 使用
passwd
命令來清除用戶的密碼。使用
passwd
命令清除用戶test
的登錄密碼,使用tail -n 1 /etc/shadow
命令查看/etc/shadow
文件的最後一行可以看出test
用戶密碼部分爲空,此時test
用戶是沒有密碼的。
#### 4、chpasswd 修改用戶密碼
chpasswd
命令通常是用於批量修改用戶密碼,從標準輸入批量讀取成對的用戶名和密碼,其中輸入的用戶名和密碼的格式爲用戶名:密碼。例如要批量更新用戶密碼,將用戶名和密碼寫入到一個文件中,格式如下所示:
然後執行執行如下命令來更新密碼:
sudo chpasswd < batch.txt
<
符號表示輸入重定向,接下來的實訓中我們會詳細的介紹。命令格式:
chpasswd [命令參數] 參數
常見命令參數
- -e:輸入的密碼是加密後的密文;
- -h:顯示幫助信息並退出。
chpasswd
必須以root
權限才能執行,如果是普通用戶執行時,需要在命令前加sudo
命令來提升權限爲root
權限。案例演示
1: 使用
chpasswd
命令來更新用戶登錄密碼。
chpasswd
是從鍵盤不斷的讀入指令,我們可以使用Ctrl+D
組合鍵來結束鍵盤輸入。
5、login 讓用戶登錄系統
使用
login
命令登錄
login
命令是讓用戶登錄系統,可通過它的功能隨時更換登入身份。當/etc
目錄裏含名稱爲nologin
的文件時,系統只允許root
帳號登入系統,其他用戶一律不準登入。當使用
login
命令登錄系統後,可以使用logout
命令或者exit
命令來退出當前用戶登錄,返回到登錄前的用戶狀態。命令格式:
login [命令參數] 參數
參數爲登錄的用戶名,可以不輸入登錄的用戶名,直接輸入
login
命令後回車,然後根據提示再輸入用戶名和密碼。常見命令參數
- -p:告訴login指令不銷燬環境變量;
- -h:指定遠程服務器的主機名。
login
必須以root
權限才能執行,如果是普通用戶執行時,需要在命令前加sudo
命令來提升權限爲root
權限。案例演示
1: 使用
login
命令來登錄系統(文件/etc/nologin
不存在)。首先查看當前登錄的用戶名是
fzm
。使用
newUser
用戶來登錄系統,然後查看當前登錄的用戶名。使用
logout
或者exit
命令退出newUser
用戶,然後在查看當前登錄用戶是否爲fzm
。2: 使用
login
命令來登錄系統(文件/etc/nologin
存在)。首先查看當前登錄的用戶名是
fzm
。在
/etc
目錄下新創建一個nologin
文件,使用如下命令創建:
sudo touch /etc/nologin
使用普通用戶
newUser
來登錄系統,查看是否可以登錄成功。發現使用
newUser
用戶是無法登錄系統的,只有使用root
用戶才能登錄系統。
6、su 切換用戶身份
使用
su
命令切換用戶身份
su
命令用於切換當前用戶身份到其他用戶身份,變更時須輸入所要變更的用戶帳號的密碼。當使用
su
命令切換用戶後,使用exit
命令退出當前身份,返回原有登錄用戶身份。注:如果當前用戶身份是root,則使用su命令切換到其他用戶的時候不需要相應用戶的密碼
命令格式:
su [命令參數] 參數
參數爲登錄的用戶名,如果沒有參數,則默認切換爲
root
用戶。常見命令參數
-c<指令>
或--command=<指令>
:執行完指定的指令後,即恢復原來的身份;-l
或--login
:改變身份時,也同時變更工作目錄,以及HOME
,SHELL
,USER
,logname
。此外,也會變更PATH變量;-m
,-p
或--preserve-environment
:變更身份時,不要變更環境變量;-s<shell>
或--shell=<shell>
:指定要執行的shell
。
su
命令所有使用者都可以執行。案例演示
1: 使用
su
命令切換當前用戶身份(不改變當前工作目錄)。首先查看當前登錄的用戶名是
fzm
,當前工作目錄是/home/fzm
。切換當前用戶爲
newUser
用戶,然後查看當前用戶身份和當前工作目錄。使用
exit
命令退出newUser
用戶,然後在查看當前登錄用戶身份和當前工作目錄。2: 使用
su
命令切換當前用戶身份(改變當前工作目錄)。首先查看當前登錄的用戶名是
fzm
,當前工作目錄是/home/fzm
。切換當前用戶爲
newUser
用戶,然後查看當前用戶身份和當前工作目錄。使用
exit
命令退出newUser
用戶,然後在查看當前登錄用戶身份和當前工作目錄。**3、使用su命令切換當前用戶身份爲newUser,並且執行whoami指令,然後恢復原來的身份 **
su -c whoami newUser
用戶高級管理
1、groupadd 創建一個新用戶組
Linux創建用戶組命令
Linux
中使用groupadd
命令來創建一個新用戶組。命令格式:
groupadd [命令參數] 參數
常見命令參數:
- -g:指定新建工作組的id;
- -r:創建系統工作組,系統工作組的組ID小於500;
groupadd
必須以root
權限才能執行,如果是普通用戶想使用該命令,需要在命令前加sudo
命令來提升權限爲root
權限。案例演示一
使用
groupadd
命令新創建一個用戶組testGroup
在背景介紹中,我們瞭解到,
Linux
中用戶組信息是保存在/etc/group
文件中,我們可以使用命令tail /etc/group
命令查看/etc/group
文件最後10行中是否存在剛剛新創建的testGroup
用戶信息。案例演示二
使用
groupadd
命令新創建一個用戶組testGroupID
,並且指定組的ID注意:我們可以看到有時執行
sudo
命令就不需要輸入密碼,這是因爲每次都輸入密碼比較麻煩,所以Linux
會設置一個sudo
的會話時間,就是說我們在第一次執行sudo
的時候是要輸入密碼,那麼在接下來的一段時間內在執行sudo
的時候就不需要輸入密碼,這個會話時間默認是5
分鐘,用戶也可以通過編輯/etc/sudoers
來修改這個會話時間的大小。同樣我們可以使用命令
tail /etc/group
命令查看/etc/group
文件最後10
行中是否存在剛剛新創建的testGroupID
用戶信息。
2、groupdel 刪除一個已經存在的用戶組
Linux刪除用戶組命令
Linux
中使用groupdel
命令來刪除一個已經存在的用戶組。命令格式:
groupdel 參數
參數爲要刪除的用戶組名
groupdel
必須以root
權限才能執行,如果是普通用戶想使用該命令,需要在命令前加sudo
命令來提升權限爲root
權限。案例演示一
使用
groupdel
命令刪除上面創建的testGroup
和testGroupID
組
3、id 用於顯示用戶的ID,以及所屬羣組的ID
Linux查看用戶所屬組
使用
id
命令查看。命令格式:
id [命令參數] 參數
參數爲要查詢的用戶名,默認是當前登錄用戶。
常見命令參數:
-g或--group
:顯示用戶所屬羣組的ID
;-G或--groups
:顯示用戶所屬附加羣組的ID
;-n或--name
:顯示用戶,所屬羣組或附加羣組的名稱。- -r或–real 顯示實際ID。
- -u或–user 顯示用戶ID。
- -help 顯示幫助。
- -version 顯示版本信息。
id
命令的執行權限是面向所有用戶。案例演示:
使用
id
命令查看用戶fzm
所屬組。
####4、groups 查看用戶所屬組
使用
group
命令查看。命令格式:
groups 參數
參數爲要查詢的用戶名,默認是當前登錄用戶。
執行權限:
groups
命令的執行權限是面向所有用戶。案例演示:
使用
groups
命令查看用戶fzm
所屬組。
5、usermod 修改用戶屬性
Linux用戶信息修改命令
Linux
中usermod
命令是最強大的用戶賬戶修改實用工具。
usermod
命令我們在上一關只是簡單的用到其-g
、-G
參數對用戶的所屬組進行修改,本關我們將進一步使用usermod
命令的其它屬性進行修改更多的屬性。命令格式:
usermod [命令參數] 參數
常見命令參數:
- -c<備註>:修改用戶帳號的備註文字;
- -d<登入目錄>:修改用戶登入時的目錄;
- -e<有效期限>:修改帳號的有效期限;
- -f<緩衝天數>:修改在密碼過期後多少天即關閉該帳號;
- -g<羣組>:修改用戶所屬的羣組;
- -G<羣組>;修改用戶所屬的附加羣組;
- -l<帳號名稱>:修改用戶帳號名稱;
- -L:鎖定用戶密碼,使密碼無效;
- -s:修改用戶登入後所使用的
shell
;- -u:修改用戶
ID
;- -U:解除密碼鎖定。
usermod
必須以root
權限才能執行,如果是普通用戶想使用該命令時,需要在命令前加sudo
命令來提升權限爲root
權限。使用usermod命令修改用戶組
如果要一個用戶僅僅屬於某一個組,而不是同時屬於多個組,則使用如下命令:
命令格式:
usermod -g 組名 用戶名
如果要給一個用戶添加一個新的組,同時保留原來有所的組,則使用如下命令:
命令格式:
usermod -a -G 組名 用戶名
usermod
必須以root
權限才能執行,如果是普通用戶想執行usermod
時,需要在命令前加sudo
命令來提升權限爲root
權限。案例演示一:
新創建一個用戶
newUser
和新創建一個用戶組newGroup
,使用usermod
命令將newUser
用戶所屬組修改爲newGroup
。首先,創建用戶
newUser
和組newGroup
,使用groups
命令查看用戶newUser
所屬的組,因爲默認情況下新創建用戶的時候會默認創建一個與用戶名同名的私有組,並將新創建的用戶所屬組設置爲私有組。接下來使用usermod
命令來修改用戶所屬組,最後查看修改是否成功。案例演示二:
新創建一個用戶
newUser
和新創建一個用戶組newGroup
,使用usermod
命令爲newUser
用戶新添加一個組newGroup
。首先,創建用戶
newUser
和組newGroup
,使用groups
命令查看用戶newUser
所屬的組。接下來使用usermod
命令來爲用戶添加一個新的組,最後查看添加是否成功。案例演示三:
使用
usermod
命令修改用戶名。例如,在系統中已經存在一個用戶名爲
oldUser
的用戶,由於某種原因,現在必須將其修改成newUser
。案例演示四:
使用
usermod
命令修改用戶登錄目錄。首先使用
finger
命令查看用戶newUser
的登錄目錄爲/home/oldUser
,然後新創建一個/home/newUser
,使用usermod
將用戶newUser
的登錄目錄修改成/home/newUser
,最後使用finger
命令查看是否修改成功。
6、finger 查看用戶屬性
注意:
Ubuntu
系統中默認沒有安裝finger
命令,用戶可以通過以下命令來安裝finger
,然後就可以使用finger
。
sudo apt-get install finger
具體使用方法如下:
命令格式:
finger [命令參數] 參數
常見命令參數
- -l:多行顯示;
- -s:單行顯示。這個選項只顯示登入名稱、真實姓名、終端機名稱、閒置時間、登入時間、辦公室號碼及電話號碼。如果所查詢的使用者是遠端服務器的使用者,這個選項無效。
案例演示:
使用
finger
命令查看用戶信息。例如,查看系統中已經存在的用戶
newUser
信息。
7、groupmod 修改用戶組信息
Linux用戶組信息修改命令
Linux
中使用groupmod
命令來修改用戶組信息。命令格式:
groupmod [命令參數] 參數
常見命令參數:
- -g<羣組識別碼>:設置欲使用的羣組識別碼;
- -n<新羣組名稱>:設置欲使用的羣組名稱。
groupmod
必須以root
權限才能執行,如果是普通用戶想使用該命令時,需要在命令前加sudo
命令來提升權限爲root
權限。案例演示:
使用
groupmod
命令修改已有用戶組名稱。首先通過
tail
命令查看一個已有用戶組信息,可以看到該用戶組名爲oldUser
,並且組ID爲1004,通過groupmod
命令將其名由oldUser
修改成renameOldUser
,最後使用再查看是否修改成功。
VIM基本用法
1、打開文件和保存退出
vi
是Unix
操作系統中最常用的全屏編輯器,Linux中常用的是vi
的加強版vim
,vim
同vi
完全兼容。在Linux系統中,vi
和vim
是完全等價的兩條命令。
vi/vim
編輯器可以執行輸入、刪除、查找、替換、塊操作等衆多文件操作,而且用戶可以根據自己的需要對其進行定製,這是其他編輯器程序沒有的工程。vi/vim
編輯器以命令行的方式處理文件,儘管不如圖形化處理方式直觀,但它具有操作速度快、功能全面等優點。另外,vi/vim
不是一個排版程序,它不像Word
或WPS
那樣可以對字體、格式、段落等其他屬性進行設置,它只是一個文本編輯器程序。啓動
vi/vim
編輯器
vi/vim
的基本格式如下:
vi [option] [filename...]
或
vim [option] [filename...]
其中,
[option]
是選項,[filename]
是需要編輯的一個或多個文件名。案例演示1:
啓動
vi/vim
編輯器,同時打開文件testFile
,可以使用如下命令:
vi testFile
或
vim testFile
[請在右側“命令行”裏直接體驗]
因爲當前目錄下沒有
testFile
文件,所以此時打開的文件是空,並且在底部一行顯示的是打開的文件名以及當前被打開的文件狀態,因爲是新建的文件,所以顯示的是"testFile" [New File]
標識。退出
vi/vim
編輯器。案例演示2:
退出
vi/vim
編輯器,同時保存新創建的文件testFile
,具體操作如下所示:輸入:wq命令後回車即可保存當前文件並退出vi/vim編輯器;
[請在右側“命令行”裏直接體驗]
按下回車鍵後,我們將退出了當前
vi/vim
編輯器,如果不想保存testFile
文件而是隻想退出vi/vim
編輯器,則我們輸入:q
命令後回車即可。
2、工作模式切換與插入模式
vi/vim
編輯器有三種工作模式,每種工作模式都有不同的作用,以下是這三種工作模式的詳細介紹:
- **命令模式: **查看當前文件內容,此時不能對文件內容進行寫入操作,從該模式可以切換爲插入模式和底線命令模式。
- **插入模式: **可以對文件內容進行編輯操作,從該模式可以切換爲命令模式。
- **底線命令模式: **不可以對文件內容進行編輯,在此模式下可以執行一些
vi/vim
的命令,例如: 退出命令、保存內容命令等等。從該模式可以切換爲命令模式。注意: 啓動vi/vim後,首先進入的是命令模式。
命令模式與插入模式相互切換
首先啓動
vi/vim
編輯器後,首先進入的工作模式是命令模式,在當前模式下,我們只能查看文件內容,不能對文件內容進行寫入操作。如果想對文件進行寫入操作,那麼我們只有進入插入模式下。
- 命令模式->插入模式方法
從命令模式到插入模式的切換方法有多種,我們介紹如下3中常用方法:
輸入命令 說明 i, I i 爲『從目前光標所在處輸入』,I 爲『在目前所在行的第一個非空格符處開始輸入』。 a, A a 爲『從目前光標所在的下一個字符處開始輸入』, A 爲『從光標所在行的最後一個字符處開始輸入』。 o, O 這是英文字母 o 的大小寫。o 爲『在目前光標所在的下一行處輸入新的一行』; O 爲在目前光標所在處的上一行輸入新的一行。
- 插入模式->命令模式方法
由插入模式切換到命令模式比較簡單,我們只需要點擊ESC
鍵即可返回到命令模式。案例演示1:
使用
vi/vim
編輯器打開文件testFile
,並且將工作模式切換到插入模式,輸入Hello vi/vim
字符串,最後保存文件並退出,可以使用如下命令:
vi testFile
或
vim testFile
打卡
testFile
文件命令;首先進入的是命令模式;
按下字母
i
後進入插入模式;輸入
Hello vi/vim
字符後,按下ESC
鍵後返回命令模式,最後輸入:wq
保存退出文件;[請在右側“命令行”裏直接體驗]
命令模式與底線命令模式相互切換
vi/vim
底線命令模式下如何執行寫複雜的命令,例如我們常用的保存退出命令(wq
)等。
- 命令模式->底線命令模式方法
從命令模式到底線命令模式的切換比較簡單,我們只需要輸入:
字符即可,注意:是英文輸入法下的冒號。- 底線命令模式->命令模式方法
由底線命令模式切換到命令模式比較簡單,我們只需要點擊ESC
鍵即可返回到命令模式。
3、命令模式
vi/vim
編輯器與其它編輯器最大的不同之處是不能使用鼠標進行操作(可以在配置文件中設置鼠標屬性,默認是禁止使用鼠標),我們可以在命令模式下移動光標位置,常見移動命令如下所示:
命令 說明 h 或 向左箭頭鍵(←) 光標向左移動一個字符 j 或 向下箭頭鍵(↓) 光標向下移動一個字符 k 或 向上箭頭鍵(↑) 光標向上移動一個字符 l 或 向右箭頭鍵(→) 光標向右移動一個字符 [Ctrl] + [f] 屏幕『向下』移動一頁,相當於 [Page Down]按鍵 [Ctrl] + [b] 屏幕『向上』移動一頁,相當於 [Page Up] 按鍵 [Ctrl] + [d] 屏幕『向下』移動半頁 [Ctrl] + [u] 屏幕『向上』移動半頁 案例演示1:
使用
vi/vim
編輯器打開文件oldFile
,移動當前光標到第一行的第二字符處,可以使用如下步驟:打卡
oldFile
文件命令;首先進入的是命令模式;
移動光標到第一行的第5個字符處(按5次→);
最後輸入
:q
退出文件;[請在右側“命令行”裏直接體驗]
命令模式刪除操作
我們不光可以在插入模式下可以對文件內容進行刪除操作,我們可以直接在命令模式下對文件進行刪除操作,常見刪除命令如下所示:
命令 說明 x, X 在一行字當中,x 爲向後刪除一個字符 (相當於 [del] 按鍵), X 爲向前刪除一個字符(相當於 [backspace] 亦即是退格鍵) nx n 爲數字,連續向後刪除 n 個字符。例如,我要連續刪除 5 個字符 ,則可以使用 5x
dd 刪除光標所在的那一整行 ndd n 爲數字。刪除光標所在的向下 n 行,例如 10dd
則是刪除 10 行d1G 刪除光標所在到第一行的所有數據 dG 刪除光標所在到最後一行的所有數據 案例演示1:
使用
vi/vim
編輯器打開文件oldFile
,刪除當前文件的第二行所有內容,最後保存文件並退出,可以使用如下步驟:打卡
oldFile
文件命令;首先進入的是命令模式;
移動光標到文件第二行;
輸入
dd
字符後刪除當前行內容,最後輸入:wq
保存退出文件;[請在右側“命令行”裏直接體驗]
命令模式複製粘貼操作
常見覆制命令如下所示:
命令 說明 yy 複製光標所在的那一行 nyy n 爲數字。複製光標所在的向下 n 行,例如 10yy
則是複製 10 行y1G 複製光標所在行到第一行的所有數據 yG 複製光標所在行到最後一行的所有數據 y0 複製光標所在的那個字符到該行行首的所有數據 y$ 複製光標所在的那個字符到該行行尾的所有數據 常見粘貼命令爲
p, P
,p
爲將已複製的數據在光標下一行貼上,P
則爲貼在遊標上一行!案例演示1:
使用
vi/vim
編輯器打開文件oldFile
,將第一行內容複製,然後粘貼到文件的末尾,最後保存文件並退出,可以使用如下步驟:打卡
oldFile
文件命令;首先進入的是命令模式;
複製第一行內容(
yy
),移動光標到最後一行,粘貼(p
)內容到當前行的下一行,最後輸入:wq
保存退出文件;
####4、底線命令模式
在
vi/vim
底線命令模式下,我們可以執行一些特殊的命令,同時可以完成特殊的操作,例如:執行linux系統中的命令、對文件的內容進行查找或替換操作等。搜索替換
vi/vim
編輯器在底線命令模式下可以對文件內容進行查找和替換操作,常見查找和替換命令如下所示:
命令 說明 /word 向光標之下尋找一個名稱爲 word 的字符串。例如要在檔案內搜尋 vbird 這個字符串,就輸入 /vbird 即可。 ?word 向光標之上尋找一個字符串名稱爲 word 的字符串。 n 這個 n 是英文字母。代表重複前一個搜尋的動作。舉例來說, 如果剛剛我們執行 /vbird 去向下搜尋 vbird 這個字符串,則按下 n 後,會向下繼續搜尋下一個名稱爲 vbird 的字符串。 N 這個 N 是英文按鍵。與 n 剛好相反,爲『反向』進行前一個搜尋動作。 例如 /vbird 後,按下 N 則表示『向上』搜尋 vbird 。 [:n1,n2s/word1/word2/g n1 與 n2 爲數字。在第 n1 與 n2 行之間尋找 word1 這個字符串,並將該字符串取代爲 word2 。 :1,$s/word1/word2/g 從第一行到最後一行尋找 word1 字符串,並將該字符串取代爲 word2。 :1,$s/word1/word2/gc 從第一行到最後一行尋找 word1 字符串,並將該字符串取代爲 word2 !且在取代前顯示提示字符給用戶確認 (confirm) 是否需要取代。 案例演示1:
使用
vi/vim
編輯器打開文件oldFile
,將所有line
單詞替換爲words
單詞,並保存退出,可以使用如下步驟:打卡
oldFile
文件命令;首先進入的是命令模式;
首先輸入
:
切換當前模式爲底線命令模式,然後輸入1,$s/line/words/g
後回車;[請在右側“命令行”裏直接體驗]
底線命令模式下執行特殊命令
常見在底線命令模式執行的命令如下所示:
命令 說明 :w 將編輯的數據寫入硬盤檔案中 :w! 若文件屬性爲『只讀』時,強制寫入該檔案。不過,到底能不能寫入, 還是跟你對該檔案的檔案權限有關啊! :q! 若曾修改過檔案,又不想儲存,使用 ! 爲強制離開不儲存檔案。 :w [filename] 將編輯的數據儲存成另一個檔案(類似另存新檔) :n1,n2 w [filename] 將 n1 到 n2 的內容儲存成 filename 這個檔案。 :! command 暫時離開 vi 到指令行模式下執行 command 的顯示結果! :set nu 顯示行號,設定之後,會在每一行的前綴顯示該行的行號 :set nonu 與 set nu 相反,爲取消行號! 案例演示1:
使用
vi/vim
編輯器打開文件oldFile
,顯示當前文件行號,將當前文件的第1-3行內容另存爲oldFileCpy
文件,使用cat
命令查看新生成文件內容,可以使用如下步驟:打卡
oldFile
文件命令;輸入
:set nu
後回車,顯示行號;輸入
:1,3 w oldFileCpy
後回車最後在
vi
中使用cat
命令查看新生成的文件oldFileCpy
內容;按下回車鍵後返回當前
vi
編輯器,最後輸入q
退出文件;