Linux下的基本指令
- 1. 基本操作指令
- 2. Linux權限的概念
- 3. Linux權限管理
- 3.1 檔案訪問者的分類(人)
- 3.2 檔案型別和訪問權限(事物屬性)
- 3.3 檔案權限值的表示方法
- 3.4 檔案訪問權限的相關設定方法
- 3.5 關于權限的總結
1. 基本操作指令
ls:
語法: ls [選項][目錄或檔案]
功能:對于目錄,該命令列出該目錄下的所有子目錄與檔案,對于檔案,將列出檔案名以及其他資訊,
常用選項:
- -a 列出目錄下的所有檔案,包括以 . 開頭的隱含檔案,
- -d 將目錄象檔案一樣顯示,而不是顯示其下的檔案, 如:ls –d 指定目錄
- -i 輸出檔案的 i 節點的索引資訊, 如 ls –ai 指定檔案 -k 以 k 位元組的形式表示檔案的大小,ls –alk 指定檔案
- -l 列出檔案的詳細資訊,
- -n 用數字的 UID,GID 代替名稱, (介紹 UID, GID)
- -F 在每個檔案名后附上一個字符以說明該檔案的型別,“*”表示可執行的普通檔案;“/”表示目錄;“@”表 示符號鏈接;“|”表示FIFOs;“=”表示套接字(sockets),(目錄型別識別)
- -r 對目錄反向排序,
- -t 以時間排序,
- -s 在l檔案名后輸出該檔案的大小,(大小排序,如何找到目錄下大的檔案)
- -R列出所有子目錄下的檔案,(遞回)
- -1 一行只輸出一個檔案,
提示: 類比于windows,ls在Linux下相當于顯示的功能

pwd:
語法: pwd
功能:
顯示用戶當前所在的目錄

cd:
Linux系統中,磁盤上的檔案和目錄被組成一棵目錄樹,每個節點都是目錄或檔案,

語法:cd 目錄名
功能:改變作業目錄,將當前作業目錄改變到指定的目錄下,
- cd … : 回傳上級目錄
- cd /home/litao/linux/ : 絕對路徑 (只有一條)
- cd …/day02/ : 相對路徑 (可以有很多條)
- cd ~:進入用戶家目 (回傳到最開始的主作業目錄下)
- cd -:回傳近訪問目錄 (相當于操作失誤,撤退一步)


提示:cd+ls相當于windows下滑鼠的雙擊+顯示屏的顯示功能
touch:
語法:touch [選項]… 檔案…
功能:touch命令引數可更改檔案或目錄的日期時間,包括存取時間和更改時間,或者新建一個不存在的檔案,
常用選項:
- -a 或–time=atime或–time=access或–time=use只更改存取時間,
- -c 或–no-create 不建立任何檔案,
- -d 使用指定的日期時間,而非現在的時間,
- -f 此引數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題,
- -m 或–time=mtime或–time=modify只更改變動時間,
- -r 把指定檔案或目錄的日期時間,統統設成和參考檔案或目錄的日期時間相同,
- -t 使用指定的日期時間,而非現在的時間,
mkdir:
語法:mkdir [選項] dirname…
功能:在當前目錄下創建一個名為 “dirname”的目錄
常用選項:
- -p, --parents 可以是一個路徑名稱,此時若路徑中的某些目錄尚不存在,加上此選項后,系統將自動建立 好那些尚不存在的目錄,即一次可以建立多個目錄;

