Linux基礎入門學習總結
之前一直以為Linux和Windows差不多,但是學習了Linux基礎入門之后才發現兩種操作系統之間差距非常大。
Linux只是在硬件之上的內核和系統調用,就連我們在Windows里習以為常的圖形界面都是Linux上的軟件。在使用Linux的時候,我們都習慣於使用終端和命令行進行操作,而不是像Windows那樣的圖形界面里的鼠標鍵盤的共同操作。物理機系統可通過[Ctrl]+[Alt]+[F1]~[F6]切換6個純命令行界面的終端,通過[Ctrl]+[Alt]+[F7]從終端切換回圖形界面。而且學習之后我才知道,Linux里面一切皆文件,相對於Windows里的文件后綴名區分文件類型,Linux不通過后綴名區分文件類型,可以通過file命令查看文件類型。
在使用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命令如果加上數字參數,可以指定從哪本手冊中搜索幫助。
- 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命令移動兩個文件時,其中一個文件名輸錯,不會影響其他文件的移動。