Linux命令入門手冊

序言

廢話就不多說了,還沒想好說啥廢話,暫時直接先上乾貨吧。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

img

應用示例二:

查看目錄/mnt下的所有信息(包括隱藏內容),同時顯示每個文件的詳細信息,則可以使用如下命令:

ls -al /mnt

img

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

img

2、head 查看文件前n行內容

具體命令如下:head 參數 文件名

常用參數如下:

  • -n number:顯示文件的前number行內容;

具體說明:

  • head命令是從文件的開頭顯示內容,默認情況下只顯示前10行的內容;
  • head命令不能對文件進行編輯操作,只能查看文件內容。

應用示例:

查看文件/etc/passwd的前8行內容,則可以使用如下命令:

head -n 8 /etc/passwd

img

3、tail 查看文件後n行內容

具體命令如下:tail 參數 文件名

常用參數如下:

  • -n number:顯示文件的最後number行內容;

具體說明:

  • tail命令是從文件的結尾顯示內容,默認情況下只顯示最後10行的內容;
  • tail命令不能對文件進行編輯操作,只能查看文件內容。

應用示例:

查看文件/etc/passwd末尾5行內容,則可以使用如下命令:

tail -n 5 /etc/passwd

img

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個從07的八進制數,其順序是ugo

將文件testFile的所有權限設置爲僅讀權限,可以使用如下命令:

chmod a=r testFile

img

案例演示二:

將文件testFile的所有權限設置爲可讀可寫,同組用戶權限設置爲只讀,可以使用如下命令:

chmod u=rw,g=r testFile

img

2、chown 修改目錄所有者命令

Linux中使用chown命令來修改目錄所有者。

具體命令如下:

chown 參數 用戶名/用戶ID 目錄名

常見命令參數:

  • -R或——recursive:遞歸處理,將指定目錄下的所有文件及子目錄一併處理;
  • --help:在線幫助;

執行權限

chown必須以root權限才能執行,如果是普通用戶想執行chown時,需要在命令前加sudo命令來提升權限爲root權限。

案例演示一:

將系統中已存在的目錄testDir的所有者設置爲newUser,可以使用如下命令:

sudo chown newUser testDir

img

可以使用ls -lll命令查看目錄所有者是否修改成功。

img

將系統中已存在的目錄Dir以及其所有子目錄和子文件的所有者設置爲newUser,可以使用如下命令:

sudo chown -R newUser Dir

img

可以看到Dir目錄下的所有子目錄和子文件的所有者都已經修改成了newUser

3、chgrp 修改目錄所屬組命令

Linux中使用chgrp命令來修改目錄所屬組。

具體命令如下:

chgrp 參數 用戶組名/組ID 目錄名

常見命令參數:

  • -R或——recursive:遞歸處理,將指定目錄下的所有文件及子目錄一併處理;
  • --help:在線幫助;

執行權限

執行權限

chgrp必須以root權限才能執行,如果是普通用戶想執行chgrp時,需要在命令前加sudo命令來提升權限爲root權限。

案例演示一:

將系統中已存在的目錄testDir的所屬組設置爲newGroup,可以使用如下命令:

sudo chgrp newGroup testDir

img

案例演示二:

將系統中已存在的目錄Dir以及其所有子目錄和子文件的所屬組設置爲newGroup,可以使用如下命令:

sudo chgrp -R newGroup Dir

img

linux中也可以使用chown命令來修改目錄的所屬組,其使用方法與修改文件的使用方法一致。

案例演示一:

使用chown命令將系統已存在的文件Dir以及其所有子目錄和子文件的所有者設置爲fzm所屬組設置爲fzm,可以使用如下命令:

sudo chown -R fzm:fzm Dir

img

Linux文件/目錄高級管理二

1、df 顯示磁盤分區上的可使用的磁盤空間

df命令用於顯示磁盤分區上的可使用的磁盤空間。默認顯示單位爲KB。可以利用該命令來獲取硬盤被佔用了多少空間,目前還剩下多少空間等信息。

具體命令如下:

df 命令參數 參數