rmdir && rm:
rmdir是一個與mkdir相對應的命令,mkdir是建立目錄,而rmdir是洗掉命令,
語法:rmdir [-p][dirName] 適用物件:具有當前目錄操作權限的所有使用者
功能:洗掉空目錄
常用選項:
-p當子目錄被洗掉后如果父目錄也變成空目錄的話,就連帶父目錄一起洗掉(把目錄想成二叉樹,當你需要洗掉的時候需要遞回式的從從葉子結點處往上去洗掉)
rm命令可以同時洗掉檔案或目錄 (很常用,因為它包含了rmdir的功能)
語法:rm [-f-i-r-v][dirName/dir] 適用物件:所有使用者
功能:洗掉檔案或目錄
常用選項:
- -f 即使檔案屬性為只讀(即寫保護),亦直接洗掉
- -i 洗掉前逐一詢問確認
- -r 洗掉目錄及其下所有檔案
man:
Linux的命令有很多引數,我們不可能全記住,我們可以通過查看聯機手冊獲取幫助,訪問Linux手冊頁的命令是 man
語法: man [選項] 命令
常用選項
- -k 根據關鍵字搜索聯機幫助 num 只在第num章節找
- -a 將所有章節的都顯示出來,比如 man printf 它預設從第一章開始搜索,知道就停止,用a選項,當按 下q退出,他會繼續往后面搜索,直到所有章節都搜索完畢,
cp:
語法:cp [選項] 源檔案或目錄 目標檔案或目錄
功能: 復制檔案或目錄 說明: cp指令用于復制檔案或目錄,如同時指定兩個以上的檔案或目錄,且后的目的地是一個已經存在的目錄, 則它會把前面指定的所有檔案或目錄復制到此目錄中,若同時指定多個檔案或目錄,而后的目的地并非一個已存 在的目錄,則會出現錯誤資訊 (相當于拷貝的功能)
常用選項:
- -f 或 --force 強行復制檔案或目錄, 不論目的檔案或目錄是否已經存在
- -i 或 --interactive 覆寫檔案之前先詢問用戶
- -r遞回處理,將指定目錄下的檔案與子目錄一并處理,若源檔案或目錄的形態,不屬于目錄或符號鏈接,則一律視為普通檔案處理
- -R 或 --recursive遞回處理,將指定目錄下的檔案及子目錄一并處理
mv:
mv命令是move的縮寫,可以用來移動檔案或者將檔案改名(move (rename) ?les),是Linux系統下常用的命 令,經常用來備份檔案或者目錄,
語法: mv [選項] 源檔案或目錄 目標檔案或目錄
功能:
-
視mv命令中第二個引數型別的不同(是目標檔案還是目標目錄),mv命令將檔案重命名或將其移至一個新的 目錄中,
-
當第二個引數型別是檔案時,mv命令完成檔案重命名,此時,源檔案只能有一個(也可以是源目錄名),它 將所給的源檔案或目錄重命名為給定的目標檔案名,
-
當第二個引數是已存在的目錄名稱時,源檔案或目錄引數可以有多個,mv命令將各引數指定的源檔案均移至 目標目錄中, (①重命名②剪切的功能)
常用選項:
- -f :force 強制的意思,如果目標檔案已經存在,不會詢問而直接覆寫
- -i :若目標檔案 (destination) 已經存在時,就會詢問是否覆寫!
cat:
語法:cat [選項][檔案]
功能: 查看目標檔案的內容
常用選項:
- -b 對非空輸出行編號
- -n 對輸出的所有行編號
- -s 不輸出多行空行

more && less:
語法:more [選項][檔案]
功能:more命令,功能類似 cat
常用選項:
- -n 對輸出的所有行編號
- -q 退出more

語法: less [引數] 檔案
功能: less與more類似,但使用less可以隨意瀏覽檔案,而more僅能向前移動,卻不能向后移動,而且less在查看之前 不會加載整個檔案,
選項:
- -i 忽略搜索時的大小寫
- -n 顯示每行的行號
- -/字串:向下搜索“字串”的功能
- -?字串:向上搜索“字串”的功能
- -n:重復前一個搜索(與 / 或 ? 有關)
- -N:反向重復前一個搜索(與 / 或 ? 有關)
- -q:quit
① less 工具也是對檔案或其它輸出進行分頁顯示的工具,應該說是linux正統查看檔案內容的工具,功能極 其強大,
② less 的用法比起 more 更加的有彈性,在 more 的時候,我們并沒有辦法向前面翻, 只能往后面看
③ 但若使用了 less 時,就可以使用 [pageup][pagedown] 等按鍵的功能來往前往后翻看檔案,更容易用 來查看一個檔案的內容!
④ 除此之外,在 less 里頭可以擁有更多的搜索功能,不止可以向下搜,也可以向上搜,

