全面系统地总结Linux的基本操作(上)
1、 Linux文件和目錄
Windows 和 Linux 文件系統
?
在 windows 平臺下,打開"計算機",我們看到的是一個個的驅動器盤符:每個驅動器都有自己的根目錄結構,這樣形成了多個樹并列的情形,如圖所示:
?
在 Linux 下,我們是看不到這些驅動器盤符,我們看到的是文件夾(目錄):
?
類 Unix 系統目錄結構 ubuntu 沒有盤符這個概念,只有一個根目錄/,所有文件都在
它下面:
?
Linux 目錄
/:根目錄,一般根目錄下只存放目錄,在 Linux 下有且只有一個根目錄。所有的東西都是從這里開始。當你在終端里輸入"/home",你其實是在告訴電腦,先從/(根目錄)開始,再進入到 home 目錄。
/bin、/usr/bin: 可執行二進制文件的目錄,如常用的命令 ls、tar、mv、cat 等。
/boot : 放 置 linux 系 統 啟 動 時 用 到 的 一 些 文 件 , 如 Linux 的 內 核 文 件 :/boot/vmlinuz,系統引導管理器:/boot/grub。
/dev:存放 linux 系統下的設備文件,訪問該目錄下某個文件,相當于訪問某個設備,常用的是掛載光驅 mount /dev/cdrom /mnt。
/etc:系統配置文件存放的目錄,不建議在此目錄下存放可執行文件,重要的配置文件 有 /etc/inittab 、 /etc/fstab 、 /etc/init.d 、 /etc/X11 、 /etc/sysconfig 、/etc/xinetd.d。
/home:系統默認的用戶家目錄,新增用戶賬號時,用戶的家目錄都存放在此目錄下,~表示當前用戶的家目錄,~edu 表示用戶 edu 的家目錄。
/lib、/usr/lib、/usr/local/lib:系統使用的函數庫的目錄,程序在執行過程中,需要調用一些額外的參數時需要函數庫的協助。
/lost+fount:系統異常產生錯誤時,會將一些遺失的片段放置于此目錄下。
/mnt: /media:光盤默認掛載點,通常光盤掛載于 /mnt/cdrom 下,也不一定,可以選擇任意位置進行掛載。
/opt:給主機額外安裝軟件所擺放的目錄。
/proc:此目錄的數據都在內存中,如系統核心,外部設備,網絡狀態,由于數據都存 放 于 內 存 中 , 所 以 不 占 用 磁 盤 空 間 , 比 較 重 要 的 目 錄 有 /proc/cpuinfo 、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。
/root:系統管理員 root 的家目錄。
/sbin、/usr/sbin、/usr/local/sbin:放置系統管理員使用的可執行命令,如 fdisk、shutdown、mount 等。與 /bin 不同的是,這幾個目錄是給系統管理員 root 使用的命令,一般用戶只能"查看"而不能設置和使用。
/tmp:一般用戶或正在執行的程序臨時存放文件的目錄,任何人都可以訪問,重要數據不可放置在此目錄下。
/srv:服務啟動之后需要訪問的數據目錄,如 www 服務需要訪問的網頁數據存放在 /srv/www 內。
/usr:應用程序存放目錄,/usr/bin 存放應用程序,/usr/share 存放共享數據,/usr/lib 存 放不 能直 接運 行的 ,卻 是許 多 程序 運行 所必 需的 一些 函 數庫 文件 。
/usr/local: 存 放 軟 件 升 級 包 。 /usr/share/doc: 系 統 說 明 文 件 存 放 目 錄 。
/usr/share/man: 程序說明文件存放目錄。
/var:放置系統執行過程中經常變化的文件,如隨時更改的日志文件 /var/log,
/var/log/message:所有的登錄文件存放目錄,/var/spool/mail:郵件存放的目錄,
/var/run:程序或服務啟動后,其 PID 存放在該目錄下。
?
用戶目錄
位于/home/user,稱之為用戶工作目錄或家目錄,表示方式:
絕對路徑
從/目錄開始描述的路徑為絕對路徑,如:
cd /home ls /usr相對路徑
從當前位置開始描述的路徑為相對路徑,如:
cd ../../ ls abc/def每個目錄下都有.和..
. 表示當前目錄
.. 表示上一級目錄,即父目錄
根目錄下的.和..都表示當前目錄
2 、Linux命令基本用法
?
很多人可能在電視或電影中看到過類似的場景,黑客面對一個黑色的屏幕,上面飄著
密密麻麻的字符,梆梆一頓敲,就完成了竊取資料的任務。
Linux 剛出世時沒有什么圖形界面,所有的操作全靠命令完成,就如同電視里的黑
客那樣,充滿了神秘與晦澀。
近幾年來,盡管 Linux 發展得非常迅速,圖形界面越來越友好,但是在真正的開發
過程中,Linux 命令行的應用還是占有非常重要的席位,而且許多 Linux 功能在命
令行界面要比圖形化界面下運行的快。可以說不會命令行,就不算會 Linux。
Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盤操作、文件
存取、目錄操作、進程管理、文件權限設定等。Linux 發行版本最少的命令也有 200
多個,這里只介紹比較重要和使用頻率最多的命令。
?
2.1 命令使用方法
Linux 命令格式:
command [-options] [parameter1] …說明:command: 命令名,相應功能的英文單詞或單詞的縮寫 [-options]:選項,可
用來對命令進行控制,也可以省略,[]代表可選 parameter1 …:傳給命令的參數:可以
是零個一個或多個.例:
?
2.2 查看幫助文檔
<1>--help
一般是 linux 命令自帶的幫助信息
如:ls --help
<2>man(有問題找男人,manual)
man 是 linux 提供的一個手冊,包含了絕大部分的命令、函數使用說明
該手冊分成很多章節(section),使用 man 時可以指定不同的章節來瀏覽。
例:man ls ; man 2 printf
man 中各個 section 意義如下:
Standard commands(標準命令)
System calls(系統調用,如 open,write)
Library functions(庫函數,如 printf,fopen)
Special devices(設備文件的說明,/dev 下各種設備)
File formats(文件格式,如 passwd)
Games and toys(游戲和娛樂)
Miscellaneous(雜項、慣例與協定等,例如 Linux 檔案系統、網絡協定、ASCII 碼;environ 全局變量)
Administrative Commands(管理員命令,如 ifconfig)
man 是按照手冊的章節號的順序進行搜索的。man 設置了如下的功能鍵:
空格鍵 顯示手冊頁的下一屏
Enter 鍵 一次滾動手冊頁的一行
b 回滾一屏
f 前滾一屏
q 退出 man 命令
h 列出所有功能鍵
/word 搜索 word 字符串
?
2.3 命令自動補全
在敲出命令的前幾個字母的同時,按下 tab 鍵,系統會自動幫我們補全命令.
2.4 歷史命令
當系統執行過一些命令后,可按上下鍵翻看以前的命令,history 將執行過的命令列
舉出來.
3、 Linux命令-文件,磁盤操作
3.1 查看文件信息:ls
ls 是英文單詞 list 的簡寫,其功能為列出目錄的內容,是用戶最常用的命令之一,它類似于 DOS 下的 dir 命令。
Linux 文件或者目錄名稱最長可以有 265 個字符,"."代表當前目錄,".."代表上一級目錄,以"."開頭的文件為隱藏文件,需要用 -a 參數才能顯示。
ls 常用參數:
參數 含義
-a 顯示指定目錄下所有子目錄與文件,包括隱藏文件 -l 以列表方式顯示文件的詳細信息 -h 配合 -l 以人性化的方式顯示文件大小?
圖中列出的信息含義如下圖所示:
?
與 DOS 下的文件操作類似,在 Unix/Linux 系統中,也同樣允許使用特殊字符來同時引
用多個文件名,這些特殊字符被稱為通配符。
通配符 含義
3.2 輸出重定向命令:>
Linux 允許將命令執行結果重定向到一個文件,本應顯示在終端上的內容保存到指定文
件中。如:ls > test.txt ( test.txt 如果不存在,則創建,存在則覆蓋其內容 )
?
注意: >輸出重定向會覆蓋原來的內容,>>輸出重定向則會追加到文件的尾部。
?
3.3 分屏顯:more
查看內容時,在信息過長無法在一屏上顯示時,會出現快速滾屏,使得用戶無法看清文
件的內容,此時可以使用 more 命令,每次只顯示一頁,按下空格鍵可以顯示下一頁,按下
q 鍵退出顯示,按下 h 鍵可以獲取幫助。
?
3.4 管道:|
管道:一個命令的輸出可以通過管道做為另一個命令的輸入。管道我們可以理解現實生
活中的管子,管子的一頭塞東西進去,另一頭取出來,這里" | "的左右分為兩端,左端
塞東西(寫),右端取東西(讀)。
?
【指令 1】正確輸出,作為【指令 2】的輸入
?
3.5 清屏:clear
clear 為清除終端上的顯示(類似于 DOS 的 cls 清屏功能),也可使用快捷鍵:Ctrl + l.
?
3.6 切換工作目錄:cd
在使用 Unix/Linux 的時候,經常需要更換工作目錄。cd 命令可以幫助用戶切換工作目錄。Linux 所有的目錄和文件名大小寫敏感. cd 后面可跟絕對路徑,也可以跟相對路徑。
如果省略目錄,則默認切換到當前用戶的主目錄。
命令 含義
注意:如果路徑是從根路徑開始的,則路徑的前面需要加上" / ",如 " /mnt ",通常進入某個目錄里的文件夾,前面不用加" / "。
?
3.7 顯示當前路徑:pwd
使用 pwd 命令可以顯示當前的工作目錄,該命令很簡單,直接輸入 pwd 即可,后面不帶參數。
?
3.8 創建目錄:mkdir
?
通過 mkdir 命令可以創建一個新的目錄。參數-p 可遞歸創建目錄。需要注意的是新
建目錄的名稱不能與當前目錄中已有的目錄或文件同名,并且目錄創建者必須對當前目
錄具有寫權限。
?
3.9 刪除目錄:rmdir
可使用 rmdir 命令刪除一個目錄。必須離開目錄,并且目錄必須為空目錄,不然提
示刪除失敗。
?
3.10 刪除文件:rm
可通過 rm 刪除文件或目錄。使用 rm 命令要小心,因為文件刪除后不能恢復。為了
防止文件誤刪,可以在 rm 后使用-i 參數以逐個確認要刪除的文件。
常用參數及含義如下表所示:
參數 含義
?
3.11 建立鏈接文件:ln
Linux 鏈接文件類似于 Windows 下的快捷方式。
鏈接文件分為軟鏈接和硬鏈接。
軟鏈接:軟鏈接不占用磁盤空間,源文件刪除則軟鏈接失效。
硬鏈接:硬鏈接只能鏈接普通文件,不能鏈接目錄。
使用格式:
- ln 源文件 鏈接文件
- ln -s 源文件 鏈接文件
如果沒有-s 選項代表建立一個硬鏈接文件,兩個文件占用相同大小的硬盤空間,即使刪除了源文件,鏈接文件還是存在,所以-s 選項是更常見的形式。
注意:如果軟鏈接文件和源文件不在同一個目錄,源文件要用絕對路徑,不能用相對路徑。
?
3.12 查看或合并文件:cat
3.13 文本搜索:grep
Linux 系統中 grep 命令是一種強大的文本搜索工具,grep 允許對文本文件進行模式查找。如果找到匹配模式, grep 打印包含模式的所有行。在 grep 命令中輸入字符串參數時,最好引號或雙引號括起來。例如:grep'a '1.txt。
grep 一般格式為:
grep [-選項] '搜索內容串'文件名常用選項說明:
選項 含義
- -v 顯示不包含匹配文本的所有行(相當于求反)
- -n 顯示匹配行及行號
- -i 忽略大小寫
grep 搜索內容串可以是正則表達式。正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個"規則字符串",這個"規則字符串"用來表達對字符串的一種過濾邏輯。
grep 常用正則表達式:
選項 含義
- ^a 行首,搜尋以 m 開頭的行;grep -n '^a' 1.txt
- ke$ 行尾,搜尋以 ke 結束的行;grep -n 'ke$' 1.txt
- . (點)匹配一個非換行符的字符;匹配 e 和 e 之間有任意一個字符,可以匹配 eee,eae,eve,但是不匹配 ee,eaae;grep -n 'e.e' 1.txt
- [Ss]igna[Ll] 匹配 [] 里中一系列字符中的一個;搜尋匹配單詞 signal、signaL、Signal、SignaL 的行;grep -n '[Ss]igna[Ll]' 1.txt
3.14 查找文件:find
find 命令功能非常強大,通常用來在特定的目錄下搜索符合條件的文件,也可以用來搜索特定用戶屬主的文件。
常用用法:
選項 含義
- find ./ -name test.sh 查找當前目錄下所有名為 test.sh 的文件
- find ./ -name '*.sh' 查找當前目錄下所有后綴為.sh 的文件
- find ./ -name "[A-Z]*" 查找當前目錄下所有以大寫字母開頭的文件
- find /tmp -size 2M 查找在/tmp 目錄下等于 2M 的文件
- find /tmp -size +2M 查找在/tmp 目錄下大于 2M 的文件
- find /tmp -size -2M 查找在/tmp 目錄下小于 2M 的文件
- find ./ -size +4k -size -5M 查找當前目錄下大于 4k,小于 5M 的文件
- find ./ -perm 777 查找當前目錄下權限為 777 的文件或目錄
3.15 拷貝文件:cp
cp 命令的功能是將給出的文件或目錄復制到另一個文件或目錄中,相當于 DOS 下的copy 命令。
常用選項說明:
選項 含義
- -a 該選項通常在復制目錄時使用,它保留鏈接、文件屬性,并遞歸地復制目錄,簡單而言,保持文件原有屬性。
- -f 已經存在的目標文件而不提示
- -i 交互式復制,在覆蓋目標文件之前將給出提示要求用戶確認
- -r 若給出的源文件是目錄文件,則 cp 將遞歸復制該目錄下的所有子目錄和文件,目標文件必須為一個目錄名。
- -v 顯示拷貝進度
3.16 移動文件:mv
用戶可以使用 mv 命令來移動文件或目錄,也可以給文件或目錄重命名。常用選項說明:
選項 含義
- -f 禁止交互式操作,如有覆蓋也不會給出提示
- -i 確認交互方式操作,如果 mv 操作將導致對已存在的目標文件的覆蓋,系統會詢問是否重寫,要求用戶回答以避免誤覆蓋文件
- -v 顯示進度
3.17 歸檔管理:tar
計算機中的數據經常需要備份,tar 是 Unix/Linux 中最常用的備份工具,此命令可以把一系列文件歸檔到一個大文件中,也可以把檔案文件解開以恢復數據。
tar 使用格式: tar [參數] 打包文件名 文件
tar 命令很特殊,其參數前面可以使用"-",也可以不使用。
常用參數:
選項 含義
- -c 生成檔案文件,創建打包文件
- -v 列出歸檔解檔的詳細過程,顯示進度
- -f 指定檔案文件名稱,f 后面一定是.tar 文件,所以必須放選項最后
- -t 列出檔案中包含的文件
- -x 解開檔案文件
注意:除了 f 需要放在參數的最后,其它參數的順序任意。
?
3.18 文件解壓縮:gzip
tar 與 gzip 命令結合使用實現文件打包、壓縮。 tar 只負責打包文件,但不壓縮,用
gzip 壓縮 tar 打包后的文件,其擴展名一般用 xxxx.tar.gz。gzip 使用格式如下:
gzip [選項] 被壓縮文件
常用選項:
選項 含義
- -d 解壓
- -r 壓縮所有子目錄
?
tar 這個命令并沒有壓縮的功能,它只是一個打包的命令,但是在 tar 命令中增加一個選項(-z)可以調用 gzip 實現了一個壓縮的功能,實行一個先打包后壓縮的過程。
壓縮用法:tar cvzf 壓縮包包名 文件 1 文件 2 ...
-z :指定壓縮包的格式為:file.tar.gz
?
解壓用法: tar zxvf 壓縮包包名
-z :指定壓縮包的格式為:file.tar.gz
?
解壓到指定目錄:-C (大寫字母"C")
3.19 文件解壓縮:bzip2
tar 與 bzip2 命令結合使用實現文件打包、壓縮(用法和 gzip 一樣)。
tar 只負責打包文件,但不壓縮,用 bzip2 壓縮 tar 打包后的文件,其擴展名一般用xxxx.tar.bz2。
在 tar 命令中增加一個選項(-j)可以調用 bzip2 實現了一個壓縮的功能,實行一個先打包后
壓縮的過程。
壓縮用法:tar -jcvf 壓縮包包名 文件...(tar jcvf bk.tar.bz2 *.c)
解壓用法:tar -jxvf 壓縮包包名 (tar jxvf bk.tar.bz2)
?
3.20 文件解壓縮:zip、unzip
通過 zip 壓縮文件的目標文件不需要指定擴展名,默認擴展名為 zip。
壓縮文件:zip [-r] 目標文件(沒有擴展名) 源文件
解壓文件:unzip -d 解壓后目錄文件 壓縮文件
3.21 查看命令位置:which
?
?
總結
以上是生活随笔為你收集整理的全面系统地总结Linux的基本操作(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 排序:插入排序与希尔排序
- 下一篇: linux 其他常用命令