常用參數如下:

  • -a或--all:包含全部的文件系統,包括系統特有的/proc等文件系統;
  • -k : 以KB爲單位顯示各文件系統;
  • -m : 以MB爲單位顯示各文件系統;
  • -h : 以可讀性較高的方式來顯示信息;
  • -i或--inodes:顯示inode的信息。

案例演示一:

查看系統所有磁盤設備,默認是KB爲單位,可以使用如下命令:

df

img

案例演示二:

使用-h選項以KB以上的單位來顯示,可讀性高,可以使用如下命令:

df -h

img

案例演示三:

/etc目錄下的可用的磁盤容量以易讀的格式顯示出來,可以使用如下命令:

df -h /etc

img

2、du 對文件和目錄磁盤使用的空間的查看

du命令也是查看使用空間的,但是與df命令不同的是Linux du命令是對文件和目錄磁盤使用的空間的查看,還是和df命令有一些區別的。

具體命令如下:

du 命令參數 參數

常用參數如下:

  • -a : 列出所有的文件與目錄容量,因爲默認僅統計目錄下面的文件量而已;
  • -h : 以可讀性較高的方式來顯示信息;
  • -k : 以KB爲單位顯示容量;
  • -m : 以MB爲單位顯示容量;
  • -s : 列出總量,不列出每個目錄佔用的容量。

案例演示一:

列出當前目錄下的所有文件的總容量,可以使用如下命令:

du

img

: 直接輸入du命令沒有加任何參數時,則du會分析當前所在目錄的文件與目錄所佔用的磁盤空間,但是,實際顯示時僅會顯示目錄容量。

案例演示二:

列出當前目錄下的所有文件的總容量,同時將每個文件大小也列出來,可以使用如下命令:

du -a

img

以可讀性較高的方式顯示多個文件所佔磁盤大小,可以使用如下命令:

du -h c++ g++

img

3、ln 創建鏈接和軟鏈接

硬鏈接指通過索引節點來進行鏈接。在Linux的文件系統中,保存在磁盤分區中的文件不管是什麼類型都給它分配一個編號,稱爲索引節點號(Inode Index)。在Linux中,多個文件名指向同一索引節點是存在的。一般這種鏈接就是硬鏈接。

硬鏈接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬鏈接到重要文件,以防止誤刪的功能。其原因如上所述,因爲對應該目錄的索引節點有一個以上的鏈接。只刪除一個鏈接並不影響索引節點本身和其它的鏈接,只有當最後一個鏈接被刪除後,文件的數據塊及目錄的鏈接纔會被釋放。也就是說,文件真正刪除的條件是與之相關的所有硬鏈接文件均被刪除。

硬鏈接特點如下:

  • 文件有相同的inodedata block
  • 只能對已存在的文件進行創建;
  • 不能交叉文件系統進行硬鏈接的創建;
  • 不能對目錄進行創建,只可對文件創建;
  • 刪除一個硬鏈接文件並不影響其他有相同inode號的文件。

具體命令如下:

ln 源文件 目標文件

案例演示一:

爲當前目錄下的文件testFile創建一個硬鏈接testFileLink,可以使用如下命令:

ln testFile testFileLink

img

ls結果的最左邊一列,是文件的inode值,你可以簡單把它想成C語言中的指針。它指向了物理硬盤的一個區塊,事實上文件系統會維護一個引用計數,只要有文件指向這個區塊,它就不會從硬盤上消失。可以看到,這兩個文件就如同一個文件一樣,inode值相同,都指向同一個區塊。


軟鏈接文件有類似於Windows的快捷方式。它實際上是一個特殊的文件。在符號鏈接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。

與硬鏈接不同的是,符號鏈接確實是一個新文件,當然它具有不同的I節點號;而硬鏈接並沒有建立新文件。

軟鏈接特點如下:

  • 源文件和目標文件有不相同的inodedata block
  • 軟鏈接沒有硬鏈接的限制,可以對目錄文件做符號鏈接;
  • 軟鏈接可以在不同文件系統之間做軟鏈接;
  • 在目錄長列表中,符號鏈接作爲一種特殊的文件類型顯示出來,其第一個字母是l
  • 符號鏈接的大小是其鏈接文件的路徑名中的字節數;