head && tail:
head 與 tail 就像它的名字一樣的淺顯易懂,它是用來顯示開頭或結尾某個數量的文字區塊,head 用來顯示檔案的 開頭至標準輸出中,而 tail 想當然爾就是看檔案的結尾,
語法: head [引數]… [檔案]
功能: head 用來顯示檔案的開頭至標準輸出中,默認head命令列印其相應檔案的開頭10行,
選項:
- -n<行數> 顯示的行數
tail 命令從指定點開始將檔案寫到標準輸出.使用tail命令的-f選項可以方便的查閱正在改變的日志檔案,tail f ?lename會把?lename里尾部的內容顯示在螢屏上,并且不但重繪,使你看到新的檔案內容.
語法: tail[必要引數][選擇引數][檔案]
功能: 用于顯示指定檔案末尾內容,不指定檔案時,作為輸入資訊進行處理,常用查看日志檔案,
選項:
- -f 回圈讀取 -
- n<行數> 顯示行數
舉例:(簡單講解重定向和管道)
有一個檔案共有100行內容,請取出第50行內容
seq 1 100 > test # 生成1到100的序列裝入test
方法1 head -n50 test > tmp #將前50行裝入臨時檔案tmp tail -n1 tmp #得到中間行 (還有一個是“>>”追加的意思,可以在檔案后面繼續補充,然而“>”在使用的時候會把檔案原有的內容都干掉,然后放上新的內容)
方法2 head> -n50 test | tail -n1(這里的‘|’代表著管道的意思,也就是把前面的運算式算出來的結果給后面的運算式使用)

時間相關指令:
date顯示:
date 指定格式顯示時間: date +%Y:%m:%d
date用法:date [OPTION]… [+FORMAT]
1.在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加號后接數個標記,其中常用的標記串列如下
- %H : 小時(00…23)
- %M : 分鐘(00…59)
- %S : 秒(00…61)
- %X : 相當于 %H:%M:%S
- %d : 日 (01…31)
- %m : 月份 (01…12)
- %Y : 完整年份 (0000…9999)
- %F : 相當于 %Y-%m-%d

2.在設定時間方面
- date -s //設定當前時間,只有root權限才能設定,其他只能查看,
- date -s 20080523 //設定成20080523,這樣會把具體時間設定成空00:00:00
- date -s 01:01:01 //設定具體時間,不會對日期做更改 date -s “01:01:01 2008-05-23″ //這樣可以設定全部時間
- date -s “01:01:01 20080523″ //這樣可以設定全部時間
- date -s “2008-05-23 01:01:01″//這樣可以設定全部時間
- date -s “20080523 01:01:01″ //這樣可以設定全部時間
3.時間戳
時間->時間戳:date +%s
時間戳->時間:date -d@1508749502
Unix時間戳(英文為Unix epoch, Unix time, POSIX time 或 Unixtimestamp)是從1970年1月1日(UTC/GMT的 午夜)開始所經過的秒數,不考慮閏秒,

(從1970年08:00開始計算,由于時間的每一秒都在改變,所以時間戳的每一秒數值也在發生這改變,)
find和which(重要):
Linux下?nd命令在目錄結構中搜索檔案,并執行指定的操作,
Linux下?nd命令提供了相當多的查找條件,功能很強大,由于?nd具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來了解一下,
即使系統中含有網路檔案系統(NFS),?nd命令在該檔案系統中同樣有效,只你具有相應的權限,
在運行一個非常消耗資源的?nd命令時,很多人都傾向于把它放在后臺執行,因為遍歷一個大的檔案系統可能會花費很長的時間(這里是指30G位元組以上的檔案系統),
語法: ?nd pathname -options
功能: 用于在檔案樹種查找檔案,并作出相應的處理(可能訪問磁盤)
常用選項:
- -name 按照檔案名查找檔案
(還可以根據size和type來進行查找)

which
which ls 可以查看當前ls指令存放在那個目錄下
grep:
語法: grep [選項] 搜尋字串 檔案
功能: 在檔案中搜索字串,將找到的行列印出來
常用選項:
- -i :忽略大小寫的不同,所以大小寫視為相同
- -n :順便輸出行號
- -v :反向選擇,亦即顯示出沒有 ‘搜尋字串’ 內容的那一行
(相當于一個提取關鍵字篩選的功能)

