訂閱
糾錯(cuò)
加入自媒體

Linux:知道多少東西才算入門?

四、Linux操作系統(tǒng)命令使用基礎(chǔ)

1、命令格式 $command    [option(s)]   [argument(s)]
命令名    空格  選項(xiàng)    空格     參數(shù)
command  :命令名[option(s)]  :選項(xiàng)[argument(s)] :參數(shù)

注意:

在命令行中,每兩個(gè)部分之間有空格分隔每個(gè)命令行可使用的最多的命令字符是256個(gè)命令區(qū)分大小寫不同的命令提示符使用分隔符號(hào) “/”命令中的參數(shù)/選項(xiàng)可以是多個(gè),并且參數(shù)其實(shí)就是要傳入命令程序主函數(shù)main的參數(shù)。[ ] 表示這個(gè)內(nèi)容可以不包含,比如  [argument(s)] ,輸入命令時(shí)可以不加參數(shù)2、聯(lián)機(jī)幫助、清屏與歷史記錄命令 1)聯(lián)機(jī)幫助

遇到一些函數(shù)和命令,不知道含義時(shí)可以使用命令man來查看幫助信息。

man ls
man -k keyword

man手冊根據(jù)內(nèi)容分為9個(gè)手冊,可以使用下面命令查看

man man

man文檔的分類編號(hào)

1 - commands(普通的命令)
2 - system calls(系統(tǒng)調(diào)用)
3 - library calls(庫函數(shù))
4 - special files(特殊文件:/dev下設(shè)備文件)
5 - file formats and convertions(文件格式)
6 - games for linux(游戲和娛樂)
7 - macro packages and conventions(雜項(xiàng))
8 - system management commands(管理員命令)
9 - 其他(Linux特定, 用來存放內(nèi)核例行程序的文檔)

使用-k參數(shù),man可以在所有的man文檔和簡介中查找符合條件的命令。

peng@ubuntu:~/test$ man -k bash
bash (1)             - GNU Bourne-Again SHell
bash-builtins (7)    - bash built-in commands, see bash(1)
bashbug (1)          - report a bug in bash
builtins (7)         - bash built-in commands, see bash(1)
dh_bash-completion (1) - install bash completions for package
rbash (1)            - restricted bash, see bash(1)

有的關(guān)鍵詞在系統(tǒng)中對(duì)應(yīng)多個(gè)手冊,使用-f參數(shù),用于查找同名的手冊:

peng@ubuntu:~/test$ man -f time
time (7)             - overview of time and timers
time (1)             - run programs and summarize system resource usage
time (2)             - get time in seconds

2)清屏 clear

清屏使用命令clear或者使用快捷鍵:ctrl + l

3)歷史紀(jì)錄 history(history -n)

這是一個(gè)非常有用的命令,想知道之前輸入過的所有命令,就可以用他。

history :查看最近使用的命令,最多500條
history n :曾經(jīng)使用的最近n條命令
!n    :執(zhí)行最近第n條命令
!!    :執(zhí)行最近使用的第一條命令

方向上鍵:執(zhí)行上一條命令

方向下鍵:執(zhí)行下一條命令

五、文件管理

1)查看文件目錄

下面這幾個(gè)命令是使用最頻繁的命令:

命令說明pwd顯示當(dāng)前工作目錄cd  [要改變的目錄]改變目錄ls列出當(dāng)前目錄的文件和子目錄file辨識(shí)文件類型cdcd  //回到當(dāng)前用戶主目錄
cd ~//回到當(dāng)前用戶主目錄
cd ~[用戶名]  //進(jìn)入指定用戶主目錄
file功能說明:辨識(shí)文件類型。語法:file [-beLvz][-f <名稱文件>][-m <魔法數(shù)字文件>…][文件或目錄…]

參數(shù):

-b  列出辨識(shí)結(jié)果時(shí),不顯示文件名稱。
-c  詳細(xì)顯示指令執(zhí)行過程,便于排錯(cuò)或分析程序執(zhí)行的情形。
-f<名稱文件>  指定名稱文件,其內(nèi)容有一個(gè)或多個(gè)文件名稱呢感,讓file依序辨識(shí)這些文件,格式為每列一個(gè)文件名稱。
-L  直接顯示符號(hào)連接所指向的文件的類別。
-m<魔法數(shù)字文件>  指定魔法數(shù)字文件。
-v  顯示版本信息。
-z  嘗試去解讀壓縮文件的內(nèi)容。

