Linux基础知识(1)
一、Linux介紹
1、操作系統的發展
其中Uninx只針對大型主機或服務器,Minix->Linux適用于x86的個人計算機
2、Linux的不同版本
<1>Linux內核版本:內核(kernel)是系統的心臟,是運行程序和管理像磁盤和打印機等硬件設備的核心程序,它提供了一個在裸設備與應用程序間的抽象層。
<2>Linux發行版本:也被叫做 GNU, 通常包含了包括桌面環境、辦公套件、媒體播放器、數據庫等應用軟件。
二、文件和目錄
1、Windows和Linux文件系統區別
在 windows 平臺下,打開“計算機”,我們看到的是一個個的驅動器盤符:
?
每個驅動器都有自己的根目錄結構,這樣形成了多個樹并列的情形,如圖所示:
在 Linux 下,我們是看不到這些驅動器盤符,我們看到的是文件夾(目錄):
就比如我們用的Ubuntu沒有盤符這個概念,只有一個根目錄/,所有文件都在它下面:
?
/:根目錄,一般根目錄下只存放目錄,在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存放在該目錄下。
2、用戶目錄
位于/home/user,稱之為用戶工作目錄或家目錄,表示方式:
/home/user
~
3、相對路徑和絕對路徑
絕對路徑:從/目錄開始描述的路徑為絕對路徑,如:/home
相對路徑:從當前位置開始描述的路徑為相對路徑,如:../../
.和.. :每個目錄下都有.和..(可用ls -a查看);. 表示當前目錄;.. 表示上一級目錄,即父目錄;根目錄下的.和..都表示當前目錄
4、文件權限
文件權限就是文件的訪問控制權限,即哪些用戶和組群可以訪問文件以及可以執行什么樣的操作。
在 Unix/Linux中的每一個文件或目錄都包含有訪問權限,這些訪問權限決定了誰能訪問和如何訪問這些文件和目錄。
<1>訪問用戶
通過設定權限可以從以下三種訪問方式限制訪問權限:
只允許用戶自己訪問(所有者) 所有者就是創建文件的用戶,用戶是所有用戶所創建文件的所有者,用戶可以允許所在的用戶組能訪問用戶的文件。
允許一個預先指定的用戶組中的用戶訪問(用戶組) 用戶都組合成用戶組,例如,某一類或某一項目中的所有用戶都能夠被系統管理員歸為一個用戶組,一個用戶能夠授予所在用戶組的其他成員的文件訪問權限。
允許系統中的任何用戶訪問(其他用戶) 用戶也將自己的文件向系統內的所有用戶開放,在這種情況下,系統內的所有用戶都能夠訪問用戶的目錄或文件。在這種意義上,系統內的其他所有用戶就是 other 用戶類。
<2>訪問權限
用戶能夠控制一個給定的文件或目錄的訪問程度,一個文件或目錄可能有讀、寫及執行權限:
讀權限(r) 對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽目錄的權限。
寫權限(w) 對文件而言,具有新增、修改文件內容的權限;對目錄來說,具有刪除、移動目錄內文件的權限。
可執行權限(x) 對文件而言,具有執行文件的權限;對目錄了來說該用戶具有進入目錄的權限。
注意:通常,Unix/Linux系統只允許文件的屬主(所有者)或超級用戶改變文件的讀寫權限。
<3>示例說明:利用ls -lh查看
第1個字母代表文件的類型:“d” 代表文件夾、“-” 代表普通文件、“c” 代表硬件字符設備、“b” 代表硬件塊設備、“s”表示管道文件、“l” 代表軟鏈接文件。 后 9 個字母分別代表三組權限:文件所有者、用戶者、其他用戶擁有的權限。
handy@ubuntu:~$ ls -l
total 44
drwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Desktop
drwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Documents
drwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Downloads
-rw-r--r-- 1 handy handy 8980 Aug 29 06:39 examples.desktop
drwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Music
drwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Pictures
drwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Public
drwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Templates
drwxr-xr-x 2 handy handy 4096 Aug 29 06:45 Videos
handy@ubuntu:~$ ls -lh
total 44K
drwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Desktop
drwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Documents
drwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Downloads
-rw-r--r-- 1 handy handy 8.8K Aug 29 06:39 examples.desktop
drwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Music
drwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Pictures
drwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Public
drwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Templates
drwxr-xr-x 2 handy handy 4.0K Aug 29 06:45 Videos
handy@ubuntu:~$
每一個用戶都有它自身的讀、寫和執行權限。
第一組權限控制訪問自己的文件權限,即所有者權限。
第二組權限控制用戶組訪問其中一個用戶的文件的權限。
第三組權限控制其他所有用戶訪問一個用戶的文件的權限。
這三組權限賦予用戶不同類型(即所有者、用戶組和其他用戶)的讀、寫及執行權限就構成了一個有9種類型的權限組。
Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盤操作、文件存取、目錄操作、進程管理、文件權限設定等。Linux 發行版本最少的命令也有 200 多個,這里只介紹比較重要和使用頻率最多的命令。
1、命令使用方法
Linux命令格式:
command [-options] [parameter1] …
命令 選項 參數
說明:
command: 命令名,相應功能的英文單詞或單詞的縮寫 [-options]:選項,可用來對命令進行控制,也可以省略,[]代表可選 parameter1 …:傳給命令的參數:可以是零個一個或多個.
2、查看幫助文檔
<1>--help
一般是linux命令自帶的幫助信息,如:ls --help
<2>man
man是linux提供的一個手冊,包含了絕大部分的命令、函數使用說明
該手冊分成很多章節(section),使用man時可以指定不同的章節來瀏覽。
例:man ls ; man 2 printf
man中各個section意義如下:
1: Standard commands(標準命令)
2: System calls(系統調用,如open,write)
3: Library functions(庫函數,如printf,fopen)
4:Special devices(設備文件的說明,/dev下各種設備)
5: File formats(文件格式,如passwd)
6:Games and toys(游戲和娛樂)
7:Miscellaneous(雜項、慣例與協定等,例如Linux檔案系統、網絡協定、ASCII 碼;environ全局變量)
8: Administrative Commands(管理員命令,如ifconfig)
man是按照手冊的章節號的順序進行搜索的。
man設置了如下的功能鍵:
例如:
3、自動補全
在敲出命令的前幾個字母的同時,按下tab鍵,系統會自動幫我們補全命令
4、歷史命令
當系統執行過一些命令后,可按上下鍵翻看以前的命令,history將執行過的命令列舉出來。
四、文件、磁盤管理的常用命令
<1>查看文件信息:ls
ls是英文單詞list的簡寫,其功能為列出目錄的內容,是用戶最常用的命令之一,它類似于DOS下的dir命令。
Linux文件或者目錄名稱最長可以有265個字符,“.”代表當前目錄,“..”代表上一級目錄,以“.”開頭的文件為隱藏文件,需要用-a參數才能顯示。
ls -l
與DOS下的文件操作類似,在Unix/Linux系統中,也同樣允許使用特殊字符來同時引用多個文件名,這些特殊字符被稱為通配符。
<2>輸出重定向命令:>
Linux允許將命令執行結果重定向到一個文件,本應顯示在終端上的內容保存到指定文件中。
如:ls > test.txt ( test.txt 如果不存在,則創建,存在則覆蓋其內容 )
注意: >輸出重定向會覆蓋原來的內容,>>輸出重定向則會追加到文件的尾部。
<3>分屏顯示:more
查看內容時,在信息過長無法在一屏上顯示時,會出現快速滾屏,使得用戶無法看清文件的內容,此時可以使用more命令,每次只顯示一頁,按下空格鍵可以顯示下一頁,按下q鍵退出顯示,按下h鍵可以獲取幫助。
more 示例
<4>管道:|
管道:一個命令的輸出可以通過管道做為另一個命令的輸入。
管道我們可以理解現實生活中的管子,管子的一頭塞東西進去,另一頭取出來,這里“ | ”的左右分為兩端,左端塞東西(寫),右端取東西(讀)。
?
管道示例
<5>清屏:clear
clear作用為清除終端上的顯示(類似于DOS的cls清屏功能),也可使用快捷鍵:Ctrl + l ( “l” 為字母 )。
<6>切換工作目錄: cd
在使用Unix/Linux的時候,經常需要更換工作目錄。cd命令可以幫助用戶切換工作目錄。Linux所有的目錄和文件名大小寫敏感。
cd后面可跟絕對路徑,也可以跟相對路徑。如果省略目錄,則默認切換到當前用戶的主目錄。
cd 示例
注意:如果路徑是從根路徑開始的,則路徑的前面需要加上 “ / ”,如 “ /mnt ”,通常進入某個目錄里的文件夾,前面不用加 “ / ”。<7>顯示當前路徑:pwd
使用pwd命令可以顯示當前的工作目錄,該命令很簡單,直接輸入pwd即可,后面不帶參數。
<8>創建目錄:mkdir
通過mkdir命令可以創建一個新的目錄。參數-p可遞歸創建目錄。
示例
需要注意的是新建目錄的名稱不能與當前目錄中已有的目錄或文件同名,并且目錄創建者必須對當前目錄具有寫權限。<補>創建文件:touch
命令格式:touch 文件名
如果文件不存在,可以創建一個空白文件。
如果文件存在,可以修改文件的末次修改日期。
<9>刪除目錄:rmdir
可使用rmdir命令刪除一個目錄。必須離開目錄,并且目錄必須為空目錄,不然提示刪除失敗。
<10>刪除文件:rm
可通過rm刪除文件或目錄。使用rm命令要小心,因為文件刪除后不能恢復。為了防止文件誤刪,可以在rm后使用-i參數以逐個確認要刪除的文件。
常用參數
注意遞歸刪除文件夾要加-r,而刪除文件可以不加。
示例
<11>建立鏈接文件:ln
Linux鏈接文件類似于Windows下的快捷方式。
鏈接文件分為軟鏈接(有-s)和硬鏈接。
軟鏈接:軟鏈接不占用磁盤空間,源文件刪除則軟鏈接失效,源文件要用絕對路徑。ln -s 源文件 鏈接文件
硬鏈接:硬鏈接只能鏈接普通文件,不能鏈接目錄,相當于文件“小名”,日常是不用的,只有文件的硬鏈接數(用ls -l查看)為0時,文件才被真正刪除。 ln 源文件 鏈接文件
硬鏈接示例及軟鏈接的tree示意
文件軟硬鏈接示意圖
在Linux中,文件數據和文件名是分開存儲的。
<12>查看或者合并文件內容:cat
對應英文是concatenate,用于查看文件內容(適合內容較少的,較多的用more)、創建文件、文件合并、追加文件內容等。
常用參數
Linux中還有一個nl命令,和cat -b效果等價。
示例
<13>文本搜索:grep
Linux系統中grep命令是一種強大的文本搜索工具,grep允許對文本文件進行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep一般格式為:grep [-選項] ‘搜索內容串’文件名
在grep命令中輸入字符串參數時,最好引號或雙引號括起來。例如:grep‘a ’1.txt。
常用選項
grep搜索內容串可以是正則表達式,也就是模式查找。
正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。
grep示例
<14>查找文件:find
find支持文件名的正則表達式查找,按文件修改時間查找,按文件大小查找,按文件權限查找,按文件類型查找等,查找到以后還支持直接對查找到的文件使用命令,功能非常強大。
典型的find命令的寫法是:find 查找路徑 查找的標準 查找到之后的動作。
比如: find /home -type d -ls,意思是: 找出/home/下所有的目錄,并顯示目錄的詳細信息。
后繼命令(查找到之后的動作):
-print: 顯示
-ls:類似ls -l的形式顯示每一個文件的詳細
-quit:查找到一個就退出
-delete:刪除匹配到的行
-ok COMMAND {} :每一次操作都需要用戶確認,{}表示引用找到的文件,是占位符,對于(find等輸出的一個列表的內容)依次循環每一個;是表示 -exec 命令終結的的符號。
-exec COMMAND {} :每次操作無需確認
常用用法
<15>拷貝文件:cp
cp命令的功能是將給出的文件或目錄復制到另一個文件或目錄中,相當于DOS下的copy命令。
常用選項
<16>移動文件:mv
用戶可以使用mv命令來移動文件或目錄,也可以給文件或目錄重命名。
常用選項
<17>歸檔管理:tar
計算機中的數據經常需要備份,tar是Unix/Linux中最常用的備份工具,此命令可以把一系列文件歸檔到一個大文件中,也可以把檔案文件解開以恢復數據。
tar使用格式tar [選項] 打包文件名 文件
tar命令很特殊,其選項前面可以使用“-”,也可以不使用。
常用選項
注意:除了f需要放在參數的最后,其它參數的順序任意。
-
一般來說,我們的選項主要要用cvf和xvf。文件打包:tar -cvf ***.tar 1.py 2.py 3.txt *.c
-
文件解包:tar -xvf ***.tar -C ~/Desktop
<18>文件壓縮解壓:gzip
tar與gzip命令結合使用實現文件打包、壓縮。 tar只負責打包文件,但不壓縮,用gzip壓縮tar打包后的文件,其擴展名一般用xxxx.tar.gz。
gzip使用格式:gzip [選項] 被壓縮文件
常用選項:-d解壓、-r壓縮所有子目錄
tar這個命令并沒有壓縮的功能,它只是一個打包的命令,但是在tar命令中增加一個選項(-z)可以調用gzip實現了一個壓縮的功能,實行一個先打包后壓縮的過程。
-
壓縮用法:tar -zcvf 壓縮包包名 文件1 文件2 ...
-
-z :指定壓縮包的格式為:file.tar.gz
-
解壓用法: tar -zxvf 壓縮包包名
-
解壓到指定目錄:-C (大寫字母“C”)
<19>文件壓縮解壓:bzip2
tar與bzip2命令結合使用實現文件打包、壓縮(用法和gzip一樣)。
tar只負責打包文件,但不壓縮,用bzip2壓縮tar打包后的文件,其擴展名一般用xxxx.tar.gz2。
在tar命令中增加一個選項(-j)可以調用bzip2實現了一個壓縮的功能,實行一個先打包后壓縮的過程。
-
壓縮用法:tar jcvf 壓縮包包名 文件...(tar jcvf bk.tar.bz2 *.c)
-
解壓用法:tar jxvf 壓縮包包名 (tar jxvf bk.tar.bz2)
-
<20>文件壓縮解壓:zip、unzip
通過zip壓縮文件的目標文件不需要指定擴展名,默認擴展名為zip。
-
壓縮文件:zip [-r] 目標文件(沒有擴展名) 源文件
-
<21>查看命令位置:which
總結
以上是生活随笔為你收集整理的Linux基础知识(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天空法警能打砸炮枪吗
- 下一篇: Linux基础知识(2)