zip/unzip:
語法: zip 壓縮檔案.zip 目錄或檔案
功能: 將目錄或檔案壓縮成zip格式
常用選項:
- -r 遞 歸處理,將指定目錄下的所有檔案和子目錄一并處理 將test2目錄壓縮:zip test2.zip test2/* 解壓到tmp目錄:unzip test2.zip -d /tmp
(如果這里zip的時候最后面不帶’*'他只會把你的目錄名給你打包)


(解壓到特定目錄下)
tar:
tar [-cxtzjvf] 檔案與目錄
- -c :建立一個壓縮檔案的引數指令(create 的意思);
- -x :解開一個壓縮檔案的引數指令!
- -t :查看 tar?le 里面的檔案!
- -z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?
- -j :是否同時具有 bzip2的屬性?亦即是否需要用 bzip2 壓縮?
- -v :壓縮的程序中顯示檔案!這個常用,但不建議用在背景執行程序!
- -f :使用檔名,請留意,在 f 之后要立即接檔名喔!不要再加引數!
- -C : 解壓到指定目錄
說道打包和壓縮,這個命令才是最常見的,

(-czf就是壓縮檔案,-xzf就是解壓縮包)
uname:
語法:uname [選項]
功能: uname用來獲取電腦和作業系統的相關資訊, 補充說明:uname可顯示linux主機所用的作業系統的版本、硬體的名稱等基本資訊,
常用選項:
- -a或–all 詳細輸出所有資訊,依次為內核名稱,主機名,內核版本號,內核版本,硬體名,處理器類 型,硬體平臺型別,作業系統名稱

bc:
bc命令可以很方便的進行浮點運算

重要的幾個熱鍵[Tab],[ctrl]-c, [ctrl]-d
[Tab]按鍵—具有『命令補全』和『檔案補齊』的功能(當你不能清楚的記得指令的時候,可以寫出頭字母然后連按兩下[tab]就會出現這個字母所有的指令,然后你在補全)
[Ctrl]-c按鍵—讓當前的程式『停掉』
[Ctrl]-d按鍵—通常代表著:『鍵盤輸入結束(End Of File, EOF戒 End OfInput)』的意思;另外,他也可 以用來取代exit
2. Linux權限的概念
Linux下有兩種用戶:超級用戶(root)、普通用戶
- 超級用戶:可以再linux系統下做任何事情,不受限制
- 普通用戶:在linux下做有限的事情,
- 超級用戶的命令提示符是“#”,普通用戶的命令提示符是“$”,
命令:su [用戶名]
功能:切換用戶,
例如,要從root用戶切換到普通用戶user,則使用 su user, 要從普通用戶user切換到root用戶則使用 su root(root可以省略),此時系統會提示輸入root用戶的口令,

(Linux下輸入密碼是不回顯的,也在一定程度上做到了很好的保密性)
3. Linux權限管理
3.1 檔案訪問者的分類(人)
- 檔案和檔案目錄的所有者:u—User(中國平民 法律問題)
- 檔案和檔案目錄的所有者所在的組的用戶:g—Group(不多說)
- 其它用戶:o—Others (外國人)
3.2 檔案型別和訪問權限(事物屬性)

a) 檔案型別
1. d:檔案夾
2. -:普通檔案(在windows下他們區分檔案型別是根據后綴來查看的,但是在Linux下,這個沒有用,他只關心你的全部資訊的開頭是‘-d’還是‘-’)
3. l:軟鏈接(類似Windows的快捷方式)
4. b:塊設備檔案(例如硬碟、光驅等)
5. p:管道檔案
6. c:字符設備檔案(例如螢屏等串口設備)
7. s:套介面檔案
b)基本權限
- 讀(r/4):Read對檔案而言,具有讀取檔案內容的權限;對目錄來說,具有瀏覽該目錄資訊的權限
- 寫(w/2):Write對檔案而言,具有修改檔案內容的權限;對目錄來說具有洗掉移動目錄內檔案的權限
- 執行(x/1):execute對檔案而言,具有執行檔案的權限;對目錄來說,具有進入目錄的權限
- “—”表示不具有該項權限
3.3 檔案權限值的表示方法
a)字符表示方法

b)8進制數值表示方法

3.4 檔案訪問權限的相關設定方法
chmod:
功能:設定檔案的訪問權限
格式:chmod [引數] 權限 檔案名
常用選項:
- R -> 遞回修改目錄檔案的權限
- 說明:只有檔案的擁有者和root才可以改變檔案的權限
① 用戶表示符+/-=權限字符
- +:向權限范圍增加權限代號所表示的權限
- -:向權限范圍取消權限代號所表示的權限
- =:向權限范圍賦予權限代號所表示的權限 用戶符號:
- u:擁有者
- g:擁有者同組用
- o:其它用戶
- a:所有用戶
實體:
chmod u+w /home/abc.txt (表示擁有者加上寫權限)
chmod o-x /home/abc.txt(其他人減去可執行權限)
②三位8進制數字
實體:
chmod 664 /home/abc.txt (用8進制來算就是rw-rw-r–)
chmod 640 /home/abc.txt(rw-r-----)
chown:
功能:修改檔案的擁有者
格式:chown [引數] 用戶名 檔案名
實體:
chown user1 f1
chown -R user1 filegroup1
chgrp:
功能:修改檔案或目錄的所屬組
格式:chgrp [引數] 用戶組名 檔案名
常用選項和實體:
-R 遞回修改檔案或目錄的所屬組
chgrp users /abc/f2
umask:
功能: 查看或修改檔案掩碼 新建檔案夾默認權限=0666 新建目錄默認權限=0777 但實際上你所創建的檔案和目錄,看到的權限往往不是上面這個值,原因就是創建檔案或目錄的時候還要受到 umask的影響,假設默認權限是mask,則實際創建的出來的檔案權限是: mask & ~umask(讓你的掩碼轉換為8進制以后,所在的位置上面有的權限要在顯示的時候去掉)
格式:umask 權限值
說明:將現有的存取權限減去權限掩碼后,即可產生建立檔案時預設權限,超級用戶默認掩碼值為0022,普通用 戶默認為0002,
- umask 755
- umask //查看
- umask 044//設定
file:
功能說明:辨識檔案型別,
語法:?le [選項] 檔案或目錄
常用選項:
- -c 詳細顯示指令執行程序,便于排錯或分析程式執行的情形,
- -z 嘗試去解讀壓縮檔案的內容
目錄的權限
- 可執行權限: 如果目錄沒有可執行權限, 則無法cd到目錄中.
- 可讀權限: 如果目錄沒有可讀權限,則無法用ls等命令查看目錄中的檔案內容.
- 可寫權限: 如果目錄沒有可寫權限, 則無法在目錄中創建檔案, 也無法在目錄中洗掉檔案.
于是, 問題來了~~
換句話來講, 就是只要用戶具有目錄的寫權限, 用戶就可以洗掉目錄中的檔案, 而不論這個用戶是否有這個檔案的寫 權限. 這好像不太科學啊, 我張三創建的一個檔案, 憑什么被你李四可以刪掉?

(也就是我作為一個other來說,沒有讀寫和執行的權限,但是我卻可以給你洗掉,所以要引入粘滯位的概念)
為了解決這個不科學的問題, Linux引入了粘滯位的概念,
當一個目錄被設定為"粘滯位"用chmod +t,則該目錄下的檔案只能由
- 超級管理員洗掉
- 該目錄的所有者洗掉
- 該檔案的所有者洗掉
關于權限的總結
目錄的可執行權限是表示你可否在目錄下執行命令, 如果目錄沒有-x權限,則無法對目錄執行任何命令,甚至無法cd 進入目, 即使目錄仍然有-r 讀權限(這 個地方很容易犯錯,認為有讀權限就可以進入目錄讀取目錄下的檔案)
3.5 關于權限的總結
- 目錄的可執行權限是表示你可否在目錄下執行命令,
- 如果目錄沒有-x權限,則無法對目錄執行任何命令,甚至無法cd 進入目錄, 即使目錄仍然有-r 讀權限(這 個地方很容易犯錯,認為有讀權限就可以進入目錄讀取目錄下的檔案)
- 而如果目錄具有-x權限,但沒有-r權限,則用戶可以執行命令,可以cd進入目錄,但由于沒有目錄的讀 權限
- 所以在目錄下,即使可以執行ls命令,但仍然沒有權限讀出目錄下的檔案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/252232.html
標籤:其他