具體命令如下:

ln -s 源文件 目標文件

案例演示一·:

爲當前目錄下的文件testFile創建一個軟鏈接myLink,可以使用如下命令:

ln -s testFile myLink

img

4、mount 掛載

mount命令詳解

mountLinux 下的一個命令,它可以將分區掛接到 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

img

第一條命令是將/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目錄卸載後,該目錄還原爲原有的內容,即爲空目錄。

img

Linux之用戶管理

1、useradd 創建用戶

Linux創建用戶命令

Linux中使用useradd命令來創建一個新用戶。

命令格式格式:useradd [命令參數] 參數

常見命令參數:

  • -d<登入目錄>:指定用戶登入時的啓始目錄;
  • -D:查看或變更預設值;
  • -g<羣組>:指定用戶所屬的羣組;
  • -m:自動建立用戶的登入目錄;
  • -M:不要自動建立用戶的登入目錄;
  • -s:指定用戶登入後所使用的shell

useradd必須以root權限才能執行,如果是普通用戶想創建一個新用戶時,需要在命令前加sudo命令來提升權限爲root權限。

案例演示

1 . 查看useradd系統默認屬性值,使用命令useradd -D

筆者使用的系統是Ubuntu16.04useradd系統默認值如下所示:

img

參數 說明
GROUP 指新創建的用戶將被添加到用戶組ID爲100的公共用戶組中
HOME 指新創建的用戶將在/home目錄下創建一個HOME賬戶
INACTIVE 指當密碼逾期時,用戶將不會被禁用
EXPIRE 指新創建的用戶不會在設定日期被設置爲逾期
SHELL 指新創建的用戶使用/bin/sh(也就是bash)作爲默認shell
SKEL 指系統會將/etc/skel目錄中的內容複製到新創建的用戶的HOME目錄
CREATE_MAIL_SPOOL 指系統不會在郵件目錄中創建一個文件用於新創建用戶賬戶接受郵件

2 . 使用useradd命令新創建一個用戶test,並且自動建立用戶的登入目錄。

img

在背景介紹中,我們瞭解到,Linux中用戶信息是保存在/etc/passwd文件中,我們可以使用命令tail /etc/passwd命令查看/etc/passwd文件最後10行中是否存在剛剛新創建的test用戶信息。

img

2、userdel 刪除用戶

Linux刪除用戶命令

Linux中使用userdel命令來刪除一個已經存在的用戶。

命令格式:userdel [命令參數] 參數

常見命令參數:

  • -f:強制刪除用戶,即使用戶當前已登錄;
  • -r:刪除用戶的同時,刪除與用戶相關的所有文件。

userdel必須以root權限才能執行,如果是普通用戶想使用該命令時,需要在命令前加sudo命令來提升權限爲root權限。

案例演示

1 . 使用userdel命令刪除一個已經存在的用戶test,並且自動刪除其家目錄文件。

img

因爲系統默認是不會給新創建的用戶自動創建一個文件夾用於用戶賬戶接收郵件,所以在使用userdel -r命令刪除的時候會提醒/var/mail/test文件夾不存在。

2、將當前工作目錄切換到新創建的用戶newUser家目錄;

cd /home/newUser

3、passwd 修改用戶密碼

用戶密碼存放地及方式

Linux中用戶的登錄密碼是存放在/etc/shadow文件中,/etc/shadow文件中存放的是加密過後的密碼,所以在/etc/shadow文件中看到的密碼是加密過後的密文。

看下筆者的電腦中/etc/shadow文件存放的內容格式。

img

可以看到第一個冒號前是用戶名,用戶名是以明文的方式存放。

在第一個冒號和第二個冒號之間存放的是加密過後的密碼,密碼是以密文的方式存放,其中密文是由用戶密碼和其它信息加密後組成的,這裏不做詳細講解,我們只需要知道如果第一個冒號和第二個冒號之間是*或者!或者空,則表示該用戶沒有密碼,否則,則表示該用戶是有密碼。

