Linux基本指令
@[toc]
零.前言
無論是在學校學習中還是在企業(yè)開發(fā)中,linux系統(tǒng)都成為了必備的開發(fā)工具,不同于windows,linux是一個完全依靠指令來進行操作的,本文列出了26條linux常用指令(涵蓋目錄,文件的創(chuàng)建,刪除和書寫,查找等等內(nèi)容)學習后可以更加方便地對linux系統(tǒng)進行使用和操作。
1.ls指令
(1)用法
ls 選項 目錄或者文件
(2)功能
對于目錄,該命令列出該目錄下的所有子目錄與文件。
對于文件,將列出文件名記憶其他信息。
(3)常用選項
-a 列出目錄下所有文件,包括以 . 開頭的隱含文件。
-d 將目錄像文件一樣顯示,而不是顯示其下的文件。如:ls -d指定目錄。
-i 輸出文件的i節(jié)點的索引信息。如ls -ai指定文件。
-l 列出文件詳細信息。
-k 以k字節(jié)的形式表示文件大小,ls -alk 指定文件。
-n 用數(shù)字的UID,GID代替名稱。(介紹UID,GID)
-F 在每個文件名后附上一個字符以說明該文件的類型,"*“表示可執(zhí)行的普通文件;”/“表示目錄;”@“表示符號鏈接;”|“表示FIFOs;”="表示套接字(sockets)。(目錄類型識別)
-r 對目錄反向排序。
-t 以時間排序。
-s 在l文件名后輸出該文件的大小。(大小排序,如何找到目錄下最大的文件)
-R 列出所有子目錄下的文件。(遞歸)
-1 一行只輸出一個文件。
2.which指令
(1)用法
which 命令名稱
(2)功能
尋找特定命令所在的系統(tǒng)的路徑(指令本質(zhì)也是計算機上面的一些程序)(文件)
(3)舉例
比如我們可以通過which指令來詢問"ls"指令在什么位置。
這里表示的就是ls指令在 /user/bin/ls這個位置。
當然我們也可以通過which which來詢問which本身在什么位置。
注意上面的一行,alias表示的是對ls的定義,有點類似取別名的意思,其實我們每次在使用ls的時候,使用的是后面那些東西:ls --color=auto
通過這個例子我們就可以了解alias的格式,從而為其他的命令也可以起一個別名。比如我們對后退符起一個別名:
注意這里我們就是在對cd …去一個別名back之后,再進行的退出操作,我們可以看到從lhb路徑返回了上級路徑home
起別名之后只有該次登陸時有效,再次登陸時,別名會自動失效
3.pwd 指令
功能
顯示用戶當前所在的目錄。
4.cd 指令
(1)用法
cd 目錄名
(2)功能
改變當前目錄,將當前目錄改變到指定的目錄下。
(3)目錄形式
什么是路徑
幾乎所有的操作系統(tǒng)都使用多叉樹的形式來管理文件,每一個多叉樹的非葉子節(jié)點就是一個子目錄。我們采用路徑的形式來定位文件,這是因為這種多叉樹的結構具有唯一性(每一個節(jié)點都有一個父節(jié)點)。
絕對路徑與相對路徑
定位文件的路徑通常分為兩個部分:即我在哪里,我是誰。即路徑中必須回答這兩個問題。
通常我們直接使用"/"代表從根目錄開始的目錄路徑,這個叫絕對路徑。比如:/home/lhb/test.c
相對路徑顧名思義,填寫目錄時候以填寫目錄文件為參考,使用“…/”或"./“指向上一級 或 使用”…/…/“指向上上一級叫相對路徑。相對路徑是與當前路徑有關的。
提到相對路徑我們還需要知道兩個概念:”.“與”…"
".“表示的是當前路徑,”…"表示的是上一級路徑。比如我們現(xiàn)在在lhb路徑中那么test.c文件的文件路徑就是./test,表示的是我們要訪問的是lhb中的test.c。
注意:使用相對路徑時,我們需要知道當前路徑是什么
(4)舉例
cd …:返回上級目錄。
cd 絕對路徑:
cd 相對路徑:
cd ~:進入用戶家目。
cd -:返回最近訪問目錄。
第四條中進入家目錄,當用戶為普通用戶時,進入/home/用戶名,當是root用戶時進入/root路徑中。
5.touch 指令
(1)用法
touch 選項 文件
(2)功能
1.更改創(chuàng)建文檔或者目錄的時間。
2.新建一個不存在的文件。
(3)常用選項
-a 只更改存取時間。
-c 不建立任何文檔。
-d 使用指定的時間日期而不是現(xiàn)在的時間。
-f 此參數(shù)將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題。
-m 只更改變動時間。
-r 把指定文檔或目錄的日期時間,統(tǒng)統(tǒng)設成和參考文檔或目錄的日期時間相同。
-t 使用指定的日期時間,而不是現(xiàn)在的時間。
(4)舉例
注意這里,重新touch test1之后,test1文件的時間發(fā)生了改變。(注意是所有的時間都會被改變),如果想改變特定時間,需要對其添加選項。我們使用stat 指令來顯示所有時間。
6.mkdir 指令
(1)用法
mkdir 選項 目錄名
(2)功能
在當前目錄下創(chuàng)建一個目錄。
(3)常用選項
-p 遞歸地建立多個目錄。
即大目錄下有小目錄,小目錄下有小小目錄。
(4)舉例
直接創(chuàng)建p1/p2/p3/p4是不被允許的,需要假如-p選項。
7.rmdir與rm指令
(1)用法
rm 選項 目錄
rmdir 選項 目錄
(2)功能
rmdir是與mkdir相對應的指令,rmdir是刪除目錄的命令。
rm是可以同時刪除文件和目錄的指令。
我們經(jīng)常使用rm指令
(3)常用選項
-f 強制刪除。
-i 刪除前逐一詢問確認。
-r 刪除目錄下所有文件(對應mkdir -p)
這里就可以清楚rm -rf為什么叫做刪庫跑路了,這條代碼的含義是將某一個文件下的所有文件進行強制刪除。
8.man指令
(1)手冊的安裝
需要在root身份下
(2)用法
man 選項 命令
(3)功能
通過詢問man這個男人,我們可以了解linux指令的用法。
(4)常用選項
-k 根據(jù)關鍵詞搜索聯(lián)機幫助。
num 只在第num個章節(jié)找。
-a 將所有章節(jié)的都顯示出來,比如man printf它缺省從第一章開始搜索,知道就停止,用a選項,當按下q退出,它會繼續(xù)往后面搜索,直到所有章節(jié)都搜索完畢。
(5)手冊數(shù)字含義
手冊一共分為八章:
1是普通的命令。
2是系統(tǒng)調(diào)用,如open,write之類的(通過這個,至少可以很方便的查到調(diào)用這個函數(shù),需要加什么頭文件)。
3是庫函數(shù),如printf,fread4是特殊文件,也就是/dev下的各種設備文件。
5是指文件的格式,比如passwd,就會說明這個文件中各個字段的含義。
6是給游戲留的,各個游戲自己定義。
7是附件還有一些變量,比如environ這種全局變量在這里有說明。
8是系統(tǒng)管理用的命令,這些命令只能由root使用,如ifconfig
9.cp
(1)用法
cp 選項 源文件或目錄 目標文件或目錄
(2)功能
復制文件或目錄。
在沒有指定路徑的情況下,默認拷貝到當前路徑。不指定文件名,則文件名不變。
(3)常用選項
-f 強行復制文件或目錄,如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經(jīng)存在的目錄。
-i 覆蓋文件之前詢問用戶。
-r 遞歸處理,將指定目錄下的文件與子目錄一并處理。若源文件和目錄的形態(tài)不屬于目錄或符號鏈接,則一律視為普通文件處理。
-R 將指定目錄下的文件及子目錄一并處理。
(4)舉例
這里就是將myfile這個目錄復制到myfile2這個目錄之下。
10.mv命令
(1)用法
mv 選項 源文件或目錄 目標文件或目錄
(2)功能
可以用來移動文件或者給文件改名。
1.視mv命令中第二個參數(shù)的類型不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中。
2.當?shù)诙€參數(shù)類型是文件時,mv命令完成文件重命名,此時,源文件只能由一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標文件名。
3.當?shù)诙€參數(shù)是已存在的目錄名時,源文件或目錄參數(shù)可以有多個,mv命令將各參數(shù)指定的源文件均移至目標目錄中。
(3)常用選項
-f 如果目標文件已經(jīng)存在,不會訪問而直接覆蓋。
-i 若目標文件已經(jīng)存在,會詢問是否覆蓋。
(4)舉例
使用mv命令將原本在lhb這個文件夾中的myfile.txt轉移到myfile這個文件夾中。
這里將test.c重命名為test1.c
11.cat
(1)用法
cat 選項 文件
(2)功能
查看目標文件的內(nèi)容。
這里用一段命令行腳本來進行舉例:
count=0; while [ $count -le 1000 ]; do echo “hello ${count}”; let count++; done > file.txt
這段代碼表示的意思是打印1000個hello到file.txt這個文件中。
(3)常用選項
-b 對非空輸出行編號。
-n 對輸出的所有行編號。
-s 不輸出多行空行。
(4)舉例
我們可以根據(jù)剛才創(chuàng)建的file.txt來進行舉例。
我們可以直接cat file.txt進行打開文件:
也可以通過-n選項來打印出行編號:
我們還引入了tac來進行逆序輸出文本與cat正好相反:
>
12.more指令
(1)用法
more 選項 文件
(2)功能
按要求查看目錄文件內(nèi)容
(3)常用選項
-n 對輸出的所有行編號。
-數(shù)字 顯示數(shù)字個行數(shù)。
q 退出more。
(4)舉例
我們每次只想看十行內(nèi)容:
此時只顯示10行內(nèi)容,再按一次回車會再向下顯示一行。
13.less指令
(1)用法
less 選型 文件
(2)功能
less與more相似,但使用less可以任意瀏覽文件,而more僅能向前移動,卻不能向后移動,而且less在查看之前不會加載整個文件。
查看文件推薦使用less進行查看。
(3)常用選項
-i 忽略搜索時的大小寫。
-N 顯示每行的行號。
/字符串:向下搜索"字符串"的功能。
?字符串:向上搜索"字符串"的功能。
n:重負前一個搜索(與/或?有關)
N:反向重復前一個搜索(與/或?有關)
q:退出
14.head 指令
(1)用法
head 選項 文件
(2)功能
用來顯示檔案的開頭至標準輸出中,默認head命令打印其對應文件的開頭10行。
(3)選項
-n(行數(shù))顯示的行數(shù)。
(4)舉例
可以看到默認打印了10行,而加上-3之后只打印了3行。
15.tail指令
(1)用法
tail 選項 文件
(2)功能
用于顯示指定文件末尾內(nèi)容,不指定文件時,作為輸入信息進行處理,常用查看日志文件。
(3)常用選項
-f 循環(huán)讀取
-n 顯示行數(shù)
(4)舉例
(5)管道
通過了解head指令以及tail指令我們可以很容易找到某文本首尾兩處的數(shù)據(jù),但如果希望找到中間的數(shù)據(jù)呢,這就需要用到管道"|"
管道的作用是: 將前一個處理結果通過管道交給后面的進行處理。
比如我們要找到100到120行的信息,就可以先通過head找到前120個數(shù)據(jù),然后再根據(jù)tail尋找后二十個數(shù)據(jù)。
16.echo 指令
(1)用法
echo “字符串”
echo “字符串” > 文件
(2)作用
將輸出字符串顯示到標準輸出,或者進行輸出重定向(本來應該顯示到顯示器的內(nèi)容重定向寫入目標文件中)
注意,當要寫入的文件不存在的時候,會自動創(chuàng)建一個該名稱的文件。
(3)舉例
1.打印到標準輸出
2.輸出重定向
這里使用>來進行寫入操作。
3.解決覆蓋問題
我們發(fā)現(xiàn),再向f.txt寫入內(nèi)容的時候,會對原來的內(nèi)容進行覆蓋處理,這就需要使用>>追加重定向來避免被覆蓋:
17.時間相關的指令
(1)date顯示
date +%Y 表示年
date +%m表示月
date +%d表示日
我們還可以自定義格式
比如date +%Y-%m-%d:
(2)標記表
%H:小時
%M:分鐘
%S:秒
%X:相當于%H:%M:%S
%d:日
%m:月份
%Y:年份
%F:相當于%Y-%m-%d
(3)在設定時間方面
-s:設置當前時間,只有root權限才能設置,其他只能查看。
-s 20080523:設置成20080523,這樣會把具體時間設置成空00:00:00。
-s 01:01:01:設置具體時間,不會對日期做更改。
-s “01:01:01 2008-05-23”:這樣可以設置全部時間。
-s “01:01:01 20080523”:這樣可以設置全部時間。
-s “2008-05-23 01:01:01”:這樣可以設置全部時間。
-s “20080523 01:01:01”:這樣可以設置全部時間。
(4)時間戳
date +%s 表示時間戳(1970年1月1日從零點開始到現(xiàn)在的秒數(shù))
我們也可以通過如下命令來顯示時間戳。
18.cal指令
(1)用法
cal 選項
(2)功能
用于查看日歷等時間信息。
(3)常用選項
-3 顯示系統(tǒng)前一個月,當前月,下一個月的月歷。
-j 顯示在當年中的第幾天(一年日期按天算,從1月1號算起,默認顯示當前月在一年中的天數(shù))。
-y 顯示當前年份的日歷。
(4)舉例
19.find指令
(1)用法
find pathname -options
(2)功能
用于在文件樹中查找文件,并做相應處理。
(3)常用選項
-name 按照文件名查找文件。
(4)舉例
20.grep指令
(1)用法
grep 選項 搜索字符串 文件
(2)功能
在文件中搜索字符串,將找到的行打印出來。
(3)常用選項
-i:忽略大小寫的不同,所以大小寫視為相同。
-n:輸出行號。
-v:反向選擇,顯示沒有搜索字符串內(nèi)容的一行。
(4)舉例
可以將含有99的打印出來。
grep支持正則表達式
21.zip/unzip指令
(1)用法
zip 文件、目錄
unzip 壓縮文件、目錄
(2)功能
zip將目錄和文件壓縮到zip格式。
unzip對文件進行解壓。
只輸入zip會默認顯示壓縮版本信息。
(3)常用選項
-r 遞歸處理,將指定目錄下的所有文件和子目錄一并處理。
-d 解壓到指定路徑。
(4)舉例
以上展示了一個成功壓縮和解壓的過程。
注意普通文件是可以直接壓縮的,但是要壓縮一個目錄直接用zip是不行的。
我們需要使用-r選項來進行遞歸壓縮。
只有加入了-r選項才能將目錄中的內(nèi)容全部進行壓縮,否則只會壓縮一個目錄。
22.tar 指令
(1)用法
tar 文件與目錄。
(2)作用
打包/解包,不打開它,直接看內(nèi)容。
(3)選項
-c:建立一個壓縮文件的參數(shù)指令。
-x:解開一個壓縮文件的參數(shù)指令。
-t:查看tarfile里面的文件。
-z:是否同時具有gzip的屬性?是否需要用gzip壓縮?
-j:是否具有bzip的屬性?是否使用bzip壓縮?
-v:壓縮過程中顯示文件!這個常用,但不建議用在背景執(zhí)行過程!
-f:使用檔名,請留意,在f之后要立即接檔名哦,不要再加參數(shù)。
-C:解壓到指定目錄。
(4)舉例
以上展示了將file.txt文件打包,并解包到test中的過程。
23.bc命令
(1)作用
bc命令可以進行基本運算。
(2)舉例
我們可以直接使用bc命令來運算,也可以通過管道直接計算出計算結果。
24.uname 指令
(1)用法
uname 選項
(2)作用
用來獲取電腦和操作系統(tǒng)相關信息。
uname可以顯示linux主機所用的操作系統(tǒng)版本,硬件的名稱等基本信息。
(3)常見選項
-a:輸出所有信息,依次為內(nèi)核名稱,主機名,內(nèi)核版本號,內(nèi)核版本,硬件名,處理器類型,硬件平臺類型,操作系統(tǒng)名稱。
(4)舉例
25.熱鍵
tab:命令補全,檔案補齊。
ctrl+c:讓當前程序停掉。
ctrl+d:鍵盤輸入結束(End of File,EOF,End OfInput)的意思,也可以用來取代exit
26.關機
(1)用法
shutdown 選項
(2)常用選項
-h:在系統(tǒng)的服務停掉后,立即關機。
-r:在系統(tǒng)的服務停掉后就重新啟動。
-t sec:-t后面加秒數(shù),過幾秒后關機的意思。
(3)注意
自己買的服務器永遠不要關機。
27.擴展命令
◆ 安裝和登錄命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
◆ 文件處理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
◆ 系統(tǒng)管理相關命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
◆ 網(wǎng)絡操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
◆ 系統(tǒng)安全相關命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
Less
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。