之前一直以為Linux和Windows差不多,但是學習了Linux基礎入門之後才發現兩種操作系統之間差距非常大。 Linux只是在硬體之上的內核和系統調用,就連我們在Windows里習以為常的圖形界面都是Linux上的軟體。在使用Linux的時候,我們都習慣於使用終端和命令行進行操作,而不是像Win ...
之前一直以為Linux和Windows差不多,但是學習了Linux基礎入門之後才發現兩種操作系統之間差距非常大。
Linux只是在硬體之上的內核和系統調用,就連我們在Windows里習以為常的圖形界面都是Linux上的軟體。在使用Linux的時候,我們都習慣於使用終端和命令行進行操作,而不是像Windows那樣的圖形界面里的滑鼠鍵盤的共同操作。物理機系統可通過[Ctrl]+[Alt]+[F1]~[F6]切換6個純命令行界面的終端,通過[Ctrl]+[Alt]+[F7]從終端切換回圖形界面。而且學習之後我才知道,Linux裡面一切皆文件,相對於Windows里的文件尾碼名區分文件類型,Linux不通過尾碼名區分文件類型,可以通過file命令查看文件類型。
大數據Linux資料分享群119599574
在使用Linux的時候,我們不直接和系統打交道,而是通過Shell(命令解析器)。Shell就像一個殼隱藏了操作系統的底層操作。通俗來講,Shell就是可以接受用戶輸入命令的程式。在UNIX/Linux中比較流行的常見的Shell有bash,zsh,ksh,csh等等,Ubuntu終端預設使用的是bash,預設的桌面環境是 GNOME或者Unity(基於 GNOME)。
在Linux系統中有很多十分方便的快捷命令。
-
Tab:可以用來補全命令、目錄、或者命令參數,連續按兩次還可顯示所有能匹配到的結果;
-
[Ctrl+C]:用來終止當前程式並且不退出終端;
-
[Ctrl+d]:鍵盤輸入結束或者退出終端;
-
[Ctrl+s]:暫定當前程式,暫停後按下任意鍵恢復運行;
-
[Ctrl+z]:將當前程式放到後臺運行,恢復到前臺命令為fg;
-
[Ctrl+a]:將游標移至行頭,相當於home,[Ctrl+e]相當於[end];
-
[Ctrl+k]:刪除從游標所在位置到行末;
-
[Alt+backspace]:向前刪除一個單詞;
-
[shift+pgup]:將終端顯示向上滾動,[shift+pgdn]向下滾動。
在Linux中,通配符主要是“*”和“?”,可用來對字元串進行模糊匹配,終端里的通配符由Shell完成。
Linux中還有一部分特別重要的命令:
- man命令:man命令是Linux中一個十分重要的幫助指令,內容包括電腦程式(庫和系統的調用),正式的標準和慣例,抽象的概念,通過執行man命令調用手冊頁。man命令手冊比較重要的是前三個:1.一般命令;2.系統調用;3.庫函數,涵蓋了C標準函數庫。man命令如果加上數字參數,可以指定從哪本手冊中搜索幫助。數據Linux資料分享群119599574
- ls命令:用於顯示當前目錄下的文件,可以通參數[-a]顯示隱藏文件(Linux下隱藏文件皆以‘.’開頭)。
- cd命令:Linux下一切皆文件,因此在終端中[cd]命令就顯得尤為重要。這個命令可以通過絕對路徑或者相對路徑進入到你想進去的目錄中。
- cp命令:用於終端中文件或目錄的複製操作。
- rm命令:用於終端中文件或目錄的刪除操作。
- cat命令:用於正序列印文件內容到終端,與之相反的tac命令倒序列印問價內容到終端。
- declare命令:用於聲名一個變數,用‘=’號賦值,用echo和$命令讀取變數的值。
Shell中運行的大部分命令都將以審理了的子進程的方式運行。環境變數有3種:1.當前Shell進程私有用戶自定義變數,只在當前Shell中有效;2.Shell本身內建的變數;3.從自定義變數導出的環境變數。
以下是部分實驗的截圖:
banner截圖
figlet截圖
給用戶添加用戶組並通過sudo命令獲得root許可權
黑客帝國
實驗過程中遇到的問題以及解決:
1、運行hello_shell.sh腳本文件時候報錯,原來是for之後少了一個空格,之後才知道Linux腳本文件裡面的空格不像C語言裡面的一樣能隨便增刪。
2、使用mv命令移動兩個文件時,其中一個文件名輸錯,再次執行移動命令時,說另一個文件不存在,之後發現另一個文件已經移動到目的目錄中。從而知道了使用mv命令移動兩個文件時,其中一個文件名輸錯,不會影響其他文件的移動。