例如:用戶名fzm是存在密碼,而mysql是不存在密碼的。

使用passwd命令修改用戶密碼

命令格式:passwd [命令參數] 參數

常見命令參數:

  • -d 刪除密碼;
  • -l 停止賬號使用;
  • -S 顯示密碼信息。

passwd必須以root權限才能執行,如果是普通用戶想執行passwd時,需要在命令前加sudo命令來提升權限爲root權限。

案例演示

1: 使用useradd命令來新創建一個用戶,使用passwd命令來設置登錄密碼。

img

使用useradd命令創建一個新用戶(test),此時test用戶是沒有密碼的,所以使用tail -n 1 /etc/shadow命令查看/etc/shadow文件的最後一行可以看出test用戶密碼部分爲!

使用passwd命令爲test用戶設置密碼時,可以看到需要輸入兩次密碼,目的是爲了確保兩次輸入的密碼一致。當設置完密碼後,可以看到/etc/shadow文件中test用戶的密碼部分已經爲加密過後的密文。

2: 使用passwd命令來清除用戶的密碼。

img

使用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命令來更新用戶登錄密碼。

img

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用戶來登錄系統,然後查看當前登錄的用戶名。

img

使用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

img

在背景介紹中,我們瞭解到,Linux中用戶組信息是保存在/etc/group文件中,我們可以使用命令tail /etc/group命令查看/etc/group文件最後10行中是否存在剛剛新創建的testGroup用戶信息。

img

案例演示二

使用groupadd命令新創建一個用戶組testGroupID,並且指定組的ID

img

注意:我們可以看到有時執行sudo命令就不需要輸入密碼,這是因爲每次都輸入密碼比較麻煩,所以Linux會設置一個sudo的會話時間,就是說我們在第一次執行sudo的時候是要輸入密碼,那麼在接下來的一段時間內在執行sudo的時候就不需要輸入密碼,這個會話時間默認是5分鐘,用戶也可以通過編輯/etc/sudoers來修改這個會話時間的大小。

同樣我們可以使用命令tail /etc/group命令查看/etc/group文件最後10行中是否存在剛剛新創建的testGroupID用戶信息。

img

2、groupdel 刪除一個已經存在的用戶組

Linux刪除用戶組命令

Linux 中使用groupdel命令來刪除一個已經存在的用戶組。

命令格式:groupdel 參數

參數爲要刪除的用戶組名

groupdel必須以root權限才能執行,如果是普通用戶想使用該命令,需要在命令前加sudo命令來提升權限爲root權限。

案例演示一

使用groupdel命令刪除上面創建的testGrouptestGroupID

img

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所屬組。

img

####4、groups 查看用戶所屬組

使用group命令查看。

命令格式:groups 參數

參數爲要查詢的用戶名,默認是當前登錄用戶。

執行權限:groups命令的執行權限是面向所有用戶。

案例演示:

使用groups命令查看用戶fzm所屬組。

img

5、usermod 修改用戶屬性

Linux用戶信息修改命令

Linuxusermod命令是最強大的用戶賬戶修改實用工具。

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

img

首先,創建用戶newUser和組newGroup,使用groups命令查看用戶newUser所屬的組,因爲默認情況下新創建用戶的時候會默認創建一個與用戶名同名的私有組,並將新創建的用戶所屬組設置爲私有組。接下來使用usermod命令來修改用戶所屬組,最後查看修改是否成功。

案例演示二:

新創建一個用戶newUser和新創建一個用戶組newGroup,使用usermod命令爲newUser用戶新添加一個組newGroup

img

首先,創建用戶newUser和組newGroup,使用groups命令查看用戶newUser所屬的組。接下來使用usermod命令來爲用戶添加一個新的組,最後查看添加是否成功。

案例演示三:

使用usermod命令修改用戶名。

例如,在系統中已經存在一個用戶名爲oldUser的用戶,由於某種原因,現在必須將其修改成newUser

img

案例演示四:

使用usermod命令修改用戶登錄目錄。

img

首先使用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信息。

img

7、groupmod 修改用戶組信息

Linux用戶組信息修改命令

