1. 程式人生 > >從零開始的Linux學習日誌

從零開始的Linux學習日誌

從零開始的Linux學習日誌

從零開始的Linux學習生活

作為一個電子科學與技術專業的大四應屆生,本科實在太難沒法找工作,想著靠著之前一點程式設計底子去應聘個程式設計師,結果面試的時候被問的一臉茫然。痛定思痛決定從零開始補全作為一名程式設計師的基本素養,總之就從面試裡頻繁問到的Linux開始吧!

搭建環境

因為之前有過嵌入式的開發經驗,所以輕車熟路的安裝了VMware Workstation Pro。學習參考的書籍是劉老師的《Linux就應該這麼學》,所以安裝了RHEL7系統。(昨天剛安裝了RHEL今天就在新聞裡看到紅帽被IBM收購的訊息,也是種緣分吧)

常見的Linux指令

1. echo

echo指令用於在shell中列印變數的值或直接輸出字串。

  • 語法

echo (選項) (引數)

  • 選項

-e :啟用轉義符

當使用-e時,若字串中出現以下字元,則特別加以處理,而不會將它當成一般文字輸出。
\a 發出警告聲;
\b 刪除前一個字元;
\c 最後不加上換行符號;
\f 換行但游標仍舊停留在原來的位置;
\n 換行且游標移至行首;
\r 游標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\ 插入\字元;
\nnn 插入nnn(八進位制)所代表的ASCII字元;
此外還可以設定列印的文字顏色,背景色,文字閃動等效果

2.date

date指令用於顯示或設定系統的時間

  • 語法

date (選項) (引數)

  • 選項

-d<字串>:顯示字串所指的日期與時間。字串前後必須加上雙引號;
-s<字串>:根據字串來設定日期與時間。字串前後必須加上雙引號;
-u:顯示GMT;
–help:線上幫助;
–version:顯示版本資訊。

注:命令引數有長格式與短格式,分別以–和-為字首,比如man --helpman -h相同

  • 引數

<+時間日期格式>

  • 時間日期格式字串列表

%H 小時,24小時制(00~23)
%I 小時,12小時制(01~12)
%k 小時,24小時制(0~23)
%l 小時,12小時制(1~12)
%M 分鐘(00~59)
%p 顯示出AM或PM
%r 顯示時間,12小時制(hh:mm:ss %p)
%s 從1970年1月1日00:00:00到目前經歷的秒數
%S 顯示秒(00~59)
%T 顯示時間,24小時制(hh:mm:ss)
%X 顯示時間的格式(%H:%M:%S)
%Z 顯示時區,日期域(CST)
%a 星期的簡稱(Sun~Sat)
%A 星期的全稱(Sunday~Saturday)
%h,%b 月的簡稱(Jan~Dec)
%B 月的全稱(January~December)
%c 日期和時間(Tue Nov 20 14:12:58 2012)
%d 一個月的第幾天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第幾天(001~366)
%m 月份(01~12)
%w 一個星期的第幾天(0代表星期天)
%W 一年的第幾個星期(00~53,星期一為第一天)
%y 年的最後兩個數字(1999則是99)

  • 舉例

按預設格式輸出時間

[[email protected] Desktop]# date
Tue Oct 30 22:18:05 CST 2018

按指定格式輸出

[[email protected] Desktop]# date +"%Y-%m-%d"
2018-10-30

輸出昨天的日期

[[email protected] Desktop]# date -d “1 day ago” +"%Y-%m-%d"
2018-10-29

3.reboot和poweroff

分別為重啟與關閉電源指令,因為涉及硬體資源的管理許可權,所以只能在root身份下使用
兩者具有類似的命令選項
reboot的命令選項

-d:重新開機時不把資料寫入記錄檔案/var/tmp/wtmp。本引數具有“-n”引數效果;
-f:強制重新開機,不呼叫shutdown指令的功能;
-i:在重開機之前,先關閉所有網路介面;
-n:重開機之前不檢查是否有未結束的程式;
-w:僅做測試,並不真正將系統重新開機,只會把重開機的資料寫入/var/log目錄下的wtmp記錄檔案。

poweroff的命令選項

-n:關閉作業系統時不執行sync操作;
-w:不真正關閉作業系統,僅在日誌檔案“/var/log/wtmp”中;
-d:關閉作業系統時,不將操作寫入日誌檔案“/var/log/wtmp”中新增相應的記錄;
-f:強制關閉作業系統;
-i:關閉作業系統之前關閉所有的網路介面;
-h:關閉作業系統之前將系統中所有的硬體設定為備用模式。

4.其他重要指令

這篇blog寫到這裡突然又有了新的感悟。其實最初想寫這篇文章是因為自己之前學習的太過囫圇,學到後面發現用到的指令都不記得是什麼作用。但通過重新仔細學習前面三條指令之後,又意識到其實指令的本質就是

命令名稱 [命令選項] [命令引數]

