Linux基礎命令(一)

萱蘇的運維日常 2024-03-20 14:50:08

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

更多內容請關注微信公衆號:萱蘓的運維日常

5 阅读:212