Linux 中使用groupmod命令來修改用戶組信息。

命令格式:groupmod [命令參數] 參數

常見命令參數:

  • -g<羣組識別碼>:設置欲使用的羣組識別碼;
  • -n<新羣組名稱>:設置欲使用的羣組名稱。

groupmod必須以root權限才能執行,如果是普通用戶想使用該命令時,需要在命令前加sudo命令來提升權限爲root權限。

案例演示:

使用groupmod命令修改已有用戶組名稱。

img

首先通過tail命令查看一個已有用戶組信息,可以看到該用戶組名爲oldUser,並且組ID爲1004,通過groupmod命令將其名由oldUser修改成renameOldUser,最後使用再查看是否修改成功。

VIM基本用法

1、打開文件和保存退出

viUnix操作系統中最常用的全屏編輯器,Linux中常用的是vi的加強版vimvimvi完全兼容。在Linux系統中,vivim是完全等價的兩條命令。

vi/vim編輯器可以執行輸入、刪除、查找、替換、塊操作等衆多文件操作,而且用戶可以根據自己的需要對其進行定製,這是其他編輯器程序沒有的工程。vi/vim編輯器以命令行的方式處理文件,儘管不如圖形化處理方式直觀,但它具有操作速度快、功能全面等優點。另外,vi/vim不是一個排版程序,它不像WordWPS那樣可以對字體、格式、段落等其他屬性進行設置,它只是一個文本編輯器程序。

啓動vi/vim編輯器

vi/vim的基本格式如下:

vi [option] [filename...]

vim [option] [filename...]

其中,[option]是選項,[filename]是需要編輯的一個或多個文件名。

案例演示1:

啓動vi/vim編輯器,同時打開文件testFile,可以使用如下命令:

vi testFile

vim testFile

img

img

[請在右側“命令行”裏直接體驗]

因爲當前目錄下沒有testFile文件,所以此時打開的文件是空,並且在底部一行顯示的是打開的文件名以及當前被打開的文件狀態,因爲是新建的文件,所以顯示的是"testFile" [New File]標識。

退出vi/vim編輯器。

案例演示2:

退出vi/vim編輯器,同時保存新創建的文件testFile,具體操作如下所示:

輸入:wq命令後回車即可保存當前文件並退出vi/vim編輯器;

img

[請在右側“命令行”裏直接體驗]

按下回車鍵後,我們將退出了當前vi/vim編輯器,如果不想保存testFile文件而是隻想退出vi/vim編輯器,則我們輸入:q命令後回車即可。

img

2、工作模式切換與插入模式

vi/vim編輯器有三種工作模式,每種工作模式都有不同的作用,以下是這三種工作模式的詳細介紹:

  1. **命令模式: **查看當前文件內容,此時不能對文件內容進行寫入操作,從該模式可以切換爲插入模式和底線命令模式。
  2. **插入模式: **可以對文件內容進行編輯操作,從該模式可以切換爲命令模式。
  3. **底線命令模式: **不可以對文件內容進行編輯,在此模式下可以執行一些vi/vim的命令,例如: 退出命令、保存內容命令等等。從該模式可以切換爲命令模式。

img

注意: 啓動vi/vim後,首先進入的是命令模式。

命令模式與插入模式相互切換

首先啓動vi/vim編輯器後,首先進入的工作模式是命令模式,在當前模式下,我們只能查看文件內容,不能對文件內容進行寫入操作。如果想對文件進行寫入操作,那麼我們只有進入插入模式下。

  1. 命令模式->插入模式方法
    從命令模式到插入模式的切換方法有多種,我們介紹如下3中常用方法:
輸入命令 說明
i, I i 爲『從目前光標所在處輸入』,I 爲『在目前所在行的第一個非空格符處開始輸入』。
a, A a 爲『從目前光標所在的下一個字符處開始輸入』, A 爲『從光標所在行的最後一個字符處開始輸入』。
o, O 這是英文字母 o 的大小寫。o 爲『在目前光標所在的下一行處輸入新的一行』; O 爲在目前光標所在處的上一行輸入新的一行。
  1. 插入模式->命令模式方法
    由插入模式切換到命令模式比較簡單,我們只需要點擊ESC鍵即可返回到命令模式。

