文章目錄
- 1.基本介紹和準備
- 2.基本指令和Linux的基本操作
- 3.幾個重要基本指令
- 3.1 `ls` - 列出文件和目錄
- 3.1.1文件的知識
- 3.1.2 `.和..`文件
- 3.2`pwd` - 顯示當前工作目錄
- 3.2.1路徑知識
- 3.3 `cd` - 切換目錄
- 3.4 `touch` - 創建文件或更新時間戳
- 3.5`mkdir` - 創建新目錄
- 3.6`rm` - 刪除文件或目錄
- 3.7`man` - 顯示命令手冊頁面
- 3.7.1手冊介紹
- 3.8`cp` - 復制文件或目錄
- 3.8.1nano介紹
- 3.9`mv` - 移動或重命名文件或目錄
1.基本介紹和準備
Linux是一種開源、免費的類Unix操作系統內核,其開發始于1991年,由芬蘭計算機科學家Linus Torvalds主導。Linux內核是操作系統的核心部分,而完整的操作系統則包括了Linux內核以及眾多的軟件工具和應用程序,形成了各種不同的Linux發行版(Distribution,簡稱"distro")
我們最為熟知的操作系統是Windows,它有著完整的圖形界面化操作,而Linux則是使用各種指令(很有程序員的感覺)
這里我學習使用的是云服務器+xshell的組合:
- 云服務器:市面上有很多,大家可按需選擇。這里我使用的操作系統是CentOS 7.6(基于Linux內核的一個操作系統發行版)
- xshell:Xshell 是一款 Windows 下的強大的終端模擬器和 SSH 客戶端。它主要用于遠程登錄和管理服務器
Linux的歷史發展也是極為龐大,這里我便不在繼續贅述,更多空間留給知識的介紹
2.基本指令和Linux的基本操作
-
指令
ssh root@[ip地址]
:通過 SSH(Secure Shell)協議連接到遠程服務器的命令- 輸入后按下回車再輸入密碼就好啦
-
指令
whoami
:就是Who am I? 它用于顯示當前登錄用戶的用戶名
- 指令
who
:顯示當前登錄到系統的用戶信息。這個命令的輸出包括登錄用戶的用戶名、終端、登錄時間等
- 第一列就是用戶名,我這里是root
- 第二列是第二列是終端(tty 表示物理控制臺,pts 表示偽終端,通常是通過SSH登錄的)
- 第三列是登錄時間
- 第四列可能顯示IP地址或主機名,表示從哪里登錄的
-
指令
clear
:除當前終端或控制臺上的屏幕內容,將終端窗口滾動至頂部(人如其名,就是clear) -
復制:Ctrl + insert
粘貼:Shift + insert
終止當前命令:Ctrl + C
XShell全屏:Alt + Enter
-
利用上下鍵跳轉之前輸入的指令
3.幾個重要基本指令
3.1 ls
- 列出文件和目錄
用法:ls [選項] [目錄]
- -a:列出目錄下的所有文件,包括以
.
開頭的隱含文件。隱含文件通常是系統文件或配置文件,以.
開頭表示隱藏。- -d:將目錄本身像文件一樣顯示,而不是顯示其下的文件。比如
ls -d 指定目錄
將只顯示指定目錄的信息,而不會列出目錄下的文件。- -l:以長格式(詳細信息)列出文件。這將顯示文件的權限、所有者、所屬組、文件大小、創建或修改時間等詳細信息。
- -n:用數字的 UID(用戶標識)和 GID(組標識)代替名稱。這對于顯示文件所有者和組的數字標識符而不是用戶名和組名很有用。
- -R:列出所有子目錄下的文件,即遞歸顯示目錄結構。
- -1:一行只輸出一個文件。這個選項通常用于在命令行中以一列的形式列出文件。
- -t:以時間排序。文件和目錄按照它們的修改時間進行排序,最新的文件會顯示在前面。
- -s:在文件名后輸出該文件的大小。這將以塊為單位顯示文件的大小。
- -F:在每個文件名后附上一個字符,表示文件的類型。例如,
*
表示可執行的普通文件,/
表示目錄,@
表示符號鏈接,|
表示 FIFOs(命名管道),=
表示套接字(sockets)
如果在使用 ls
命令時不指定目錄或文件名,它將默認列出當前工作目錄下的文件和子目錄,相當于ls .
示例:ls -l
total 4
表示當前目錄下所有文件的總塊數。這個總塊數是當前目錄下所有文件所占用磁盤空間的總和,以塊(block)為單位
3.1.1文件的知識
這樣的一個大小為0的文件,是不是就說明沒有占用空間呢?
在Windows上創建一個文本文件,即使文件大小為0KB,實際上也會占用一些磁盤空間。這是因為文件系統會為每個文件分配一個簇(Cluster)作為存儲單位,而簇的大小通常是4KB。即便文件內容為空,文件系統也需要至少一個簇來存儲文件的元數據和分配信息
文件 = 文件屬性 + 文件內容,我們對文件的操作要么對文件內容進行操作,要么對文件屬性進行操作
- 文件屬性: 包括文件的元數據,如文件名、大小、創建時間、修改時間、權限等。這些屬性描述了文件的基本信息和特征。
- 文件內容: 是文件的實際數據,通常是以二進制形式存儲的。這是文件的實際內容,可以是文本、圖像、音頻等不同類型的數據。
在進行文件操作時,我們可以執行以下兩類主要操作:
- 對文件內容的操作: 包括讀取、寫入、追加等操作,實際上是對文件中的二進制數據進行處理。這是我們通常所說的文件讀寫操作。
- 對文件屬性的操作: 包括修改文件名、更改權限、設置時間戳等。這類操作更多地關注文件的元數據。
3.1.2 .和..
文件
Linux和Unix系統中,隱藏文件以
.
開頭,例如.example.txt
。這樣的文件在默認情況下不會被ls
命令列出。如果想要顯示所有文件,包括隱藏文件,可以使用ls -a
命令,其中-a
選項表示顯示所有文件,包括以.
開頭的隱藏文件
.
(當前目錄):.
代表當前目錄。在命令行或文件系統中,使用.
表示當前所在的目錄。例如,如果你執行ls .
,它將列出當前目錄下的文件和子目錄。這對于明確指定當前工作目錄是很有用的。
..
(上級目錄):..
代表上一級目錄。在文件系統中,使用..
表示當前目錄的父目錄。例如,如果你執行cd ..
,它將把當前目錄切換到上一級目錄。這在導航文件系統時很有用
3.2pwd
- 顯示當前工作目錄
語法: pwd
功能: pwd
(print working directory)命令用于顯示當前工作目錄的完整路徑
3.2.1路徑知識
- 絕對路徑
絕對路徑是從文件系統的根目錄開始描述文件或目錄的路徑。在Linux中,根目錄用斜杠 /
表示,而在Windows中,每個驅動器都有自己的根目錄,例如 C:\
。絕對路徑可以唯一地標識文件系統中的某個位置,不受當前工作目錄的影響。
/home/user/documents/file.txt
- 相對路徑
相對路徑是相對于當前工作目錄或其他已知位置的路徑。相對路徑不包含根目錄信息,而是描述如何從當前位置導航到目標文件或目錄。在相對路徑中,使用 .
表示當前目錄,使用 ..
表示上級目錄。
../images/picture.jpg
這個示例中,..
表示上級目錄,因此路徑指向當前目錄的上一級目錄下的 images
目錄中的 picture.jpg
文件
- 文件路徑和目錄路徑
路徑可以是文件路徑或目錄路徑,具體取決于路徑的最后一部分是指向文件還是目錄。
- 分隔符
在Linux中,路徑分隔符是正斜杠 /
,而在Windows中,路徑分隔符是反斜杠 \
。大多數現代操作系統和文件系統能夠接受使用正斜杠或反斜杠表示的路徑。
- 絕對路徑 vs. 相對路徑
- 絕對路徑:
- 完整指定文件或目錄的位置,不依賴于當前工作目錄。
- 在不同系統上通常具有更好的可移植性。
- 更適合用于腳本和程序中,確保穩定性。
- 相對路徑:
- 相對于當前工作目錄或其他已知位置,更簡潔。
- 在文件移動或項目結構變化時可能更易維護。
- 相對路徑可能會受到當前工作目錄的變化而產生影響。
- 特殊目錄表示法
.
表示當前目錄。..
表示上級目錄
3.3 cd
- 切換目錄
語法:cd 目錄名
功能:改變工作目錄。將當前工作目錄改變到指定的目錄下(絕對和相對路徑都行)
Linux的目錄結構是一個多叉樹
3.4 touch
- 創建文件或更新時間戳
語法:touch [選項] 文件
功能:touch命令參數可更改文檔或目錄的日期時間,包括存取時間和更改時間,或者新建一個不存在的文件。
- -a 或 --time=atime 或 --time=access 或 --time=use:只更改文件的訪問時間。
- -c 或 --no-create:不建立任何文檔。
- -d:使用指定的日期時間,而非當前時間。
- -f:此參數將忽略不予處理,僅負責解決BSD版本
touch
指令的兼容性問題。- -m 或 --time=mtime 或 --time=modify:只更改文件的修改時間。
- -r:把指定文檔或目錄的日期時間,設成和參考文檔或目錄的日期時間相同。
- -t:使用指定的日期時間,而非當前時間
3.5mkdir
- 創建新目錄
語法:mkdir [選項] dir_name
功能:在當前目錄下創建一個名為 dir_name
的目錄
- -p, --parents 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項后,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄
-
創建單個目錄:
mkdir new_directory
-
創建多個目錄:
mkdir dir1 dir2 dir3
-
遞歸創建目錄及其父目錄:
mkdir -p parent_directory/child_directory
3.6rm
- 刪除文件或目錄
語法:rm [選項] [dir_name/dir]
功能:刪除文件或目錄
-f 即使文件屬性為只讀(即寫保護),亦直接刪除
-i 刪除前逐一詢問確認
-r 刪除目錄及其下所有文件(
r
代表遞歸)
示例:
-
刪除單個文件:
rm file.txt
-
刪除多個文件:
rm file1.txt file2.txt
-
遞歸刪除目錄及其內容:
rm -r directory
-
強制刪除,不提示:
rm -f file.txt
3.7man
- 顯示命令手冊頁面
語法: man [選項] 命令
功能:Linux的命令有很多參數,我們不可能全記住,我們可以通過查看聯機手冊獲取幫助
-k 根據關鍵字搜索聯機幫助
num 只在第num章節找
-a 將所有章節的都顯示出來,比如 man printf 它缺省從第一章開始搜索,知道就停止,用a選項,當按下q退出,他會繼續往后面搜索,直到所有章節都搜索完畢
3.7.1手冊介紹
Unix/Linux 系統手冊頁的八個主要部分的簡要說明:
- 第一章(1):普通命令
- 包含了系統中可供一般用戶使用的常規命令的手冊頁。這包括各種常見的命令,如
ls
、cp
、mv
等。
- 第二章(2):系統調用
- 包含了系統調用的手冊頁,系統調用是應用程序與操作系統內核之間的接口。這些手冊頁通常提供有關如何使用系統調用以及調用所需的頭文件信息。
- 第三章(3):庫函數
- 包含了 C 庫函數的手冊頁,這些函數由標準 C 庫提供。這包括如
printf
、scanf
、malloc
等函數的詳細信息。
- 第四章(4):特殊文件
- 包含有關特殊文件(通常在
/dev
目錄下)的手冊頁。這些文件代表設備,手冊頁描述了如何與這些設備文件進行交互。
- 第五章(5):文件格式
- 包含有關文件格式的手冊頁。這包括配置文件、數據文件等,如
/etc/passwd
,其中說明了文件中各字段的含義。
- 第六章(6):游戲
- 預留給游戲使用,包含了與游戲相關的手冊頁。
- 第七章(7):附錄和雜項
- 包含一些附加信息,如全局變量的說明,以及一些其他雜項。
- 第八章(8):系統管理命令
- 包含了僅供系統管理員(root 用戶)使用的系統管理命令的手冊頁。這包括諸如
ifconfig
、mount
、shutdown
等命令的詳細信息。每個章節都包含了對應類型的手冊頁,通過
man
命令可以方便地訪問和閱讀這些手冊頁,以獲取有關命令、函數、文件和系統的詳細信息
3.8cp
- 復制文件或目錄
語法:cp [選項] 源文件或目錄 目標文件或目錄
功能: 復制文件或目錄
-
cp指令用于復制文件或目錄,如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,
則它會把前面指定的所有文件或目錄復制到此目錄中。若同時指定多個文件或目錄,而最后的目的地并非一個已存
在的目錄,則會出現錯誤信息
-f 或 --force 強行復制文件或目錄, 不論目的文件或目錄是否已經存在
-i 或 --interactive 覆蓋文件之前先詢問用戶
-r遞歸處理,將指定目錄下的文件與子目錄一并處理。若源文件或目錄的形態,不屬于目錄或符號鏈接,則一律視為普通文件處理
-R 或 --recursive遞歸處理,將指定目錄下的文件及子目錄一并處理
- 我們還可以進行重命名
3.8.1nano介紹
nano
- 文本編輯器
用法:nano [選項] 文件名
常用選項:
- -c,–const:禁用控制鍵位。
- -r,–restricted:限制訪問,避免執行危險操作。
- -w,–nowrap:禁用自動換行。
基本操作:
- Ctrl + O:保存文件。
- Ctrl + X:退出編輯器。
- Ctrl + G:獲取幫助。
示例:
-
打開或創建文件進行編輯:
nano filename.txt
-
保存文件并退出:
- 按
Ctrl + O
,然后按Enter
保存文件。 - 按
Ctrl + X
退出編輯器。
- 按
nano
是一個簡單易用的文本編輯器,適用于終端環境。它提供了基本的編輯功能,適合快速查看和編輯文本文件
3.9mv
- 移動或重命名文件或目錄
mv命令是move的縮寫,可以用來移動文件或者將文件改名(move (rename) files),是Linux系統下常用的命令,經常用來備份文件或者目錄。
語法: mv [選項] 源文件或目錄 目標文件或目錄
功能:
-
視mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中。
-
當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標文件名。
-
當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個,mv命令將各參數指定的源文件均移至目標目錄中。
-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋
-i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋
- 移動
- 改名
這次Linux就先到這里啦,也是開始學Linux啦,關心大家支持!!!