Linux入門第二天——基本命令入門(上)
一、常用命令介紹
常見命令可參考:http://man.linuxde.net/
常用的快捷鍵:http://blog.csdn.net/avilifans/article/details/11847371
Tab: 單擊補全,雙擊列出所有 ↑↓:歷史命令翻閱 Ctrl+C:強制終止
Ctrl+D:相當於輸入exit,退出 Ctrl+L:清屏 Ctrl+A/E:移動光標到行首/尾 ...
常用幫助指令(學習Linux哪些復雜的選項都可以通過幫助進行查找:)
http://blog.csdn.net/chenghuikai/article/details/45219017
常見命令的完整英文全稱:
https://www.cnblogs.com/DreamDrive/p/6945523.html
二、命令格式
在介紹命令之前,先介紹一下$PATH這個東西,這個就是我們之前在win平臺介紹過的“系統路徑變量”,輸入的命令在PATH變量所指定的目錄中,所以我們可以在任意位置使用ls這樣的路徑了
就像我們配置了Java的PATH環境變量後可以在任意cmd窗口任意目錄下使用java這個命令,Linux的PATH類似,裏面也是一堆目錄,我們可以使用echo $PATH進行查看:
PATH中多個路徑使用冒號:進行分割,並且是有先後之分的(不同用戶PATH不同),若有相同的命令在不同的目錄下,則優先匹配使用先找到的那個。
若要增加自定義的目錄,可以使用:PATH="${PATH}:/root"
看格式之前先了解一下天天見的登陸提示字符的含義:
其中:
root 代表用戶名,Linux中的管理員是root
localhost 表主機名
~ 代表當前所在位置(家目錄,其中root用戶所在的家目錄是 /root,為一級目錄,其它為 /home/user1 等二級目錄)
# 超級用戶提示符
$ 普通用戶提示符
命令格式
命令 [選項] [參數]
個別命令不遵循此格式
有多個選項時可以寫在一起
簡化選項與完整選項:-a 與--all
我們通過學習第一個命令來了解命令的格式:
查詢目錄中內容:ls
實例:
其中,前面的 -rw-------代表的是權限,權限分為10位,具體的如下:
第一位為文件類型(主要7種)
d:文件夾
-:普通文件
l:鏈接(類似Windows的快捷方式)
b:塊設備文件(例如硬盤、光驅等)
p:管道文件
c:字符設備文件(例如貓等串口設備)
s:套接口文件/數據接口文件(例如啟動一個MySql服務器時會產生一個mysql.sock文件)
後9位分為三組,三個一組,分別表示:所有者,所屬組,其他人(指代的都是用戶和文件之間的關系),例如這裏按照u g o 匹配
要註意的是,這三個權限的位置不會改變,如果沒有權限,就會出現減號[ - ]而已。
所有者是 root (具有讀寫權限),所屬組是 root所在的組 (具有讀權限),其它人(具有讀權限)
1 表示連接數,後面root root分別表示所有者 所屬組,再往後就是數字表示的文件大小
這裏後面的大小是一串數字,我們使用上面提到的人性化顯示大小(human)的命令選項 -h,使用顯示詳細信息與人性化大小的組合選項 -lh:
後面的依次為最後修改時間和文件名
註意:如果文件名之前多一個“ . ”,則代表這個文件為“隱藏文件
參數信息如查看指定目錄(如etc目錄): ls -lh /etc/
註:對一般文件來說,rwx 主要是針對“文件的內容”來設計權限,
對目錄來說,rwx則是針對“目錄內的文件名列表”來設計權限。稍微抽象的目錄的權限解讀如下:
r (read contents in directory): 表示具有讀取目錄結構清單的權限,所以當你具有讀取(r)一個目錄的權限時,表示你 可以查詢該目錄下的文件名數據。 所以你就可以利用 ls 這個指令將該目錄的內容列表顯 示出來! w (modify contents of directory): 這個可寫入的權限對目錄來說,是很了不起的! 因為他表示你具有異動該目錄結構清單 的權限,也就是下面這些權限: 創建新的文件與目錄; 刪除已經存在的文件與目錄(不論該文件的權限為何!) 將已存在的文件或目錄進行更名; 搬移該目錄內的文件、目錄位置。 總之,目錄的w權限就與該目錄下面的文件名異 動有關就對了啦! x (access directory): 咦!目錄的執行權限有啥用途啊?目錄只是記錄文件名而已,總不能拿來執行吧?沒 錯!目錄不可以被執行,目錄的x代表的是使用者能否進入該目錄成為工作目錄的用途! 所謂的工作目錄(work directory)就是你目前所在的目錄啦!舉例來說,當你登陸Linux 鳥哥的 Linux 私房菜:基礎學習篇 第四版 272 5.2 Linux 文件權限概念 時, 你所在的主文件夾就是你當下的工作目錄。而變換目錄的指令是“cd”(change directory)啰!View Code
【更新】:改變文件權限:
知道如何查看權限後,我們來看如何修改權限(權限在Linux十分重要)
chgrp :改變文件所屬群組
chown :改變文件擁有者
chmod :改變文件的權限, SUID, SGID, SBIT等等的特性
實例:改變所有者:chown root:root -R /home/java/jdk1.8.0_131/
如果要改變權限,可以采用以下兩種方式:
1.數字式
rwx分別對應421,這樣我們的rwx權限就是分別的相加結果,例如rwx為7,rw-為6,這樣就可以得出形如下列形式的權限命令:
[root@study ~]# chmod [-R] xyz 文件或目錄
選項與參數:
xyz : 就是剛剛提到的數字類型的權限屬性,為 rwx 屬性數值的相加。
-R : 進行遞回(recursive)的持續變更,亦即連同次目錄下的所有文件都會變更
實例:chmod 777 .bashrc
2.符號式
形式如下:
chmod | u g o a | +(加入) -(除去) =(設置) | r w x | 文件或目錄 ### 其中,u g o 分別代表前面的user group others,而a則表示all 可用的操作有直接賦值(使用=),或者不知道原來的權限,但是只想給每個人增加一個權限,則使用+
實例:設置權限為如下:-rwxr-xr-x(註意rwx的順序是不會變的,也就是說rx其實就是r-x)
chmod u=rwx,go=rx .bashrc
chmod a+w .bashrc
參見:http://www.cnblogs.com/peida/archive/2012/12/04/2800684.html
關於文件的默認權限umask,其中umask的後三位表示的是“拿掉的權限,這裏註意文件默認只有rw,目錄有rwx可以拿”
所以對於文件Umask最大值為666,而目錄則為777(這部分建議參見鳥哥的私房菜介紹)
如要修改umask,直接輸入數字即可,如umask 002——通常情況下,root會拿掉比較多的權限,一般為022,而普通用戶為002
當然,除了常規屬性外,還可以設置一些文件的隱藏屬性(例如讓文件只能增加不能減少--如日誌文件),這裏暫時不拓展文件的隱藏屬性的操作。
特殊權限s&t將在後續進行補充!
三、文件處理命令
1.目錄處理命令
類似於windows中的文件夾的概念
常見特殊目錄:
. 代表此層目錄
.. 代表上一層目錄
- 代表前一個工作目錄
~ 代表“目前使用者身份”所在的主文件夾
~account 代表 account 這個使用者的主文件夾(account是個帳號名稱)
建立目錄:mkdir
//遞歸創建就是類似創建一個目錄後再創建一個子目錄
實例:
//可以看到,若不適用-p直接創建兩級目錄將會報錯
默認創建的目錄是使用的默認權限,需要限定權限請使用-m參數:
mkdir -m 777 testdir1
切換目錄:cd
(ctrl + L 清屏)
實例:
//其中 ../user等為相對路徑 /etc/為絕對路徑
【Tab鍵】:在linux中,按一下tab會有提示(若只有一個,將會自動補全,若有多個,按兩次tab將會列出所有可選項)
並且,除了目錄補全,命令也是可以自動補全的!
查詢所在目錄位置:pwd
實例:
刪除空目錄:rmdir
//由於其智能刪除空目錄,實際使用時頻率是非常之少,我們使用的是下面的 rm 命令
刪除文件或目錄:rm
實例:
//如果不想讓他一直提示,可以使用上面說的,rm -rf jiangxi/,可以強制刪除不提示(命令行將無法恢復)
註意:Linux中的root是真正的root,它可以執行 : rm -rf / (刪除根目錄),這樣也就是讓 Linux "自殺",它是會執行的。
所以我們應該推薦的刪除命令是:rm -r jiangxi/這種形式(即使是刪文件,也帶上 -r)
2.文件處理命令
復制命令:cp
實例:
//註意這裏,復制單個文件直接使用基本命令即可,若後面直接跟 /tmp/,則原名復制,若自定義名字,則按自定義復制
若要復制目錄,請跟上 -r ,否則將報圖中錯誤!
復制的文件這裏值得註意的是修改時間會有問題(不像真實機一樣,斷電還有主板的點繼續計時,這裏不深入展開,待補充)
顯示系統時間:
復制文件時添加了 -a選項,將會使得副本與源文件一模一樣,通常,當我們需要將權限一起復制時使用-a選項,而普通復制時文件權限默認是指令操作者的(包括時間屬性以及其它隱藏屬性)
另外,當需要創建鏈接時,可以分別使用-l -s創建硬軟鏈接,關於hard link 與 symbolic link,請參見:http://blog.csdn.net/niluchen/article/details/8049304
最後,必須謹慎思考以下問題,在你準備使用cp的時候:
是否需要完整的保留來源文件的信息?
來源文件是否為鏈接文件 (symbolic link file)?
來源文件是否為特殊的文件,例如 FIFO, socket 等?
來源文件是否為目錄?
View Code
註:ls -l 的別名是 ll
剪切或改名:mv
實例:
//特別註意這裏 mv 剪切不管是否是目錄或者文件都不需要加 -r (多人開發導致的不一致原因)
如果源文件和目標文件在同一目錄,則是改名: mv ana ana001 ;則是修改文件名稱
常見一級目錄作用
//亮色的請謹慎修改!
參考:http://blog.csdn.net/u013239236/article/details/48845251
//一般可以使用 mnt 掛載
//空白的均為同上
一般Linux是嚴謹的操作系統,一般推薦操作 家目錄 /root 或 /home (對應管理員和普通用戶)
【更新】:2.5.文件內容查看
可以使用常用的More來進行相關分頁的文件內容查看,相關選項請參閱手冊
【touch指令】:“摸一下文件”,更新文件的時間或者創建新文件
關於文件的時間,參考:
modification time (mtime): 當該文件的“內容數據”變更時,就會更新這個時間!內 容數據指的是文件的內容,而不是文件的屬性或權限喔! status time (ctime): 當該文件的“狀態 (status)”改變時,就會更新這個時間,舉 例來說,像是權限與屬性被更改了,都會更新這個時間啊。 access time (atime): 當“該文件的內容被取用”時,就會更新這個讀取時間 (access)。舉例來說,我們使用 cat 去讀取 /etc/man_db.conf , 就會更新該文件的 atime 了。View Code
【file指令】除了可以查看文件外,還可以查看文件屬性,具體用法請man file
3.鏈接命令
鏈接命令:ln
既然有軟硬之分,那我們來看看具體軟硬的區分
//前後門都進同一個教室,關了一扇門,還可以從另一扇門打開,教室依舊正常打開。不建議使用
實例:
//創建硬鏈接無需選項
實例:
//特別註意軟鏈接顏色不一樣,並且,標記出了源文件位置
如果做軟鏈接,請使用絕對路徑!
Linux入門第二天——基本命令入門(上)