試圖一口氣將所有命令的選項引數都記住顯然是不現實的,因為我查了一下發現有些命令的選項引數比我想象中還要多很多,比如wget命令,它是用來從指定的URL中下載檔案,而它的選項根據不同需求有十來種。所以正確的學習方法,應該是先記住各個指令的基本功能,知道有這麼個東西,然後在將來的學習工作中遇到之後再去查詢具體的使用方法。
除了前面的幾條指令之外,還有以下這些比較重要的指令:
ps [選項]用於檢視系統的程序狀態。
top [選項]用於動態的檢視系統程序狀態,類似於Windows系統中的工作管理員。
pidof [選項] [引數]用於檢視指定服務程序的PID值(程序號碼值)。
kill [選項] [引數]用於結束某指定PID的服務程序。
killall [選項] [引數]用於結束指定名稱的服務所對應的所有程序。
ifconfig [引數]用於配置和顯示Linux核心中網路介面的網路引數(類似於Windows中的ipconfig)。
uname [選項]用於顯示當前系統核心與系統版本等的相關資訊。
uptime [選項]用於顯示系統執行時間與系統負載資訊。
free [選項] 可以顯示當前系統未使用的和已使用的記憶體數目,還可以顯示被核心使用的記憶體緩衝區。一般使用命令選項-h優化顯示。
who [選項] [引數]用於顯示目前登陸系統的使用者資訊。一般使用命令選項-H優化顯示。
last [選項] [引數]用於顯示系統使用者的登陸資訊。
history [選項] [引數]用於顯示歷史執行過的命令。
sosreport用於收集系統配置及架構資訊並輸出診斷文件,格式為sosreport。該命令在RHEL源中已經整合有了所以可以直接使用,部分Linux系統需要從yum中安裝之後才能使用。
pwd [選項]用於顯示使用者當前所處的工作目錄。
cd [選項] [引數]用於進入指定的工作目錄。~表示使用者主目錄.表示當前目錄表示當前目錄位置的上一層目錄
ls [選項] [引數]顯示目錄中的檔案資訊。
cat [選項] [引數]用於顯示純文字檔案。一般用於內容較少的檔案。
more [選項] [引數]同樣用於顯示純文字檔案,一般用於內容較多的檔案,可翻頁檢視檔案內容。
head [選項] [引數]用於顯示檔案的前N行。
tail [選項] [引數]用於顯示檔案的後N行或持續重新整理內容。檢視持續重新整理內容的命令選項為-f
tr [選項] [引數]用於對文字中的字元進行替換、壓縮和刪除。
wc [選項] [引數]用於顯示檔案的行數、字數、位元組數等。
stat [選項] [引數]用於顯示檔案的狀態資訊。比ls顯示的更加詳細。
cut [選項] [引數]用於顯示行中的指定部分,刪除檔案中指定欄位。cut經常用來顯示檔案的內容。
diff [選項] [引數]在最簡單的情況下,比較給定的兩個檔案的不同。如果使用-代替檔案引數,則要比較的內容將來自標準輸入。diff命令是以逐行的方式,比較文字檔案的異同處。如果該命令指定進行目錄的比較,則將會比較該目錄中具有相同檔名的檔案,而不會對其子目錄檔案進行任何比較操作。
touch [選項] [引數]用於建立空白檔案或設定檔案的時間。
mkdir [選項] [引數]用於建立目錄。
cp [選項] [引數]用於複製檔案或目錄,引數為原始檔 目標檔案
mv [選項] [引數]用於剪下檔案或重新命名。
rm [選項] [引數]用於刪除檔案或目錄。
dd [選項] [引數]用於按照指定大小和個數的資料塊來複制檔案或轉換檔案。
file [選項] [引數]用於測定給定檔案的型別。
tar [選項] [引數]用於為Linux的檔案和目錄建立檔案。利用該命令可以將一大堆檔案打包為一個檔案。打包與壓縮為兩個不同的概念,前者為將一堆檔案打包為一個檔案,後者為通過壓縮演算法將一個大檔案變為小檔案。
grep [選項] [引數]用於在文字中搜索執行關鍵詞搜尋。
find [選項] [引數]用於按照指定條件來查詢檔案。

小結

寫到這裡之後想法很多,首先開始擔心自己寫這麼多是不是其實還是無用功,但終究還是相信自己的努力不會白費,通過回顧今天學的這些命令的功能以及使用方式,理解了命令的結構其實就是名稱 + 選項 + 引數,萬變不離其宗,只要掌握了幾個常用的命令的功能,在今後學習工作中遇到了就可以用man 命令來查詢具體的選項和引數。
另外還是要感謝劉遄老師無私分享的免費的RHEL系統的教程,感謝他我才能開始這樣零基礎的學習Linux。

參考資料來源:
《Linux就該這麼學》https://www.linuxprobe.com/
Linux命令大選(手冊)http://man.linuxde.net/