Linux 是一種自由和開放源代碼的計算機操作系統,廣泛應用于服務器、超級計算機、移動設備和嵌入式系統等領域。在本文中,我將爲大家簡單介紹下linux及一些常用的 Linux 命令。
基礎概念
一般情況下,每個 Unix/Linux 命令運行時都會打開三個文件:
標准輸入文件(stdin):stdin 的文件描述符爲0,Unix程序默認從stdin讀取數據
標准輸出文件(stdout):stdout 的文件描述符爲1,Unix程序默認向stdout輸出數據
標准錯誤文件(stderr):stderr 的文件描述符爲2,Unix程序會向stderr流中寫入錯誤信息
Linux 設備分爲三類:
字符設備,如鍵盤、鼠標等
塊設備,如硬盤、光驅、軟驅等
網絡設備,如以太網卡
相關目錄說明經常使用Linux系統,如CentOS。剛上使用時我們也許會好奇每個目錄是幹什麽的,本文介紹Linux系統下的文件目錄結構。
/bin目錄包含了引導啓動所需的命令或普通用戶可能用的命令(可能在引導啓動後)。這些命令都是二進制文件的可執行程序(bin是binary - -二進制的簡稱),多是系統中重要的系統文件。
/boot目錄存放引導加載器(bootstrap loader)使用的文件,如lilo,核心映像也經常放在這裏,而不是放在根目錄中。但是如果有許多核心映像,這個目錄就可能變得很大,這時使用單獨的文件系統會更好一些。還有一點要注意的是,要確保核心映像必須在ide硬盤的前1024柱面內。
/dev目錄包括所有設備的設備文件。用戶通過這些文件訪問外部設備。比如,用戶可以通過訪問/dev/mouse來訪問鼠標的輸入,就像訪問其他文件一樣
/dev/console系統控制台,也就是直接和系統連接的監視器。
/dev/hd*ide硬盤驅動程序接口。如:/dev/hda指的是第一個硬盤,had 1則是指/dev/hda的第一個分區。如系統中有其他的硬盤,則依次爲/dev/hdb、/dev/hdc……;如有多個分區則依次爲hda1、hda2……
/dev/sd*scsi磁盤驅動程序接口。如有系統有scsi硬盤,就不會訪問/dev/had,而會訪問/dev/sda。
/dev/shmdevice shared memory 是 linux 操作系統利用內存虛擬出來的目錄,該目錄的文件都是保存在內存中,效率非常高。默認容量爲內存的一半,被它占用的內存不會被系統回收重新劃分。本質上是 tmpfs,重啓後不會保留。
/dev/tty提供虛擬控制台支持。如:/dev/tty1指的是系統的第一個虛擬控制台,/dev/tty2則是系統的第二個虛擬控制台。
/dev/pty提供遠程登陸僞終端支持。在進行telnet登錄時就要用到/dev/pty設備。
/dev/null黑洞,所有寫入該設備的信息都將消失。例如:當想要將屏幕上的輸出信息隱藏起來時,只要將輸出信息輸入到/dev/null中即可。
/etc目錄包含各種系統配置文件,下面說明其中的一些。
/etc/fstab指定啓動時需要自動安裝的文件系統列表。也包括用swapon -a啓用的swap區的信息。
/etc/issue包括用戶在登錄提示符前的輸出信息。通常包括系統的一段短說明或歡迎信息。具體內容由系統管理員確定。
/etc/profile登錄或啓動時bourne或c shells執行的文件。這允許系統管理員爲所有用戶建立全局缺省環境。
/etc/rc或/etc/rc.d或/etc/rc*.d啓動、或改變運行級時運行的腳本或腳本的目錄。
/home用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示
/lib目錄是根文件系統上的程序所需的共享庫,存放了根文件系統程序運行所需的共享文件。這些文件包含了可被許多程序共享的代碼,以避免每個程序都包含有相同的子程序的副本,故可以使得可執行文件變得更小,節省空間。
/sbin目錄類似/bin ,也用于存儲二進制文件。因爲其中的大部分文件多是系統管理員使用的基本的系統程序,所以雖然普通用戶必要且允許時可以使用,但一般不給普通用戶使用。
/tmp目錄存放程序在運行時産生的信息和數據。但在引導啓動後,運行的程序最好使用/var/tmp來代替/tmp ,因爲前者可能擁有一個更大的磁盤空間。
/root系統管理員的主目錄
/mnt系統提供這個目錄是讓用戶臨時挂載其他的文件系統
/lost+found這個目錄平時是空的,系統非正常關機而留下“無家可歸”的文件(windows下叫什麽.chk)就在這裏
/proc虛擬的目錄,是系統內存的映射。可直接訪問這個目錄來獲取系統信息。它並不存在于某個磁盤上,而是由核心在內存中産生。這個目錄用于提供關于系統的信息。下面說明一些最重要的文件和目錄(/proc文件系統在proc man頁中有更詳細的說明)。
/usr應用程序和文件幾乎都在這個目錄。/usr 裏的所有文件一般來自 linux 發行版(distribution);本地安裝的程序和其他東西在/usr/local下,因爲這樣可以在升級新版系統或新發行版時無須重新安裝全部程序。/usr 目錄下的許多內容是可選的,但這些功能會使用戶使用系統更加有效。/usr 可容納許多大型的軟件包和它們的配置文件。
/var包含系統一般運行時要改變的數據。通常這些數據所在的目錄的大小是要經常變化或擴充的。原來/var目錄中有些內容是在/usr中的,但爲了保持/usr目錄的相對穩定,就把那些需要經常改變的目錄放到/var中了。每個系統是特定的,即不通過網絡與其他計算機共享。
常用命令命令提示符
[root@aliyun ~]#
[]:這是提示符的分隔符號,沒有特殊含義。
root:顯示的是當前的登錄用戶。
@:分隔符號,沒有特殊含義。
localhost:當前系統的簡寫主機名(完整主機名是localdomain)
~:代表用戶當前所在的目錄,此例中用戶當前所在的目錄是家目錄。
#:命令提示符。超級用戶是#,普通用戶是$
命令基本格式:[root@aliyun ~]# 命令 [選項] [參數]
目錄 or 文件操作ls :顯示目錄下的內容
[root@aliyun ~]# ls [選項] [文件名或目錄名]
-a:顯示所有文件
--color=when:支持顔色輸出,when的值默認是always(總顯示顔色),也可以是never(從不顯示顔色)和auto(自動)
-d:顯示目錄信息,而不是目錄下的文件
-h:人性化顯示,按照我們習慣的單位顯示文件大小
-i:顯示文件的i節點號
-l:長格式顯示
cd :切換所在目錄
[root@aliyun ~]# cd [路徑]
~ 代表用戶的家目錄
-代表上次所在目錄
. 代表當前目錄
.. 代表上級目錄
絕對路徑:以根目錄爲參照物,從根目錄開始,一級一級進入目錄
相對路徑:以當前目錄作爲參照物,進行目錄查找
pwd:查看當前所在路徑
[root@aliyun ~]# pwd
mkdir/rmkdir:創建(刪除)目錄
[root@aliyun ~]# mkdir/rmkdir [選項] 目錄名
-p:遞歸建立(刪除)所需目錄
rm:刪除文件(目錄)
[root@aliyun ~]# rm [選項] 目錄or文件名
-f 強制刪除(不二次詢問)
-i 刪除前會詢問用戶是否操作
-r/R遞歸刪除
-v 顯示指令的詳細執行過程
cp:複制文件(目錄)
[root@aliyun ~]# cp [選項] 源文件(目錄) 目標文件(目錄)
-f 若目標文件已存在,則會直接覆蓋原文件
-i 若目標文件已存在,則會詢問是否覆蓋
-p 保留源文件或目錄的所有屬性
-r 遞歸複制文件和目錄
-d 當複制符號連接時,把目標文件或目錄也建立爲符號連接,並指向與源文件或目錄連接的原始文件或目錄
-l 對源文件建立硬連接,而非複制文件
-s 對源文件建立符號連接,而非複制文件
-b 覆蓋已存在的文件目標前將目標文件備份
-v 詳細顯示cp命令執行的操作過程
-a 等價于“pdr”選項
mv:剪切目錄(文件)
[root@aliyun ~]# mv [選項] 源文件(目錄) 目標文件(目錄)
-i 若存在同名文件,則向用戶詢問是否覆蓋
-f 覆蓋已有文件時,不進行任何提示
-b 當文件存在時,覆蓋前爲其創建一個備份
-u 當源文件比目標文件新,或者目標文件不存在時,才執行移動此操作
touch:創建文件或修改文件時間戳
[root@aliyun ~]# touch [選項] 文件名
-a 改變檔案的讀取時間記錄
-m 改變檔案的修改時間記錄
-r 使用參考檔的時間記錄,與 --file 的效果一樣
-c 不創建新文件
-d 設定時間與日期,可以使用各種不同的格式
-t 設定檔案的時間記錄,格式與 date 命令相同
--no-create 不創建新文件
--help 顯示幫助信息
--version 列出版本訊息
stat:查看文件信息
[root@aliyun ~]# stat [選項] 文件名
-L 支持符號鏈接
-f 顯示文件系統的信息
-t 以簡潔的方式輸出
--help 顯示命令幫助信息
--version 顯示命令版本信息
cat:查看文件內容
[root@aliyun ~]# cat [選項] 文件名
-n 顯示行數(空行也編號)
-s 顯示行數(多個空行算一個編號)
-b 顯示行數(空行不編號)
-E 每行結束處顯示$符號
-T 將TAB字符顯示爲 ^I符號
-v 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
-e 等價于”-vE”組合
-t 等價于”-vT”組合
-A 等價于 -vET組合
--help 顯示幫助信息
--version 顯示版本信息
more:分頁顯示文件內容
[root@aliyun ~]# more [選項] 文件名
-num 指定每屏顯示的行數
-l more在通常情況下把 ^L 當作特殊字符, 遇到這個字符就會暫停,-l 選項可以阻止這種特性
-f 計算實際的行數,而非自動換行的行數
-p 先清除屏幕再顯示文本文件的剩余內容
-c 與-p相似,不滾屏,先顯示內容再清除舊內容
-s 多個空行壓縮成一行顯示
-u 禁止下劃線
+/pattern 在每個文檔顯示前搜尋該字(pattern),然後從該字串之後開始顯示
+num 從第 num 行開始顯示
less:分頁顯示文件內容
[root@aliyun ~]# less [選項] 文件名
-b 設置緩沖區的大小
-e 當文件顯示結束後自動退出
-f 強制打開文件
-g 只標志最後搜索的關鍵詞
-i 忽略搜索時的大小寫
-m 顯示閱讀進度百分比
-N 顯示每行的行號
-o 將輸出的內容在指定文件中保存起來
-Q 不使用警告音
-s 顯示連續空行爲一行
-S 在單行顯示較長的內容,而不換行顯示
-x 將TAB字符顯示爲指定個數的空格字符
more命令只能從前向後浏覽文件內容,而less命令則不僅能從前向後(PageDown鍵),還可以從後向前(PageUp鍵)浏覽文件內容,更加靈活。
head:顯示文件開頭內容
[root@aliyun ~]# less [選項] 文件名
-n <數字> 定義顯示行數
-c <數字> 指定顯示頭部內容的字符數
-v 總是顯示文件名的頭信息
-q 不顯示文件名的頭信息
tail:查看文件尾部內容
[root@aliyun ~]# tail [選項] 文件名
-c 輸出文件尾部的N(N爲整數)個字節內容
-f 持續顯示文件最新追加的內容
-F<N>與選項“-follow=name”和“--retry”連用時功能相同
-n<N>輸出文件的尾部N(N位數字)行內容
--retry 即是在tail命令啓動時,文件不可訪問或者文件稍後變得不可訪問,都始終嘗試打開文件。
--pid=<進程號> 與“-f”選項連用,當指定的進程號的進程終止後,自動退出tail命令
--help 顯示指令的幫助信息
--version 顯示指令的版本信息
ln:爲文件創建快捷方式
[root@aliyun ~]# ln [選項] 源文件名 文件名
-b 爲每個已存在的目標文件創建備份文件
-d 此選項允許“root”用戶建立目錄的硬鏈接
-f 強制創建鏈接,即使目標文件已經存在
-n 把指向目錄的符號鏈接視爲一個普通文件
-i 交互模式,若目標文件已經存在,則提示用戶確認進行覆蓋
-s 對源文件建立符號鏈接,而非硬鏈接
-v 詳細信息模式,輸出指令的詳細執行過程
歡迎各位夥伴在評論、留言指出不足之處。
聯系方式:mr_xuansu@163.com
更多內容請關注微信公衆號:萱蘓的運維日常