案例演示1:

使用vi/vim編輯器打開文件testFile,並且將工作模式切換到插入模式,輸入Hello vi/vim字符串,最後保存文件並退出,可以使用如下命令:

vi testFile

vim testFile

打卡testFile文件命令;

img

首先進入的是命令模式;

img

按下字母i後進入插入模式;

img

輸入Hello vi/vim字符後,按下ESC鍵後返回命令模式,最後輸入:wq保存退出文件;

img

[請在右側“命令行”裏直接體驗]

命令模式與底線命令模式相互切換

vi/vim底線命令模式下如何執行寫複雜的命令,例如我們常用的保存退出命令(wq)等。

  1. 命令模式->底線命令模式方法
    從命令模式到底線命令模式的切換比較簡單,我們只需要輸入:字符即可,注意:是英文輸入法下的冒號。
  2. 底線命令模式->命令模式方法
    由底線命令模式切換到命令模式比較簡單,我們只需要點擊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文件命令;

img

首先進入的是命令模式;

img

移動光標到第一行的第5個字符處(按5次→);

img

最後輸入:q退出文件;

img

[請在右側“命令行”裏直接體驗]

命令模式刪除操作

我們不光可以在插入模式下可以對文件內容進行刪除操作,我們可以直接在命令模式下對文件進行刪除操作,常見刪除命令如下所示:

命令 說明
x, X 在一行字當中,x 爲向後刪除一個字符 (相當於 [del] 按鍵), X 爲向前刪除一個字符(相當於 [backspace] 亦即是退格鍵)
nx n 爲數字,連續向後刪除 n 個字符。例如,我要連續刪除 5 個字符 ,則可以使用5x
dd 刪除光標所在的那一整行
ndd n 爲數字。刪除光標所在的向下 n 行,例如10dd則是刪除 10 行
d1G 刪除光標所在到第一行的所有數據
dG 刪除光標所在到最後一行的所有數據

案例演示1:

使用vi/vim編輯器打開文件oldFile,刪除當前文件的第二行所有內容,最後保存文件並退出,可以使用如下步驟:

打卡oldFile文件命令;

img

首先進入的是命令模式;

img

移動光標到文件第二行;

img

輸入dd字符後刪除當前行內容,最後輸入:wq保存退出文件;

img

[請在右側“命令行”裏直接體驗]

命令模式複製粘貼操作

常見覆制命令如下所示:

命令 說明
yy 複製光標所在的那一行
nyy n 爲數字。複製光標所在的向下 n 行,例如 10yy 則是複製 10 行
y1G 複製光標所在行到第一行的所有數據
yG 複製光標所在行到最後一行的所有數據
y0 複製光標所在的那個字符到該行行首的所有數據
y$ 複製光標所在的那個字符到該行行尾的所有數據

常見粘貼命令爲p, Pp 爲將已複製的數據在光標下一行貼上,P 則爲貼在遊標上一行!

案例演示1:

使用vi/vim編輯器打開文件oldFile,將第一行內容複製,然後粘貼到文件的末尾,最後保存文件並退出,可以使用如下步驟:

打卡oldFile文件命令;

img

首先進入的是命令模式;

img

複製第一行內容(yy),移動光標到最後一行,粘貼(p)內容到當前行的下一行,最後輸入:wq保存退出文件;

img

####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文件命令;

img

首先進入的是命令模式;

img

首先輸入:切換當前模式爲底線命令模式,然後輸入1,$s/line/words/g後回車;

img

img

[請在右側“命令行”裏直接體驗]

底線命令模式下執行特殊命令

常見在底線命令模式執行的命令如下所示:

命令 說明
: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文件命令;

img

輸入:set nu後回車,顯示行號;

img

img

輸入:1,3 w oldFileCpy後回車

img

最後在vi中使用cat命令查看新生成的文件oldFileCpy內容;

img

img

按下回車鍵後返回當前vi編輯器,最後輸入q退出文件;

img

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章