補(bǔ)充說明:通過file指令,我們得以辨識(shí)該文件的類型。

peng@ubuntu:~/test$ file wait.c
wait.c: ASCII text
peng@ubuntu:~/test$ file fifo_file
fifo_file: fifo (named pipe)
2) 文件路徑

什么是文件的路徑?就是文件存放的地方,可以聯(lián)想為 文件的“家”。

在Linux中,存在著絕對(duì)路徑和相對(duì)路徑:

絕對(duì)路徑:

路徑的寫法一定是由根目錄 / 寫起的,例如 /usr/local/mysql

相對(duì)路徑:

路徑的寫法不是由根目錄 / 寫起的。

例如 首先用戶進(jìn)入到 /home,然后再進(jìn)入到peng,執(zhí)行的命令為

#cd /home
#cd peng

此時(shí)用戶所在的路徑為 /home/peng。

第一個(gè)cd命令后緊跟/home,前面有斜杠,是絕對(duì)路徑;而第二個(gè)cd命令后緊跟peng,前面沒有斜杠,表示從當(dāng)前目錄下找peng這個(gè)目錄,這個(gè)peng是相對(duì)于/home目錄來講的,所以稱為相對(duì)路徑。

3)創(chuàng)建和刪除文件目錄 1、創(chuàng)建文件touch

功能說明:

文件名不存在,則創(chuàng)建一個(gè)新的空文件
如果文件名存在,更新該文件或者目錄的修改訪問時(shí)間,內(nèi)容不變。

語法:

touch [-acfm][-d <日期時(shí)間>][-r <參考文件或目錄>][-t <日期時(shí)間>][–help]   [–version][文件或目錄…]
或 touch [-acfm][–help][–version][日期時(shí)間][文件或目錄…]

補(bǔ)充說明:使用touch指令可更改文件或目錄的日期時(shí)間,包括存取時(shí)間和更改時(shí)間。

參數(shù):

-a或–time=atime或–time=access或–time=use  只更改存取時(shí)間。
-c或–no-create  不建立任何文件。
-d<時(shí)間日期>  使用指定的日期時(shí)間,而非現(xiàn)在的時(shí)間。
-f  此參數(shù)將忽略不予處理,僅負(fù)責(zé)解決BSD版本touch指令的兼容性問題。
-m或–time=mtime或–time=modify  只更改變動(dòng)時(shí)間。
-r<參考文件或目錄>  把指定文件或目錄的日期時(shí)間,統(tǒng)統(tǒng)設(shè)成和參考文件或目錄的日期時(shí)間相同。
-t<日期時(shí)間>  使用指定的日期時(shí)間,而非現(xiàn)在的時(shí)間。
–help  在線幫助。
–version  顯示版本信息。
2、創(chuàng)建目錄mkdir

功能說明:

建立目錄

語法:

mkdir [-p][–help][–version][-m <目錄屬性>][目錄名稱]

補(bǔ)充說明:mkdir可建立目錄并同時(shí)設(shè)置目錄的權(quán)限。

參數(shù):

-m<目錄屬性>或–mode<目錄屬性>   建立目錄時(shí)同時(shí)設(shè)置目錄的權(quán)限。
 -p或–parents   若所要建立目錄的上層目錄目前尚未建立,則會(huì)一并建立上層目錄。
 –help   顯示幫助。
 –verbose   執(zhí)行時(shí)顯示詳細(xì)的信息。
 –version   顯示版本信息。
3、刪除文件rm

功能說明:

刪除文件或目錄。

語法:

rm [-dfirv][–help][–version][文件或目錄…]

補(bǔ)充說明:執(zhí)行rm指令可刪除文件或目錄,如欲刪除目錄必須加上參數(shù)”-r”,否則預(yù)設(shè)僅會(huì)刪除文件。

參數(shù):

-d或–directory  直接把欲刪除的目錄的硬連接數(shù)據(jù)刪成0,刪除該目錄。
-f或–force  強(qiáng)制刪除文件或目錄。
-i或–interactive  刪除既有文件或目錄之前先詢問用戶。
-r或-R或–recursive  遞歸處理,將指定目錄下的所有文件及子目錄一并處理。
-v或–verbose  顯示指令執(zhí)行過程。
–help  在線幫助。
–version  顯示版本信息。

4、刪除目錄

rmdir(remove directory)

