1. 程式人生 > >Linux命令列操作基礎練習

Linux命令列操作基礎練習

linux是支援多國語言的,terminal在預設的情況下,無法支援以中文編碼輸出資料的.這個時候,我們就得將支援語系改為英文,才能以英文顯示出正確的訊息

1,顯示目前所支援的語系

[[email protected] ~]$ locale
LANG=zh_TW.utf8 # 語言語系的輸出
LC_CTYPE="zh_TW.utf8" # 下面為許多資訊的輸出使用的特別語系
LC_NUMERIC=zh_TW.UTF-8
LC_TIME
=zh_TW.UTF-8 # 時間方面的語系資料 LC_COLLATE="zh_TW.utf8"

LC_ALL=    # 全部的資料同步更新的設定值

2,修改語系為英文語系

$ LANG=en_US.utf-8
$ export LC_ALL=en_US.utf-8
# LANG 只與輸出訊息有關,若需要更改其他不同的資訊,要同步更新 LC_ALL才行

 

顯示日期與時間的指令: date

顯示日曆的指令: cal

簡單好用的計算機: bc

[[email protected] ~]$ date
Fri May 29 14:32:01 CST 2015

date的格式化輸出

$ date +%Y/%m/%d
2018/07/08
$ date +%H:%M
18:14

 

顯示日曆的指令: cal

[[email protected] ~]$ cal
May 2015
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

 

cal 2015 會顯示正年的日曆

cal [month] [year] 檢視某年某月的月曆

 

計算機: bc

