Linux學習第一天 1.使用VM安裝RHEL7.0 具體參見劉遄老師的《Linux就該怎麼學》https://www.linuxprobe.com/chapter 01.html 2.RPM(紅帽軟體包管理器) RPM通過將安裝規則與源代碼打包在一起,來降低軟體的安裝難度。 RPM = 源代碼 + ...
Linux學習第一天
1.使用VM安裝RHEL7.0
具體參見劉遄老師的《Linux就該怎麼學》https://www.linuxprobe.com/chapter-01.html
2.RPM(紅帽軟體包管理器)
RPM通過將安裝規則與源代碼打包在一起,來降低軟體的安裝難度。
RPM = 源代碼 + 安裝規則
3.Yum軟體倉庫
通過將大量常用的RPM軟體存放在一起,解決軟體安裝之間的依賴關係,進一步降低軟體的安裝難度。
4.systemd初始化進程
4-1 Linux系統的開機過程
BIOS ->Boot Loader ->系統內核->內核初始化->啟動初始化進程
這裡的初始化進程即systemd。
systemd採用併發啟動機制,開機速度提升不小。
4-2 systemctl
RHEL7.0系統使用systemclt命令來管理服務。
主要命令:
命令 | 作用 |
---|---|
systemctl start foo.service | 啟動服務 |
systemctl restart foo.service | 重啟服務 |
systemctl stop foo.service | 關閉服務 |
systemctl status foo.service | 查看服務狀態 |
systemctl enable foo.service | 開機自啟 |
systemctl disable foo.service | 關閉開機自啟 |
systemctl is-enable foo.service | 查看是否開機自啟 |
5.Shell
5-1 什麼是shell?
Shell(也稱為終端或殼)充當的是人與內核(硬體)之間的翻譯官,用戶把一些命令“告訴”終端,它就會調用相應的程式服務去完成某些工作。現在包括紅帽系統在內的許多主流Linux系統預設使用的終端是Bash(Bourne-Again SHell)解釋器。主流Linux系統選擇Bash解釋器作為命令行終端主要有以下4項優勢:
1:通過上下方向鍵來調取過往執行過的Linux命令;
2:命令或參數僅需輸入前幾位就可以用Tab鍵補全;
3:具有強大的批處理腳本;
4:具有實用的環境變數功能。
5-2 執行查看幫助命令
常見Linux命令格式:
命令名稱 [命令參數] [命令對象]
註意,命令名稱、命令參數、命令對象之間請用空格鍵分隔。
命令參數分長格式和短格式:
短格式 : -字母 -a -l -s
長格式 : -單詞 -all - list -sort
只有短格式參數可以合併,例如 ps -aux = ps -a -u -x
5-3 常用系統工作命令
echo命令
echo命令用於在終端輸出字元串或變數提取後的值,格式為“echo [字元串 | $變數]”。
例如,把指定字元串“Linuxprobe.com”輸出到終端屏幕的命令為:
[root@linuxprobe ~]# echo Linuxprobe.com
該命令會在終端屏幕上顯示如下信息:
Linuxprobe.com
下麵,我們使用$變數的方式提取變數SHELL的值,並將其輸出到屏幕上:
[root@linuxprobe ~]# echo $SHELL
/bin/bash
date命令
date命令用於顯示及設置系統的時間或日期,格式為“date [選項] [+指定的格式]”。
只需在強大的date命令中輸入以“+”號開頭的參數,即可按照指定格式來輸出系統的時間或日期,這樣在日常工作時便可以把備份數據的命令與指定格式輸出的時間信息結合到一起。例如,把打包後的文件自動按照“年-月-日”的格式打包成“backup-2017-9-1.tar.gz”,用戶只需要看一眼文件名稱就能大概瞭解到每個文件的備份時間了。date命令中常見的參數格式及作用如表所示。
命令 | 作用 |
---|---|
%t | 跳格[Tab鍵] |
%H | 小時(00~23) |
%I | 小時(00~12) |
%M | 分鐘(00~59) |
%S | 秒(00~59) |
%j | 今年中的第幾天 |
按照預設格式查看當前系統時間的date命令如下所示:
[root@linuxprobe ~]# date
Mon Aug 24 16:11:23 CST 2017
按照“年-月-日 小時:分鐘:秒”的格式查看當前系統時間的date命令如下所示:
[root@linuxprobe ~]# date "+%Y-%m-%d %H:%M:%S"
2017-08-24 16:29:12
將系統的當前時間設置為2017年9月1日8點30分的date命令如下所示:
[root@linuxprobe ~]# date -s "20170901 8:30:00"
Fri Sep 1 08:30:00 CST 2017
再次使用date命令並按照預設的格式查看當前的系統時間,如下所示:
[root@linuxprobe ~]# date
Fri Sep 1 08:30:01 CST 2017
date命令中的參數%j可用來查看今天是當年中的第幾天。這個參數能夠很好地區分備份時間的新舊,即數字越大,越靠近當前時間。該參數的使用方式以及顯示結果如下所示。
[root@linuxprobe ~]# date "+%j"
244
reboot命令
reboot命令用於重啟系統,其格式為reboot。
由於重啟電腦這種操作會涉及硬體資源的管理許可權,因此預設只能使用root管理員來重啟,其命令如下:
[root@linuxprobe ~]# reboot
poweroff命令
poweroff命令用於關閉系統,其格式為poweroff。
該命令與reboot命令相同,都會涉及硬體資源的管理許可權,因此預設只有root管理員才可以關閉電腦,其命令如下:
[root@linuxprobe ~]# poweroff
wget命令
wget命令用於在終端中下載網路文件,格式為“wget [參數] 下載地址”。
ps命令
ps命令用於查看系統中的進程狀態,格式為“ps [參數]”。
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
進程的所有者 | 進程ID號 | 運算器占用率 | 記憶體占用率 | 虛擬記憶體使用量(單位是KB) | 占用的固定記憶體量(單位是KB) | 所在終端 | 進程狀態 | 被啟動的時間 | 實際使用CPU的時間 | 命令名稱與參數 |
root | 1 | 0.0 | 0.4 | 53684 | 7628 | ? | Ss | 07:22 | 0:02 | /usr/lib/systemd/systemd |
root | 2 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:22 | 0:00 | [kthreadd] |
root | 3 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:22 | 0:00 | [ksoftirqd/0] |
root | 5 | 0.0 | 0.0 | 0 | 0 | ? | S< | 07:22 | 0:00 | [kworker/0:0H] |
root | 7 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:22 | 0:00 | [migration/0] |
top命令
top命令用於動態地監視進程活動與系統負載等信息,其格式為top。
pidof命令
pidof命令用於查詢某個指定服務進程的PID值,格式為“pidof [參數] [服務名稱]”。
每個進程的進程號碼值(PID)是唯一的,因此可以通過PID來區分不同的進程。例如,可以使用如下命令來查詢本機上sshd服務程式的PID:
[root@linuxprobe ~]# pidof sshd
2156
kill命令
kill命令用於終止某個指定PID的服務進程,格式為“kill [參數] [進程PID]”。
接下來,我們使用kill命令把上面用pidof命令查詢到的PID所代表的進程終止掉,其命令如下所示。這種操作的效果等同於強制停止sshd服務。
[root@linuxprobe ~]# kill 2156
killall命令
killall命令用於終止某個指定名稱的服務所對應的全部進程,格式為:“killall [參數] [服務名稱]”。
通常來講,複雜軟體的服務程式會有多個進程協同為用戶提供服務,如果逐個去結束這些進程會比較麻煩,此時可以使用killall命令來批量結束某個服務程式帶有的全部進程。下麵以httpd服務程式為例,來結束其全部進程。由於RHEL7系統預設沒有安裝httpd服務程式,因此大家此時只需看操作過程和輸出結果即可,等學習了相關內容之後再來實踐。
[root@linuxprobe ~]# pidof httpd
13581 13580 13579 13578 13577 13576
[root@linuxprobe ~]# killall httpd
[root@linuxprobe ~]# pidof httpd
[root@linuxprobe ~]#
如果我們在系統終端中執行一個命令後想立即停止它,可以同時按下Ctrl + C組合鍵(生產環境中比較常用的一個快捷鍵),這樣將立即終止該命令的進程。或者,如果有些命令在執行時不斷地在屏幕上輸出信息,影響到後續命令的輸入,則可以在執行命令時在末尾添加上一個&符號,這樣命令將進入系統後臺來執行。