功能說明:刪除目錄。

語  法:

rmdir [-p][–help][–ignore-fail-on-non-empty][–verbose][–version][目錄…]

補(bǔ)充說明:當(dāng)有空目錄要?jiǎng)h除時(shí),可使用rmdir指令。

參  數(shù):

-p或–parents   刪除指定目錄后,若該目錄的上層目錄已變成空目錄,則將其一并刪除。
 –help   在線幫助。
 –ignore-fail-on-non-empty   忽略非空目錄的錯(cuò)誤信息。
 –verbose   顯示指令執(zhí)行過程。
 –version   顯示版本信息。
3)顯示文件內(nèi)容 1. cat

功能:

把檔案串連接后傳到基本輸出到屏幕或加 > fileName 到另一個(gè)檔案

使用權(quán)限:

所有使用者

語法:

cat [-AbeEnstTuv] [–help] [–version] fileName

參數(shù):

-n 或 –number 由 1 開始對(duì)所有輸出的行數(shù)編號(hào)
-b 或 –number-nonblank 和 -n 相似,只不過對(duì)于空白行不編號(hào)
-s 或 –squeeze-blank 當(dāng)遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行
-v 或 –show-nonprinting

范例:

cat -n textfile1 > textfile2 把 textfile1 的檔案內(nèi)容加上行號(hào)后輸入 textfile2 這個(gè)檔案里
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的檔案內(nèi)容加上行號(hào)(空白行不加)之后將內(nèi)容附加到 textfile3 里。
cat < /dev/stdin > 1.txt //利用輸入重定向 CRTL+D 結(jié)束輸入
cat /dev/null > 1.txt   //輸出重定向進(jìn)行清空
2. head

功能:

查找文件的前多少行

語法:

head [-n] filename
3. tail

功能:

查找文件的莫問多少行

語法:

tail [-n] filename
4. more

功能:

分屏顯示

用法

more filename
4)拷貝和移動(dòng)文件目錄 1. cp

功能說明:

cp 源文件 目標(biāo)文件
將源文件復(fù)制為目標(biāo)文件或目錄。

語法:

cp [-abdfilpPrRsuvx][-S <備份字尾字符串>][-V <備份方式>][–help][–spares=<使用時(shí)機(jī)>][–version][源文件或目錄][目標(biāo)文件或目錄] [目的目錄]

補(bǔ)充說明:cp指令用在復(fù)制文件或目錄,如同時(shí)指定兩個(gè)以上的文件或目錄,且最后的目的地是一個(gè)已經(jīng)存在的目錄,則它會(huì)把前面指定的所有文件或目錄復(fù)制到該目錄中。若同時(shí)指定多個(gè)文件或目錄,而最后的目的地并非是一個(gè)已存在的目錄,則會(huì)出現(xiàn)錯(cuò)誤信息。

2. mv

功能說明:

mv [源文件、目錄] [目的文件、目錄]
移動(dòng)或更名現(xiàn)有的文件或目錄。

語法:

mv [-bfiuv][–help][–version][-S <附加字尾>][-V <方法>][源文件或目錄][目標(biāo)文件或目錄]

補(bǔ)充說明:mv可移動(dòng)文件或目錄,或是更改文件或目錄的名稱。

參數(shù):

-b或–backup  若需覆蓋文件,則覆蓋前先行備份。
-f或–force  若目標(biāo)文件或目錄與現(xiàn)有的文件或目錄重復(fù),則直接覆蓋現(xiàn)有的文 件或目錄。
-i或–interactive  覆蓋前先行詢問用戶。
-S<附加字尾>或
–suffix=<附加字尾>  與-b參數(shù)一并使用,可指定備份文件的所要附加的字尾。
-u或–update  在移動(dòng)或更改文件名時(shí),若目標(biāo)文件已存在,且其文件日期比源文件新,則不覆蓋目標(biāo)文件。
-v或–verbose  執(zhí)行時(shí)顯示詳細(xì)的信息。
-V=<方法>或
–version-control=<方法>  與-b參數(shù)一并使用,可指定備份的方法。
–help  顯示幫助。
–version  顯示版本信息
5)文件目錄權(quán)限 1. 權(quán)限

文件的權(quán)限:

以普通文件為例,使用 ls -l 命令,可以看到結(jié)果的第一列是 -rwxrwxrwx 的形式,其中第一個(gè)字符 "-" 表示這個(gè)文件為普通文件,它也可以是其他的字符,不同的字符代表不同類型的文件。其后的一串字符表明了該文件的權(quán)限,其中:

1)r 表明該文件具有可讀權(quán)限,若該位置為 "-" ,則表明文件不可讀;2)w 表明該文件具有寫權(quán)限,若該位置為 "-" ,則表明文件不可寫;3)x 表明該文件具有可執(zhí)行權(quán)限,若該位置為 "-" ,則表明文件不具有可執(zhí)行權(quán)限;4)第一個(gè) rwx 表示該文件的所有者對(duì)該文件的權(quán)限;第二個(gè) rwx 表示該文件所屬組對(duì)該文件的權(quán)限;第三個(gè) rwx 表示其他用戶對(duì)該文件的權(quán)限。2. 權(quán)限所屬對(duì)象

文件所有者:生成文件或目錄的當(dāng)前人,權(quán)限最高,用u表示。文件所屬用戶組:系統(tǒng)管理員分配的同組一個(gè)或幾個(gè)人,用g表示。其他人對(duì)此文件的權(quán)限:除擁有者、用戶組以外的人,用o 表示。所有人:包括擁有者,所屬用戶組、其他用戶,用a表示

-rwxr(所有者) -xr(所在組) -x(其他人)
3.修改屬性chmod

chmod命令用來修改文件目錄的訪問權(quán)限,修改權(quán)限的前提條件是在修改權(quán)限時(shí)具有可操作權(quán)限。

(a)用字母表示權(quán)限Who(u、g、o、a)+cp(“=”設(shè)置權(quán)限“+”添加權(quán)限“-”刪除權(quán)限)+permission(“r”讀權(quán)限“w”寫權(quán)限“x”操作權(quán)限)例如:

chmod  g=wr  1.c;
chmod  u+w,g-w,o=wr 1.c

(b)用八進(jìn)制數(shù)字表示權(quán)限

r      w   x
0      0       0   無權(quán)限
1      1       1   有權(quán)限
R:4,w;2,x:1

例如 :

Chmod 777 build   將build的權(quán)限成所有人rwx

注意:在Ubuntu中建立的文件默認(rèn)權(quán)限是664

4. Chown改變文件的所屬者和所屬組

chown(英文全拼:change owner)命令用于設(shè)置文件所有者和文件關(guān)聯(lián)組的命令。

語法

chown [-cfhvR] [--h(huán)elp] [--version] user[:group] file...

參數(shù) :

user : 新的文件擁有者的使用者 ID
group : 新的文件擁有者的使用者組(group)
-c : 顯示更改的部分的信息
-f : 忽略錯(cuò)誤信息
-h(huán) :修復(fù)符號(hào)鏈接
-v : 顯示詳細(xì)的處理信息
-R : 處理指定目錄以及其子目錄下的所有文件
--h(huán)elp : 顯示輔助說明
--version : 顯示版本

實(shí)例:把 /var/run/httpd.pid 的所有者設(shè)置 root:

chown root /var/run/httpd.pid
5. chgrp改變文件或目錄所屬組

Linux chgrp(英文全拼:change group)命令用于變更文件或目錄的所屬群組。

與 chown 命令不同,chgrp 允許普通用戶改變文件所屬的組,只要該用戶是該組的一員。

語法

chgrp [-cfhRv][--h(huán)elp][--version][所屬群組][文件或目錄...] 或 chgrp [-cfhRv][--h(huán)elp][--reference=<參考文件或目錄>][--version][文件或目錄...]

參數(shù)說明:

-c或--changes 效果類似"-v"參數(shù),但僅回報(bào)更改的部分。
 -f或--quiet或--silent  不顯示錯(cuò)誤信息。
 -h(huán)或--no-dereference  只對(duì)符號(hào)連接的文件作修改,而不更動(dòng)其他任何相關(guān)文件。
 -R或--recursive  遞歸處理,將指定目錄下的所有文件及子目錄一并處理。
 -v或--verbose  顯示指令執(zhí)行過程。
 --h(huán)elp  在線幫助。
 --reference=<參考文件或目錄>  把指定文件或目錄的所屬群組全部設(shè)成和參考文件或目錄的所屬群組相同。
 --version  顯示版本信息。

Chown、chgroup使用頻率較低,了解即可。

6)find查找文件

Linux find 命令用來在指定目錄下查找文件。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名。