[[email protected] ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
_ <==這個時候,游標會停留在這裡等待你的輸入
[[email protected] ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 1+2+3+4 <==只有加法時
107-8+3
210*52
520 10%3 <==計算“餘數”
110^2
100 10/100 <==這個最奇怪!不是應該是 0.1 嗎?
0quit <==離開 bc 這個計算器
計算機

bc預設僅輸出整數,如果要輸出小數點下位數,那麼就必須要執行scale=number,那個number就是小數點的位數

scale=3 <==沒錯!就是這裡!!
1/3
.333 340/2349
.144 quit

 

幾個重要的熱鍵[Tab], [ctrl]-c, [ctrl] - d

[Tab]: 命令補全功能與檔案補齊,雙擊[Tab]會顯示可以操作的命令

在這一版的 CentOS 7.x 當中,由於多了一個名為 bash_completion 的軟體,這個軟體會主動的去偵測“各個指令可以下達的選項與參
數”等行為, 因此,那個“檔案補齊”的功能可能會變成“選項、引數補齊”的功能,不一定會主動補齊檔名了喔
View Code

[ctrl]-c: 終止正在執行的命令

[ctrl]-d: 離開命令,代替exit

[shift]+{[pageup]|[pagedown]} : 翻頁

 

Linux系統的線上求助man page與info page

 

指令的 --help求助說明

[[email protected] ~]# date --help
Usage: date [OPTION]... [+FORMAT] # 這裡有基本語法
or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] # 這是設定時間的語法
Display the current time in the given FORMAT, or set the system date.
# 下面是主要的選項說明
Mandatory arguments to long options are mandatory for short options too.
-d, --date=STRING display time described by STRING, not 'now'
-f, --file=DATEFILE like --date once for each line of DATEFILE
....(中間省略).... -u, --utc, --universal print or set Coordinated Universal Time (UTC)
--help 顯示此求助說明並離開
--version 顯示版本資訊並離開
# 下面則是重要的格式 (FORMAT) 的主要專案
FORMAT controls the output. Interpreted sequences are:
%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
....(中間省略)....
# 下面是幾個重要的範例 (Example)
Examples:
Convert seconds since the epoch (1970-01-01 UTC) to a date
$ date --date='@2147483647'
....(下面省略)....
--help

man page

[[email protected] ~]$ LANG="en_US.utf8"
# 還記得這個咚咚的用意吧?前面提過了,是為了“語系”的需要啊!下達過一次即可!
[[email protected] ~]$ man date
DATE(1) User Commands DATE(1# 請注意上面這個括號內的數字
NAME <==這個指令的完整全名,如下所示為date且說明簡單用途為設定與顯示日期/時間
date - print or set the system date and time
SYNOPSIS <==這個指令的基本語法如下所示
date [OPTION]... [+FORMAT] <==第一種單純顯示的用法
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] <==這種可以設定系統時間的用法
DESCRIPTION <==詳細說明剛剛語法談到的選項與引數的用法
Display the current time in the given FORMAT, or set the system date.
Mandatory arguments to long options are mandatory for short options too.
-d, --date=STRING <==左邊-d為短選項名稱,右邊--date為完整選項名稱
display time described by STRING, not 'now'
-f, --file=DATEFILE
like --date once for each line of DATEFILE
-I[TIMESPEC], --iso-8601[=TIMESPEC]
output date/time in ISO 8601 format. TIMESPEC='date' for date only (the
default), 'hours', 'minutes', 'seconds', or 'ns' for date and time to the
indicated precision.
....(中間省略)....
# 找到了!下面就是格式化輸出的詳細資料!
FORMAT controls the output. Interpreted sequences are:
%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
....(中間省略)....
ENVIRONMENT <==與這個指令相關的環境引數有如下的說明
TZ Specifies the timezone, unless overridden by command line parameters.
If neither is specified, the setting from /etc/localtime is used.
EXAMPLES <==一堆可用的範本
Convert seconds since the epoch (1970-01-01 UTC) to a date
$ date --date='@2147483647'
....(中間省略)....
DATE STRING <==上面曾提到的 --date 的格式說明!
The --date=STRING is a mostly free format human readable date string such as "Sun, 29
Feb 2004 16:21:42 -0800" or "2004-02-29 16:21:42" or even "next Thursday". A date
string may contain items indicating calendar date, time of day, time zone, day of
AUTHOR <==這個指令的作者啦!
Written by David MacKenzie.
COPYRIGHT <==受到著作權法的保護!用的就是 GPL 了!
Copyright © 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or
later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WAR‐
RANTY, to the extent permitted by law.
SEE ALSO <==這個重要,你還可以從哪裡查到與date相關的說明文件之意
The full documentation for date is maintained as a Texinfo manual. If the info and
date programs are properly installed at your site, the command
info coreutils 'date invocation'
should give you access to the complete manual.
GNU coreutils 8.22 June 2014 DATE(1)
man page

 

代號的不同含義

 

代號 代表內容
1* 使用者在shell環境中可以操作的指令或可可執行檔案
2 系統核心可呼叫的函式與工具等
3 一些常用的函式(function)與函式庫(library),大部分為c的函式庫(libc)
4 裝置檔案的說明
5* 配置檔案或者是某些檔案的格式
6 遊戲
7 慣例與協定等,例如Linux檔案系統,網路協定,asciicode等等說明
8* 系統管理員可用的管理指令
9 跟kernel有關的檔案

 

 

 

 

 

 

 

 

 

NAME : 簡短的指令,資料名稱說明

SYNOPSIS : 簡短的指令下達語法(syntax)簡介

DESCRIPTION : 較為完整的說明,這部分最好仔細看看

OPTIONS : 針對SYNOPSIS部分中,有例舉的所有可用的選項說明

COMMANDS : 當這個程式(軟體)在執行的時候,可以再次程式(軟體)中下達命令

FILFES : 這個程式或資料所是用或引數或連線到的某個檔案

SEE ALSO : 可以參考的,跟這個指令或資料有相關的其他說明

EXAMPLE : 一些可以參考的範例
date的說明

輸入/可以開始輸入搜尋字串

 

按鍵 進行工作
空白鍵 向下翻一頁
[pgDn] 一行一行的
[pgUp] 同上
[Home] 第一頁
[end] 最後一頁
/string 向下搜尋string這個字串
?string 向上搜尋string這個字串
n,N 繼續下一個或者反向查詢
q 退出page

 

 

 

 

 

 

 

 

 

 

搜尋特定指令/檔案的manpage說明文件

man -f man

獲取更多的man相關的資訊

man -k man

獲取有man這個關鍵字的所有

其他有用的檔案(document)

目錄: /usr/share/doc

資料同步寫入磁碟: sync

su - 切換使用者

shutdown 關機的一些引數

[[email protected] ~]# /sbin/shutdown [-krhc] [時間] [警告訊息] 選項與引數:
-k : 不要真的關機,只是傳送警告訊息出去!
-r : 在將系統的服務停掉之後就重新開機(常用)
-h : 將系統的服務停掉後,立即關機。 (常用)
-c : 取消已經在進行的 shutdown 指令內容。
時間 : 指定系統關機的時間!時間的範例下面會說明。若沒有這個專案,則預設 1 分鐘後自動進行。
shutdown引數
[[email protected] ~]# shutdown -h now 立刻關機,其中 now 相當於時間為 0 的狀態
[[email protected] ~]# shutdown -h 20:25 系統在今天的 20:25 分會關機,若在21:25才下達此指令,則隔天才關機
[[email protected] ~]# shutdown -h +10 系統再過十分鐘後自動關機
[[email protected] ~]# shutdown -r now 系統立刻重新開機
[[email protected] ~]# shutdown -r +30 'The system will reboot' 再過三十分鐘系統會重新開機,並顯示後面的訊息給所有在線上的使用者
[[email protected] ~]# shutdown -k now 'This system will reboot' 僅發出警告信件的引數!系統並不會關機啦!嚇唬人!
例項

重新開機,關機: reboot,halt,poweroff

上面的halt,poweroff,reboot,shutdown等都是呼叫這個systemctl指令

systemctl [指令]

halt : 進入系統停止的模式,螢幕可能會保留一些訊息

poweroff : 進入系統關機模式.直接關機沒有提供電力

reboot : 直接重新開機

suspend : 進入休眠模式

 

 wget命令

wget命令用於在終端中下載網路檔案,格式為“wget [引數] 下載地址”。

如果您沒有Linux系統的管理經驗,當前只需瞭解一下wget命令的引數以及作用,然後看一下下面的演示實驗即可,切記不要急於求成。後面章節將逐步講解Linux系統的配置管理方法,可以等您掌握了網絡卡的配置方法後再來進行這個實驗操作。表2-5所示為wget命令的引數以及引數的作用。

Linux的檔案許可權與目錄配置

-b        後臺下載
-p        下載到指定目錄
-t         最大的嘗試次數
-c        斷電續傳
-P        下載頁面內所有資源,包括圖片,視訊等
-r        遞迴下載

  

 ps命令

檢視系統中的程序狀態

-a        顯示所有程序
-u        使用者以及其他詳細資訊
-x        顯示沒有控制終端的程序

Linux系統中時刻執行著許多程序,如果能夠合理地管理它們,則可以優化系統的效能。在Linux系統中,有5種常見的程序狀態,分別為執行、中斷、不可中斷、僵死與停止,其各自含義如下所示。

R(執行):程序正在執行或在執行佇列中等待。

S(中斷):程序處於休眠中,當某個條件形成後或者接收到訊號時,則脫離該   狀態。

D(不可中斷):程序不響應系統非同步訊號,即便用kill命令也不能將其中斷。

Z(僵死):程序已經終止,但程序描述符依然存在, 直到父程序呼叫wait4()系統函式後將程序釋放。

T(停止):程序收到停止訊號後停止執行。

 

top命令

動態的監視程序活動與系統負載等資訊,格式為top

第1行:系統時間、執行時間、登入終端數、系統負載(三個數值分別為1分鐘、5分鐘、15分鐘內的平均值,數值越小意味著負載越低)。

第2行:程序總數、執行中的程序數、睡眠中的程序數、停止的程序數、僵死的程序數。

第3行:使用者佔用資源百分比、系統核心佔用資源百分比、改變過優先順序的程序資源百分比、空閒的資源百分比等。其中資料均為CPU資料並以百分比格式顯示,例如“97.1 id”意味著有97.1%的CPU處理器資源處於空閒。

第4行:實體記憶體總量、記憶體使用量、記憶體空閒量、作為核心快取的記憶體量。

第5行:虛擬記憶體總量、虛擬記憶體使用量、虛擬記憶體空閒量、已被提前載入的記憶體量。

 

pidof命令

查詢某個指定服務程序的PID,格式為pidof [引數] [服務名稱]

 

kill命令

終止某個指定PID的服務程序

killall命令

終止某個指定服務所對應的全部服務

 

系統狀態檢測命令

ifconfig命令

獲取網絡卡配置與網路狀態資訊

 

uname命令

檢視系統核心與系統版本等資訊

一般與-a引數完成檢視當前核心名稱,主機名,核心發行版本,節點名,系統時間,硬體名稱,硬體平臺,處理器型別以及作業系統名稱等資訊

 

uptime命令

檢視系統傅在資訊

 

free命令

顯示系統中記憶體的使用量資訊, free -h

 

who命令

檢視當前登入主機的使用者終端資訊

 

last命令

檢視系統登陸記錄

 

history命令

顯示歷史執行過的命令,格式為history -c

 

sosreport命令

收集系統配置及架構資訊並輸出診斷文件

 

工作目錄切換命令

pwd命令

顯示使用者當前所處的工作的目錄

 

cd命令

切換檔案路徑

 

ls命令  ls -al

檢視命令

 

文字檔案編輯命令

cat命令

參看純文字檔案  -n顯示行數

 

more命令

檢視純文字檔案,(內容較多)

 

head命令

顯示純文字文件的前N行

 

tail命令

純文字文件的後N行或持續重新整理內容

 

tr命令

替換檔案中的字元  cat test | tr [原字元] [目標字元]

 

wc命令

統計指定文字的行數,字數,位元組數,格式為  wc [引數] 文字

-l        只顯示行數
-w       只顯示單詞書
-c        只顯示位元組數

 

start命令

檢視檔案儲存資訊和時間等資訊

 

cut命令

按"列"提取文字字元,格式為 cut [引數] 文字

 

diff命令

比較多個檔案的差異

 

檔案目錄管理命令

touch命令

建立空白檔案或設定檔案的時間

 

mkdir命令

建立空白的目錄

 

cp命令

複製檔案或目錄, cp[選項] 原始檔 目標檔案

如果目標檔案是目錄,則會把原始檔複製到該目錄中;

如果目標檔案也是普通檔案,則會詢問是否要覆蓋它;

如果目標檔案不存在,則執行正常的複製操作。

-p        保留原始檔的屬性
-d        若物件為連結檔案,則保留該連線檔案的屬性
-r        遞迴持續複製
-i        若檔案存在則詢問是否覆蓋
-a        相當於-pdr

 

mv命令

剪下檔案或將檔案重新命名

 

rm命令

刪除檔案或目錄

rm命令用於刪除檔案或目錄,格式為“rm [選項] 檔案”。

在Linux系統中刪除檔案時,系統會預設向您詢問是否要執行刪除操作,如果不想總是看到這種反覆的確認資訊,可在rm命令後跟上-f引數來強制刪除。另外,想要刪除一個目錄,需要在rm命令後面一個-r引數才可以,否則刪除不掉。

 

dd命令

按照指定大小和個數的資料塊來複制檔案或轉換檔案

 

file命令

檢視檔案型別

 

tar命令

tar命令用於開啟檔案進行打包壓縮或解壓

-c        建立壓縮檔案
-x        解開壓縮檔案
-t        檢視壓縮包內有哪些檔案
-z        有Gzip壓縮或解壓
-j        用bzip2壓縮或解壓
-v        顯示壓縮或解壓的過程
-f        目標檔名
-P        保留原始的許可權與屬性
-p        使用絕對的路徑來壓縮
-C        指定解壓的目錄

grep命令

用於關鍵詞搜尋,並顯示匹配的結果

-b        將可執行檔案(binary)當作檔案(text)來搜尋
-c        僅顯示找到的行數
-i        忽略大小寫
-n        顯示行號
-v        反向選擇-僅列出沒有"關鍵詞"的行

 

 

find命令  find [查詢路徑] 尋找條件 操作

按照指定條件來查詢檔案

-name	匹配名稱
-perm	匹配許可權(mode為完全匹配,-mode為包含即可)
-user	匹配所有者
-group	匹配所有組
-mtime -n +n	匹配修改內容的時間(-n指n天以內,+n指n天以前)
-atime -n +n	匹配訪問檔案的時間(-n指n天以內,+n指n天以前)
-ctime -n +n	匹配修改檔案許可權的時間(-n指n天以內,+n指n天以前)
-nouser	匹配無所有者的檔案
-nogroup	匹配無所有組的檔案
-newer f1 !f2	匹配比檔案f1新但比f2舊的檔案
--type b/d/c/p/l/f	匹配檔案型別(後面的字幕字母依次表示塊裝置、目錄、字元裝置、管道、連結檔案、文字檔案)
-size	匹配檔案的大小(+50KB為查詢超過50KB的檔案,而-50KB為查詢小於50KB的檔案)
-prune	忽略某個目錄
-exec …… {}\;	後面可跟用於進一步處理搜尋結果的命令(下文會有演示)
-iname 不區分大小寫

 

loacte命令

locate命令要比find快得多,原因在於它不搜尋,原因在於它不搜尋具體目錄,而是所有一個數據庫(/var/lib/locatedb),這個資料庫中含有本地所有檔案資訊.Linux系統自動建立這個資料庫,並且每天自動更新一次,所以使用loacte命令查不到最新變動過的檔案,為了避免這種情況,可以再使用locate之前,顯示用updatedb命令,手動更新資料庫

locate 命令的使用例項:
    $locate /etc/sh
搜尋etc目錄下所有sh開頭的檔案
    $locate ~/m
搜尋使用者主目錄下,所有m開頭的檔案
    $locate -i ~/m
搜尋使用者主目錄下,所有以m開頭的檔案,並且忽略大小寫.

 

whereis

whereis命令只能用於程式名的搜尋,而且只搜尋二進位制檔案(引數-b), man說明檔案(引數-m)和原始檔(引數-s).如果省略引數,則返回所有資訊

whereis命令的使用例項
    $whereis grep

 

which

which命令的作用是,再PATH變數指定的路徑中,搜尋某個系統命令的位置,並且返回第一個搜尋結果,也就是說,使用which命令,就可以看到某個系統命令是否存在,以執行的到底是哪一個位置命令.

which命令的使用:

  $which grep

 

yum命令

yum repolist all         列出所有倉庫

yum list all             列出倉庫中所有的軟體

yum info 軟體名稱          檢視軟體包資訊

yum install 軟體名稱       安裝軟體包

yum reinstall 軟體名稱     重新安裝軟體包

yum update 軟體名稱         升級軟體包

yum clean all              移除軟體包

yum check-update           檢查可更新的軟體包

yum grouplist              檢視系統中已經按安裝的軟體包組

yum groupinstall 軟體包組            安裝指定的軟體包組

yum groupremove 軟體包組            移除指定的軟體包組    

yum groupinfo 軟體包組             查詢指定的軟體包組資訊

 

systemd初始化程序

RHEL 7 系統選擇 systemd 初始化程序服務已經是一個既定事實,因此也沒有 了“執行級別”這個概念,Linux 系統在啟動時要進行大量的初始化工作,比如掛載檔案系統 和交換分割槽、啟動各類程序服務等,這些都可以看作是一個一個的單元(Unit),systemd 用目 標(target)代替了 System V init 中執行級別的概念,這兩者的區別如下

systemd 與 system V init 的區別以及作用

執行級別        systemd目標名稱                                      作用
0                  runleve10.target, poweroff.target              關機

1                  runlevel1.target, rescue.target               單使用者模式

2                  runlevel2.target, multi-user.target           等同於級別3

3                  runlevel3.target, multi-user.target          多使用者的文字介面

4                  runlevel4.target, multi-user.target            等同於等級3

5                  runlevel5.target, graphical.target           多使用者的圖形介面

6                  runlevel6.target, reboot.target                   重啟

emergency     emergency.target                                      緊急shell
                    

修改系統預設的執行級別

  init 3

如果想將系統預設的執行目標修改為"多使用者, 無圖形"模式,可直接用ln命令把多使用者模式目標檔案連線到/etc/systemd/system/目錄:

# ln -sf    /lib/systemd/system/multi-user.target    /etc/systemd/system/default.target

systemctl 管理服務的啟動,重啟,停止,過載,檢視狀態等常用命令

systemctl start foo.service    啟動服務
systemctl restart foo.service    重啟服務
systemctl stop foo.service    停止服務
systemctl reload foo.service    重新載入配置檔案(不執行服務)
systemctl status foo.service    檢視服務狀態

systemctl設定服務開機啟動,不啟動,檢視各級別下服務啟動狀態等常用命令

systemctl    enable    foo.service    開機自動啟動

systemctl    disable    foo.service    開機不自動啟動

systemctl    is-enabled foo.service    檢視特定服務是否為開機自動啟動

systemctl    list-unit-files --type=service    檢視各個級別下服務的啟動與禁用情況

  

 網路相關的命令

write  給使用者傳送訊息  ctrl+D儲存傳送

wall  write all  傳送所有資訊

ping  -c  指定傳送次數

ifconfig  interface  configure  檢視當前網路

  eth0  本機的真實網絡卡

  lo   迴環網絡卡

mail  檢視傳送的電子郵件

last  統計使用者登陸時間

netstart  顯示網路相關資訊

  -t  tcp協議

  -u  udp協議

  -l   監聽

  -r  路由(閘道器)

  -n  顯示ip地址和埠號

  範例: 

    netstat  -tlun  檢視本機監聽的埠

    netstat  -an    檢視本機所有的網路連線

    netstat  -rn   檢視本機路由表

setup  配置網路

掛在命令

mount  mount -t  檔案系統 裝置檔名掛在點

    mount  -t  iso9660  /dev/sr0/mnt/cdrom

關機命令

shutdown  -r  now/可以指定時間(推薦使用)

  -c  取消前一個關機命令

  -h  關機

  -r  重啟

     

1,顯示目前所支援的語系

[[email protected] ~]$ locale
LANG=zh_TW.utf8 # 語言語系的輸出
LC_CTYPE="zh_TW.utf8" # 下面為許多資訊的輸出使用的特別語系
LC_NUMERIC=zh_TW.UTF-8
LC_TIME=zh_TW.UTF-8 # 時間方面的語系資料
LC_COLLATE="zh_TW.utf8"

LC_ALL=    # 全部的資料同步更新的設定值

2,修改語系為英文語系

$ LANG=en_US.utf-8
$ export LC_ALL=en_US.utf-8
# LANG 只與輸出訊息有關,若需要更改其他不同的資訊,要同步更新 LC_ALL才行

 

顯示日期與時間的指令: date

顯示日曆的指令: cal

簡單好用的計算機: bc

[[email protected] ~]$ date
Fri May 29 14:32:01 CST 2015

date的格式化輸出

$ date +%Y/%m/%d
2018/07/08
$ date +%H:%M
18:14

 

顯示日曆的指令: cal

[[email protected] ~]$ cal
May 2015
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

 

cal 2015 會顯示正年的日曆

cal [month] [year] 檢視某年某月的月曆

 

計算機: bc

[[email protected] ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
_ <==這個時候,游標會停留在這裡等待你的輸入
[[email protected] ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 1+2+3+4 <==只有加法時
107-8+3
210*52
520 10%3 <==計算“餘數”
110^2
100 10/100 <==這個最奇怪!不是應該是 0.1 嗎?
0quit <==離開 bc 這個計算器
計算機

bc預設僅輸出整數,如果要輸出小數點下位數,那麼就必須要執行scale=number,那個number就是小數點的位數

scale=3 <==沒錯!就是這裡!!
1/3
.333 340/2349
.144 quit

 

幾個重要的熱鍵[Tab], [ctrl]-c, [ctrl] - d

[Tab]: 命令補全功能與檔案補齊,雙擊[Tab]會顯示可以操作的命令

在這一版的 CentOS 7.x 當中,由於多了一個名為 bash_completion 的軟體,這個軟體會主動的去偵測“各個指令可以下達的選項與參
數”等行為, 因此,那個“檔案補齊”的功能可能會變成“選項、引數補齊”的功能,不一定會主動補齊檔名了喔
View Code

[ctrl]-c: 終止正在執行的命令

[ctrl]-d: 離開命令,代替exit

[shift]+{[pageup]|[pagedown]} : 翻頁

 

Linux系統的線上求助man page與info page

 

指令的 --help求助說明

[[email protected] ~]# date --help
Usage: date [OPTION]... [+FORMAT] # 這裡有基本語法
or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] # 這是設定時間的語法
Display the current time in the given FORMAT, or set the system date.
# 下面是主要的選項說明
Mandatory arguments to long options are mandatory for short options too.
-d, --date=STRING display time described by STRING, not 'now'
-f, --file=DATEFILE like --date once for each line of DATEFILE
....(中間省略).... -u, --utc, --universal print or set Coordinated Universal Time (UTC)
--help 顯示此求助說明並離開
--version 顯示版本資訊並離開
# 下面則是重要的格式 (FORMAT) 的主要專案
FORMAT controls the output. Interpreted sequences are:
%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
....(中間省略)....
# 下面是幾個重要的範例 (Example)
Examples:
Convert seconds since the epoch (1970-01-01 UTC) to a date
$ date --date='@2147483647'
....(下面省略)....
--help

man page

[[email protected] ~]$ LANG="en_US.utf8"
# 還記得這個咚咚的用意吧?前面提過了,是為了“語系”的需要啊!下達過一次即可!
[[email protected] ~]$ man date
DATE(1) User Commands DATE(1# 請注意上面這個括號內的數字
NAME <==這個指令的完整全名,如下所示為date且說明簡單用途為設定與顯示日期/時間
date - print or set the system date and time
SYNOPSIS <==這個指令的基本語法如下所示
date [OPTION]... [+FORMAT] <==第一種單純顯示的用法
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] <==這種可以設定系統時間的用法
DESCRIPTION <==詳細說明剛剛語法談到的選項與引數的用法
Display the current time in the given FORMAT, or set the system date.
Mandatory arguments to long options are mandatory for short options too.
-d, --date=STRING <==左邊-d為短選項名稱,右邊--date為完整選項名稱
display time described by STRING, not 'now'
-f, --file=DATEFILE
like --date once for each line of DATEFILE
-I[TIMESPEC], --iso-8601[=TIMESPEC]
output date/time in ISO 8601 format. TIMESPEC='date' for date only (the
default), 'hours', 'minutes', 'seconds', or 'ns' for date and time to the
indicated precision.
....(中間省略)....
# 找到了!下面就是格式化輸出的詳細資料!
FORMAT controls the output. Interpreted sequences are:
%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
....(中間省略)....
ENVIRONMENT <==與這個指令相關的環境引數有如下的說明
TZ Specifies the timezone, unless overridden by command line parameters.
If neither is specified, the setting from /etc/localtime is used.
EXAMPLES <==一堆可用的範本
Convert seconds since the epoch (1970-01-01 UTC) to a date
$ date --date='@2147483647'
....(中間省略)....
DATE STRING <==上面曾提到的 --date 的格式說明!
The --date=STRING is a mostly free format human readable date string such as "Sun, 29
Feb 2004 16:21:42 -0800" or "2004-02-29 16:21:42" or even "next Thursday". A date
string may contain items indicating calendar date, time of day, time zone, day of
AUTHOR <==這個指令的作者啦!
Written by David MacKenzie.
COPYRIGHT <==受到著作權法的保護!用的就是 GPL 了!
Copyright © 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or
later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WAR‐
RANTY, to the extent permitted by law.
SEE ALSO <==這個重要,你還可以從哪裡查到與date相關的說明文件之意
The full documentation for date is maintained as a Texinfo manual. If the info and
date programs are properly installed at your site, the command
info coreutils 'date invocation'
should give you access to the complete manual.
GNU coreutils 8.22 June 2014 DATE(1)
man page

 

代號的不同含義

 

代號 代表內容
1* 使用者在shell環境中可以操作的指令或可可執行檔案
2 系統核心可呼叫的函式與工具等
3 一些常用的函式(function)與函式庫(library),大部分為c的函式庫(libc)
4 裝置檔案的說明
5* 配置檔案或者是某些檔案的格式
6 遊戲
7 慣例與協定等,例如Linux檔案系統,網路協定,asciicode等等說明
8* 系統管理員可用的管理指令
9 跟kernel有關的檔案

 

 

 

 

 

 

 

 

 

NAME : 簡短的指令,資料名稱說明

SYNOPSIS : 簡短的指令下達語法(syntax)簡介

DESCRIPTION : 較為完整的說明,這部分最好仔細看看

OPTIONS : 針對SYNOPSIS部分中,有例舉的所有可用的選項說明

COMMANDS : 當這個程式(軟體)在執行的時候,可以再次程式(軟體)中下達命令

FILFES : 這個程式或資料所是用或引數或連線到的某個檔案

SEE ALSO : 可以參考的,跟這個指令或資料有相關的其他說明

EXAMPLE : 一些可以參考的範例
date的說明

輸入/可以開始輸入搜尋字串

 

按鍵 進行工作
空白鍵 向下翻一頁
[pgDn] 一行一行的
[pgUp] 同上
[Home] 第一頁
[end] 最後一頁
/string 向下搜尋string這個字串
?string 向上搜尋string這個字串
n,N 繼續下一個或者反向查詢
q 退出page

 

 

 

 

 

 

 

 

 

 

搜尋特定指令/檔案的manpage說明文件

man -f man

獲取更多的man相關的資訊

man -k man

獲取有man這個關鍵字的所有

其他有用的檔案(document)

目錄: /usr/share/doc

資料同步寫入磁碟: sync

su - 切換使用者

shutdown 關機的一些引數

[[email protected] ~]# /sbin/shutdown [-krhc] [時間] [警告訊息] 選項與引數:
-k : 不要真的關機,只是傳送警告訊息出去!
-r : 在將系統的服務停掉之後就重新開機(常用)
-h : 將系統的服務停掉後,立即關機。 (常用)
-c : 取消已經在進行的 shutdown 指令內容。
時間 : 指定系統關機的時間!時間的範例下面會說明。若沒有這個專案,則預設 1 分鐘後自動進行。
shutdown引數
[[email protected] ~]# shutdown -h now 立刻關機,其中 now 相當於時間為 0 的狀態
[[email protected] ~]# shutdown -h 20:25 系統在今天的 20:25 分會關機,若在21:25才下達此指令,則隔天才關機
[[email protected] ~]# shutdown -h +10 系統再過十分鐘後自動關機
[[email protected] ~]# shutdown -r now 系統立刻重新開機
[[email protected] ~]# shutdown -r +30 'The system will reboot' 再過三十分鐘系統會重新開機,並顯示後面的訊息給所有在線上的使用者
[[email protected] ~]# shutdown -k now 'This system will reboot' 僅發出警告信件的引數!系統並不會關機啦!嚇唬人!
例項

重新開機,關機: reboot,halt,poweroff

上面的halt,poweroff,reboot,shutdown等都是呼叫這個systemctl指令

systemctl [指令]

halt : 進入系統停止的模式,螢幕可能會保留一些訊息

poweroff : 進入系統關機模式.直接關機沒有提供電力

reboot : 直接重新開機

suspend : 進入休眠模式

 

 wget命令

wget命令用於在終端中下載網路檔案,格式為“wget [引數] 下載地址”。

如果您沒有Linux系統的管理經驗,當前只需瞭解一下wget命令的引數以及作用,然後看一下下面的演示實驗即可,切記不要急於求成。後面章節將逐步講解Linux系統的配置管理方法,可以等您掌握了網絡卡的配置方法後再來進行這個實驗操作。表2-5所示為wget命令的引數以及引數的作用。

Linux的檔案許可權與目錄配置

-b        後臺下載
-p        下載到指定目錄
-t         最大的嘗試次數
-c        斷電續傳
-P        下載頁面內所有資源,包括圖片,視訊等
-r        遞迴下載

  

 ps命令

檢視系統中的程序狀態

-a        顯示所有程序
-u        使用者以及其他詳細資訊
-x        顯示沒有控制終端的程序

Linux系統中時刻執行著許多程序,如果能夠合理地管理它們,則可以優化系統的效能。在Linux系統中,有5種常見的程序狀態,分別為執行、中斷、不可中斷、僵死與停止,其各自含義如下所示。

R(執行):程序正在執行或在執行佇列中等待。

S(中斷):程序處於休眠中,當某個條件形成後或者接收到訊號時,則脫離該   狀態。

D(不可中斷):程序不響應系統非同步訊號,即便用kill命令也不能將其中斷。

Z(僵死):程序已經終止,但程序描述符依然存在, 直到父程序呼叫wait4()系統函式後將程序釋放。

T(停止):程序收到停止訊號後停止執行。

 

top命令

動態的監視程序活動與系統負載等資訊,格式為top

第1行:系統時間、執行時間、登入終端數、系統負載(三個數值分別為1分鐘、5分鐘、15分鐘內的平均值,數值越小意味著負載越低)。

第2行:程序總數、執行中的程序數、睡眠中的程序數、停止的程序數、僵死的程序數。

第3行:使用者佔用資源百分比、系統核心佔用資源百分比、改變過優先順序的程序資源百分比、空閒的資源百分比等。其中資料均為CPU資料並以百分比格式顯示,例如“97.1 id”意味著有97.1%的CPU處理器資源處於空閒。

第4行:實體記憶體總量、記憶體使用量、記憶體空閒量、作為核心快取的記憶體量。

第5行:虛擬記憶體總量、虛擬記憶體使用量、虛擬記憶體空閒量、已被提前載入的記憶體量。

 

pidof命令

查詢某個指定服務程序的PID,格式為pidof [引數] [服務名稱]

 

kill命令

終止某個指定PID的服務程序

killall命令

終止某個指定服務所對應的全部服務

 

系統狀態檢測命令

ifconfig命令

獲取網絡卡配置與網路狀態資訊