linux常用的基本指令:
0. 背景知識:
計算機:接受用戶的指令與數據,經過中央處理器的數據與邏輯單
元運算處理後,以產生或存儲成有用的信息。
廣義上講:我們周邊有好多寬泛概念上的計算機,如加減乘除計算
機,手機, GPS, ATM等等。
計算機五大單元:
輸入單元:包括鍵盤,鼠標,掃描儀,手寫板等。
中央處理器( CPU):含有算術邏輯,控制,記憶等單元。
輸出單元:顯示器,打印機。
注意:
這裡存儲器指內存
CPU讀取的數據都是從內存中來的, CPU處理完成的數據,必須要先
寫回內存,,最後數據才從內存傳輸到輸出單元(忽略緩存)。
shell:設置環境變量,對於bash來說可以通過變量名來訪問相應的環境變量;
linux中常見的環境變量有:
PATH:指定命令的搜索路徑;
HOME:指定用戶的主工作目錄;
HISTSIZE:指定歷史命令記錄的條數;
LOGNAME:指當前用戶的登錄名。
HOSTNAME:指主機的名稱,許多應用程序如果要用到主機名的
話,通常是從這個環境變量中來取得的。
SHELL:指當前用戶用的是哪種 Shell。
LANG/LANGUGE:和語言相關的環境變量,使用多種語言的用戶
可以修改此環境變量。
MAIL:指當前用的郵件存放目錄。
PS1:命令基本提示符,對於 root用戶是# ,對於普通用戶是 $。
PS2:附屬提示符,默認是 “>”。
Linux也提供了修改和查看環境變量的命令!下面通過幾個實例來
說明:
1.echo 顯示某個環境變量值 echo $PATH
2.export 設置一個新的環境變量 export
HELLO="hello" ( 可以無引號 )
3.env 顯示所有環境變量
4.set 顯示本地定義的shell變量
5.unset 清除環境變量 unset HELLO
6.readonly 設置只讀環境變量 readonly HELLO
linux的文件類型:
1.普通文本:標志是第一個字符為 ‘-’;
2.目錄(directory):第一個字符為'd';
3.連接文件(link):第一個字符為‘l‘;
4.設備和設備文件:分為塊設備文件,第一個字符為(b)和字符設備文件,第一個字符為(c);
5.套接字(sockets):第一個字符為’s‘;
6,管道(FIFO,pipe)第一個字符為’p‘;
linux權限管理:1、文件訪問者的分類 (人)
a)文件和文件目錄的所有者: u---User(中國平民 法律問題)
b)文件和文件目錄的所有者所在的組的用戶: g---Group(不多
說)
c)其它用戶: o---Others;
基本權限:讀(4/r),寫(2/w),執行(1/x);
訪問權限的設置方法:
chomd:設置文件的訪問權限;
① 用戶表示符 +/-=權限字符
+:向權限范圍增加權限代號所表示的權限 //chmod u+w filename
-:向權限范圍取消權限代號所表示的權限 //chmod g+x filename
=:向權限范圍賦予權限代號所表示的權限 o
用戶符號:
u:擁有者
g:擁有者同組用戶
o :其他用戶
a :所有用戶
chown:修改文件的擁有者
例如:改變擁有者和群組;
chown root:root filename(:後面無空格) || chown root: filename(: 後面有一個空格)
chown :root filename (:前面有空格) //改變群組,而不改變擁有者
chgrp:修改文件或目錄的所屬組;
例如:chgrp root filename相當於chown :root filename (:前面有空格)
總結一下chown與chgrp的區別:
分析結果如上:chown既可以改變擁有者也可以改變所屬組,而chgrp只能改變所屬組;
目錄的可執行權限是表示你可否在目錄下執行命令。如果目錄沒有 -x 權限,則無法對目錄執行任何命令,甚至無法 cd 進入目錄。即使目錄仍然有 -r 讀權限(這個地方很容易犯錯,認為有讀權限就可以進入目錄讀取目錄下的文件)。而如果目錄具有 -x 權限,但沒有 -r權限,則用戶可以執行命令,可以 cd 進入目錄。但由於沒有目錄的讀權限,所以在目錄下,即使可以執行 ls 命令,但仍然沒有權限讀出目錄下的文檔。
ls 指令:-a 列出目錄下的所有文件,包括以 . 開頭的隱含文件。
-b 把文件名中不可出的字符用反斜槓加字符編號 (就象在 C語言裡一樣 )的形式列出。
-c 輸出文件的 i 節點的修改時間,並以此排序。
-d 將目錄象文件一樣顯示,而不是顯示其下的文件。 如:ls –d 指定目錄
-k 以 k 字節的形式表示文件的大小。 ls –alk 指定文件
-l 列出文件的詳細信息。
-m 橫向輸出文件名,並以 “,” 作分格符。ls –m
-n 用數字的 UID,GID 代替名稱。 (介紹 UID, GID )
-o 顯示文件的除組信息外的詳細信息。
-F 在每個文件名後附上一個字符以說明該文件的類型, “*”表示可
執行的普通文件; “/”表示目錄;“@”表示符號鏈接; “|”表示
FIFOs;“=” 表示套接字 (sockets)。(目錄類型識別)
-q 用? 代替不可輸出的字符。
-r 對目錄反向排序。
-s 在文件後輸出該文件的大小
-t 以時間排序
cd命令:適用對象:所有使用者;
命令格式:cd [dirname](cd 和目錄之間用空格隔開);
作用:切換當前目錄至dirname目錄;
cd ~:進入用戶目錄;
cd -:返回最近訪問目錄;
cd .. :返回上級目錄;
date顯示:date 指定時間格式:date +%Y_%m_%d, date +%Y:%m:%d
date 命令本身提供加減的運算
如得到昨天的的時間:date +%Y%m%d --date=“-1 day”對年月日都可進行加減運算;
時間戳:
時間 ->時間戳:date +%s
時間戳 ->時間: date +%Y:%m:%d -d @1425384141
Unix時間戳(英文為Unix epoch, Unix time, POSIX
time 或 Unix timestamp )是從1970年 1月1 日(UTC/GMT
的午夜)開始所經過的秒數,不考慮閏年。
cal 指令:
-1 顯示一個月的月歷
-3 顯示系統前一個月,當前月,下一個月的月歷
-s 顯示星期天為一個星期的第一天,默認的格式
-m 顯示星期一為一個星期的第一天
-j 顯示在當年中的第幾天(一年日期按天算,從 1月1 號算
起,默認顯示當前月在一年中的天數)
-y 顯示當前年份的日歷
touch 指令:linux的 touch命令不常用,一般在使用 make的時候可能會用
到,用來修改文件時間戳,或者新建一個不存在的文件。
1.命令格式:
touch [選項 ]... 文件 ...
2.命令參數:
-a 或 --time=atime或 --time=access或 --
time=use只更改存取時間。
-c 或 --no-create 不建立任何文檔。
-d 使用指定的日期時間,而非現在的時間。
-f 此參數將忽略不予處理,僅責解決 BSD版本 touch指
令的兼容性問題。
-m 或 --time=mtime或 --time=modify 只更改變動
時間。
-r 把指定文檔或目錄的日期時間,統統設成和參考文檔
或目錄的日期時間相同。
-t 使用指定的日期時間,而非現在的時間。
3.命令功能:
touch命令參數可更改文檔或目錄的日期時間,包括存取時
間和更改時間。
mkdir 指令:
linux mkdir 命令用來創建指定的名稱的目錄,要求創建目錄的用戶在當前目錄中具有寫權限,並且指定的目錄名不能是當前目錄中已有的目錄。
1.命令格式:
mkdir [選項 ] 目錄 ...
2.命令功能:
通過 mkdir 命令可以實現在指定位置創建以 DirName( 指定的文件名 ) 命名的文件夾或目錄。要創建文件夾或目錄的用戶必須對所創建的文件夾的父文件夾具有寫權限。並且,所創建的文件夾 ( 目錄) 不能與其父目錄 ( 即父文件夾 )中的文件名重名,即同一個目錄下不能有同名的 ( 區分大小寫 )。
命令參數:
-m, --mode= 模式,設定權限 <模式 > ( 類似 chmod) ,
而不是 rwxrwxrwx 減 umask
-p, --parents 可以是一個路徑名稱。此時若路徑中
的某些目錄尚不存在 , 加上此選項後 ,系統將自動建立好那些尚
不存在的目錄 , 即一次可以建立多個目錄 ;
-v, --verbose 每次創建新目錄都顯示信息
--help 顯示此幫助信息並退出
--version 輸出版本信息並退出
示例:
遞歸建立多個目錄: mkdir –p test/test1
創建權限為 777 的目錄: mkdir –m 777 test3
rmdir指令與rm指令:
rmdir指令與mkdir是相對應的,刪除的是空目錄
-p 當子目錄被刪除後如果父目錄也變成空目錄的話,就連帶父目錄一起刪除。
rm指令:
作用刪除文件或目錄;
-f 即使文件屬性為只讀 (即寫保護 ) ,亦直接刪除
-i 刪除前逐一詢問確認
-r 刪除目錄及其下所有文件
rmdir指令與rm指令的區別:
rmdir指令刪除的是空目錄,而rm指令能刪除文件或目錄,不管是不是為空,
cp指令:
復制文件或目錄;
cp file1 file2 將文件file1復制成文件file2;
cp -r dir dir1 講dir復制到dir1,如果dir1不存在就創建它;
cp file1 dir1 將文件file1復制到目錄dir1;
mv指令:視 mv命令中第二個參數類型的不同(是目標文件還是目錄), mv 命令將文件重命名或將其移至一個新的目錄中。當第二個參數類型是文件時, mv 命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標文件名。當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個, mv 命令將各參數指定的源文件均移至目標目錄中。在跨文件系統移動文件時, mv 先拷貝,再將原有文件刪除,而鏈至該文件的鏈接也將丟失。
mv file1 file2 如果file2存在就被file1覆蓋了;不存在就創建file2
basenam指令:
輸入basename “hello world”則輸出hello world;
dirname指令:dirname命令的作用是處理路徑,以獲取路徑的父目錄,而且dirname不會檢查路徑是否合法。
more指令:功能簡述: more 命令,功能類似 cat , cat 命令是整個文件的內容從上到下顯示在屏幕上。 more 會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵( space )就往下一頁顯示,按 b鍵就會往回( back )一頁顯示,而且還有搜尋字串的功能。 more 命令從前向後讀取文件,因此在啟動時就加載整個文件。[ 也是內容顯示命令 ]
命令參數:
+n 從笫n 行開始顯示
-n 定義屏幕大小為 n行
+/pattern 在每個檔案顯示前搜尋該字串( pattern ),然後從該字串
前兩行之後開始顯示
-c 從頂部清屏,然後顯示
-d 提示“Press space tocontinue , ’q’ to quit(按空格鍵繼續,按 q 鍵退
出) ” ,禁用響鈴功能
-l 忽略Ctrl+l (換頁)字符
-p 通過清除窗口而不是滾屏來文件進行換頁,與 -c 選項相似
-s 把連續的多個空行顯示為一行
-u 把文件內容中的下畫線去掉
cat > file – 將標准輸入添加到 file
more file – 查看 file 的內容
head file – 查看 file 的前 10 行
tail file – 查看 file 的後 10 行
tail -f file – 從後 10 行開始查看 file 的內容
Which 查看可執行文件的位置。// which file
whereis 查看文件的位置。 //whereis file
locate 配合據庫查看文件位置。
Find 實際搜尋硬盤查詢文件名稱。
find指令:atime 、mtime 、ctime的區別:
atime是指access time,即文件被讀取或者執行的時間;
ctime即change time文件狀態改變時間,指文件的i結點被修改的時間,如通過chmod修改文件屬性,ctime就會被修改。
mtime即modify time,指文件內容被修改的時間。
-mtime -n +n 按文件更改時間來查找文件,-n指n天以內,+n指n 天以前
-atime -n +n 按文件訪問時間來查找文件,-n指n天以內,+n指n 天以前
-ctime -n +n 按文件創建時間來查找文件,-n指n天以內,+n指n 天以前
-name 按照文件名查找文件。
-perm 按照文件權限來查找文件。
-prune 使用這一選項可以使 find命令不在當前指定的目錄中查
找,如果同時使用 -depth選項,那麼 -prune將被 find命令忽略。
-user 按照文件屬主來查找文件。
-group 按照文件所屬的組來查找文件。
-mtime -n +n 按照文件的更改時間來查找文件, - n表示文
件更改時間距現在 n天以內, + n表示文件更改時間距現在 n天以
前。 find命令還有 -atime和 -ctime 選項,但它們都和 -m time
選項相同。
-type 查找某一類型的文件;
例如:b - 塊設備文件;
d - 目錄 c- 字符設備文件 p- 管道文件 l- 連接文件 f - 普通文件
-size n:[c]查找文件長度為n塊的文件,帶有c時表示文件以字節計;
gzip指令:文件壓縮與解壓縮指令;
語法: gzip [選項] 壓縮(解壓縮)的文件名 //gzip file
-c 將輸出寫到標准輸出上,並保留原有文件。// gzip -c file
-d 將壓縮文件解壓。 //gzip -d file.gz
-l 對每個壓縮文件,顯示下列字段: //gzip -l file.gz
(1)壓縮文件的大小
(2)未壓縮文件的大小
(3)壓縮比
未壓縮文件的名字
-r 遞歸式地查找指定目錄並壓縮其中的所有文件或者是解壓縮。
-t 測試,檢查壓縮文件是否完整。
Linux 壓縮保留源文件的方法:
gzip –c filename > filename.gz
Linux 解壓縮保留源文件的方法:
gunzip –c filename.gz > filename
注: gzip不能壓縮整個目錄。可以使用 tar先打包,再壓縮;
zcat指令:zcat指令查看一個gzip格式的壓縮文件;
zcat file.gz>test.txt 查看一個壓縮文件的內容並把內容輸出的test.txt文件中;
zcat 命令也可以解壓縮數據,並把解壓後的文件內容顯示在屏幕上,但是 在運行 zcat 命令之後,壓縮文件的內容並不發生變化,仍然以壓縮方式存儲在硬盤上。
總結:
zcat file.gz>test.txt 查看一個壓縮文件的內容並把內容輸出的test.txt文件中;壓縮文件的內容並不發生變化,仍然以壓縮方式存儲在硬盤上。
gzip -d file.gz 講file.gz文件解壓縮生成file,但源文件file.gz消失,只顯示file;
gunzip -c file.gz>file 解壓縮後能保留源文件;
tar指令:-cvf 僅打包不壓縮;tar -cvf tmp etc.tar etc 將整個etc目錄下的文件全部打包成為tmp etc.tar;
-zcvf 打包後壓縮;tar -zcvf tmp etc.tar.gz etc 打包後以gzip壓縮;
pwd指令:查看當前目錄的工作路徑;
cat指令:cat file 一次顯示整個文件;
cat>filename 從鍵盤創建一個文件
cat file1 file2>file 將幾個文件合並為一個文件,源文件仍存在!
sort指令:將文本文件內容加以排序;
-b 忽略每行前面開始出的空格字符。
-c 檢查文件是否已經按照順序排序。 // sort -c file
-d 排序時,處理英文字母、數字及空格字符外,忽略其他的
字符。
-f 排序時,將小寫字母視為大寫字母。
-m 將幾個排序好的文件進行合並。
-M 將前面 3個字母依照月份的縮寫進行排序。
-n 依照數值的大小排序。
-o<輸出文件 > 將排序後的結果存入指定的文件。
-r 以相反的順序來排序。 sort -r file
uniq指令: -c 顯示輸出中,在每行行首顯示出現的次數; //uniq -c file1
-d 只顯示重復行;
-u 只顯示不重復的行;
kill指令:命令格式:kill 參數 進程號;
-l 如果不加信號的編號參數,則使用“-l"參數會列出全部的信號;
-p 指定kill命令只打印相關進程的進程號,而不發送任何信號;
diff指令:命令格式 :diff 參數 文件1/目錄1 文件2/目錄2;
重要的幾個熱鍵 [Tab],[ctrl]-c, [ctrl]-d
[Tab] 按鍵--- 具有『命令補全』不『檔案補齊』的功能
[Ctrl]-c 按鍵--- 讓當前的程序『停掉』
[Ctrl]-d 按鍵--- 通常代表著:『鍵盤輸入結束 (End Of File,EOF 戒 End OfInput) 』的意思;另外,他也可以用來取代 exit;
本文出自 “溪風” 博客,請務必保留此出處http://xiexiankun.blog.51cto.com/10785425/1775870