如果使用該命令時(shí),不設(shè)置任何參數(shù),則 find 命令將在當(dāng)前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進(jìn)行顯示。

我們有時(shí)候還要模糊查找某個(gè)文件,比如根據(jù)文件的后綴名,文件創(chuàng)建時(shí)間,文件大小等等。

語法:

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} ;

find 根據(jù)下列規(guī)則判斷 path 和 expression,在命令列上第一個(gè) - ( ) , ! 之前的部份為 path,之后的是 expression。

如果 path 是空字串則使用目前路徑,如果 expression 是空字串則使用 -print 為預(yù)設(shè) expression。

expression 中可使用的選項(xiàng)有二三十個(gè)之多,在此只介紹最常用的部份。

參數(shù)說明:


-name name, -iname name : 文件名稱符合 name 的文件。iname 會(huì)忽略大小寫
-user 按照用戶(文件的屬主)
-size n : 文件大小 是 n 單位,b 代表 512 位元組的區(qū)塊,c 表示字元數(shù),k 表示 kilo bytes,w 是二個(gè)位元組。
-mtime 按照最后一次修改時(shí)間
-atime 按照最后一次訪問時(shí)間
-perm :按照文件的權(quán)限
-type typen : 查找文件類型為typen的文件
c: 字符設(shè)備
d: 目錄
c: 字型裝置文件
b: 區(qū)塊裝置文件
p: 具名貯列
f: 一般文件
l: 符號(hào)連結(jié)
s: socket

注意find 的使用條件所查找的路徑必須具有讀權(quán)限。查找選項(xiàng)通過文件屬性來查找。

例如:實(shí)例

1.將當(dāng)前目錄及其子目錄下所有文件后綴為 .c 的文件列出來:# find . -name "*.c"
2.將目前目錄及其下子目錄中所有一般文件列出# find . -type f
3.將當(dāng)前目錄及其子目錄下所有最近 20 天內(nèi)更新過的文件列出:# find . -ctime -20
4.查找 /var/log 目錄中更改時(shí)間在 7 日以前的普通文件,并在刪除之前詢問它們:# find /var/log -type f -mtime +7 -ok rm {} ;
5.查找當(dāng)前目錄中文件屬主具有讀、寫權(quán)限,并且文件所屬組的用戶和其他用戶具有讀權(quán)限的文件:# find . -type f -perm 644 -exec ls -l {} ;
6.查找系統(tǒng)中所有文件長度為 0 的普通文件,并列出它們的完整路徑:# find / -type f -size 0 -exec ls -l {} ;
whereiswhereis命令用于查找文件。該指令會(huì)在特定目錄中查找符合條件的文件。這些文件應(yīng)屬于原始代碼、二進(jìn)制文件,或是幫助文件。該指令只能用于查找二進(jìn)制文件、源代碼文件和man手冊頁,一般文件的定位需使用locate命令。

語法

whereis [-bfmsu][-B <目錄>...][-M <目錄>...][-S <目錄>...][文件...]

參數(shù):

-b  只查找二進(jìn)制文件。
-B<目錄>  只在設(shè)置的目錄下查找二進(jìn)制文件。
-f  不顯示文件名前的路徑名稱。
-m  只查找說明文件。
-M<目錄>  只在設(shè)置的目錄下查找說明文件。
-s  只查找原始代碼文件。
-S<目錄>  只在設(shè)置的目錄下查找原始代碼文件。
-u  查找不包含指定類型的文件。

實(shí)例:

1.使用指令"whereis"查看指令"bash"的位置,輸入如下命令:peng@ubuntu:~/test$ whereis bash
bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz
2.查找標(biāo)準(zhǔn)庫頭文件stdio.h位置peng@ubuntu:~/test$ whereis stdio.h
stdio: /usr/include/stdio.h /usr/share/man/man3/stdio.3.gz
7)grep過濾和統(tǒng)計(jì)

功能:查出包含某些字符串的結(jié)果,對(duì)文件或輸出結(jié)果進(jìn)行過濾,對(duì)于大小寫有一定 要求。

<上一頁  1  2  3  下一頁>  
聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請輸入評(píng)論內(nèi)容...

請輸入評(píng)論/評(píng)論長度6~500個(gè)字

您提交的評(píng)論過于頻繁,請輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評(píng)論

暫無評(píng)論

    掃碼關(guān)注公眾號(hào)
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號(hào)