命令行選項風格:
1、原始unix風格
a、命令行選項以連字符'-'開頭,后跟單個字符表示選項,選項后面跟著取值,如:mysql -hlocalhost
b、選項不帶取值的,可以組合在一起,如:sed -n -r 可以寫成 sed -nr
c、偏愛小寫字母,大寫字母另有含義,非常簡練
2、GNU風格
a、命令行選項以兩個連字符'–'開頭,后跟選項名稱,選項后面使用空格或者等號 緊接著取值。
b、容易記憶,書寫麻煩。
3、大多數程序是兩種風格混用,兩種風格都支持,前者是后者的縮寫方式,如下:
mysql –host localhost 或者 mysql –host=localhost ,縮寫方式為mysql -hlocalhost,注意縮寫方式盡量不要再寫成 mysql -h localhost,或者 mysql -h=localhost,因為這可能會存在解析困難,空格可能會認為是下一個選項,而等號可能會認為是取值的一部分。比如:
mysql -hlocalhost -uroot -p 123456,認為123456 是一個數據庫,還需要輸入密碼。
mysql -hlocalhost -uroot -p=123456,認為密碼是 "=123456",當然密碼錯誤。
4、通過 man xxx 或者 xxx –help 我們可以看到命令的用法,會列出選項和選項的縮寫方式,如mysql –help
-h, –host=name Connect to host. 前面是縮寫方式,后面是描述說明。
5、一般的縮寫方式是取全稱的第一個字符,這就存在沖突的問題。比如:–host 與–help ,解決辦法是:其中一個提供縮寫方式,另外一個不提供。當然也可能提供另外一個字符,表示縮寫,這個字符是大寫形式或者意思相近的字符。比如:mysql 小寫p是password的縮寫,大寫P是port的縮寫。
6、對于help,一般會有三種方式,–help、-h、-?
隨著時間的推移,簡寫方式有一些不成文的約定:
基本命令:
ifconfig:configure a network interface
centos 7 沒有自帶該命令,需要手動安裝
1: 搜索該命令
2:安裝net-tools.x86_64
1.命令格式:
ifconfig [網絡設備] [參數]
2.命令功能:
ifconfig 命令用來查看和配置網絡設備。當網絡環境發生改變時可通過此命令對網絡進行相應的配置。
3.命令參數:
up 啟動指定網絡設備/網卡。
down 關閉指定網絡設備/網卡。該參數可以有效地阻止通過指定接口的IP信息流,如果想永久地關閉一個接口,我們還需要從核心路由表中將該接口的路由信息全部刪除。
arp 設置指定網卡是否支持ARP協議。
-promisc 設置是否支持網卡的promiscuous模式,如果選擇此參數,網卡將接收網絡中發給它所有的數據包
-allmulti 設置是否支持多播模式,如果選擇此參數,網卡將接收網絡中所有的多播數據包
-a 顯示全部接口信息
-s 顯示摘要信息(類似于 netstat -i)
add 給指定網卡配置IPv6地址
del 刪除指定網卡的IPv6地址
<硬件地址> 配置網卡最大的傳輸單元
mtu<字節數> 設置網卡的最大傳輸單元 (bytes)
netmask<子網掩碼> 設置網卡的子網掩碼。掩碼可以是有前綴0x的32位十六進制數,也可以是用點分開的4個十進制數。如果不打算將網絡分成子網,可以不管這一選項;如果要使用子網,那么請記住,網絡中每一個系統必須有相同子網掩碼。
tunel 建立隧道
dstaddr 設定一個遠端地址,建立點對點通信
-broadcast<地址> 為指定網卡設置廣播協議
-pointtopoint<地址> 為網卡設置點對點通訊協議
multicast 為網卡設置組播標志
address 為網卡設置IPv4地址
txqueuelen<長度> 為網卡設置傳輸列隊的長度
4.使用實例:
實例1:顯示網絡設備信息(激活狀態的)
實例2:啟動關閉指定網卡
命令:
輸出:
說明:
ifconfig enp0s3 up 為啟動網卡enp0s3;
ifconfig enp0s3 down 為關閉網卡enp0s3。
實例3:為網卡配置和刪除IPv6地址
命令:
ifconfig enp0s8 add 33ffe:3240:800:1005::2/64
ifconfig enp0s8 del 33ffe:3240:800:1005::2/64
輸出:
說明:
ifconfig enp0s3 add 33ffe:3240:800:1005::2/64 為網卡enp0s3配置IPv6地址;
ifconfig enp0s3 add 33ffe:3240:800:1005::2/64 為網卡enp0s3刪除IPv6地址;
實例4:用ifconfig修改MAC地址
命令:
ifconfig enp0s3 hw ether 00:AA:BB:CC:DD:EE
實例5:配置IP地址
命令參數太多不寫了
備注:用ifconfig命令配置的網卡信息,在網卡重啟后機器重啟后,配置就不存在。要想將上述的配置信息永遠的存的電腦里,那就要修改網卡的配置文件了。
echo命令:display a line of text 輸出
-n 不換行
-e 開啟轉義字符功能
轉義字符:
-E disable interpretation of backslash escapes (default)
默認不轉義
–help 幫助
–version 版本輸出
單雙引號區別
tty: 顯示虛擬終端的類型, 歷史遺留問題(UNIX 設計 為 服務器加終端連接的形式, 控制臺給管理員用的也是終端的類型)
startx : 開啟圖形界面(沒裝gui, 撲街)
export:用于設置或顯示環境變量
在shell中執行程序時,shell會提供一組環境變量。export可新增,修改或刪除環境變量,供后續執行的程序使用。export的效力僅及于該次登陸操作。
-f 代表[變量名稱]中為函數名稱。
-n 刪除指定的變量。變量實際上并未刪除,只是不會輸出到后續指令的執行環境中。
-p 列出所有的shell賦予程序的環境變量。
-f 的 作用沒看懂
pwd:print name of current/working directory (顯示當前路徑名)
history:
使用 HISTTIMEFORMAT 顯示時間戳
當你從命令行執行 history 命令后,通常只會顯示已執行命令的序號和命令本身。如果你想要查看命令歷史的時間戳,那么可以執行:
# export HISTTIMEFORMAT='%F %T '
# history | more
1 2008-08-05 19:02:39 service network restart
2 2008-08-05 19:02:39 exit
3 2008-08-05 19:02:39 id
4 2008-08-05 19:02:39 cat /etc/redhat-release
注意:這個功能只能用在當 HISTTIMEFORMAT 這個環境變量被設置之后,之后的那些新執行的 bash 命令才會被打上正確的時間戳。在此之前的所有命令,都將會顯示成設置 HISTTIMEFORMAT 變量的時間。[感謝 NightOwl 讀者補充]
使用 Ctrl+R 搜索歷史
Ctrl+R 是我經常使用的一個快捷鍵。此快捷鍵讓你對命令歷史進行搜索,對于想要重復執行某個命令的時候非常有用。當找到命令后,通常再按回車鍵就可以執行該命令。如果想對找到的命令進行調整后再執行,則可以按一下左或右方向鍵。
# [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt]
(reverse-i-search)`red‘: cat /etc/redhat-release
[Note: Press enter when you see your command, which will execute the command from the history]
# cat /etc/redhat-release
Fedora release 9 (Sulphur)
快速重復執行上一條命令
有 4 種方法可以重復執行上一條命令:
使用上方向鍵,并回車執行。
按 !! 并回車執行。
輸入 !-1 并回車執行。
按 Ctrl+P 并回車執行。
從命令歷史中執行一個指定的命令
在下面的例子中,如果你想重復執行第 4 條命令,那么可以執行 !4:
# history | more
1 service network restart
2 exit
3 id
4 cat /etc/redhat-release
# !4
cat /etc/redhat-release
Fedora release 9 (Sulphur)
通過指定關鍵字來執行以前的命令
在下面的例子,輸入 !ps 并回車,將執行以 ps 打頭的命令:
# !ps
ps aux | grep yp
root 16947 0.0 0.1 36516 1264 ? Sl 13:10 0:00 ypbind
root 17503 0.0 0.0 4124 740 pts/0 S+ 19:19 0:00 grep yp
使用 HISTSIZE 控制歷史命令記錄的總行數
將下面兩行內容追加到 .bash_profile 文件并重新登錄 bash shell,命令歷史的記錄數將變成 450 條:
# vi ~/.bash_profile
HISTSIZE=450
HISTFILESIZE=450
使用 HISTFILE 更改歷史文件名稱
默認情況下,命令歷史存儲在 ~/.bash_history 文件中。添加下列內容到 .bash_profile 文件并重新登錄 bash shell,將使用 .commandline_warrior 來存儲命令歷史:
# vi ~/.bash_profile
HISTFILE=/root/.commandline_warrior
使用 HISTCONTROL 從命令歷史中剔除連續重復的條目
在下面的例子中,pwd 命令被連續執行了三次。執行 history 后你會看到三條重復的條目。要剔除這些重復的條目,你可以將 HISTCONTROL 設置為 ignoredups:
# pwd
# pwd
# pwd
# history | tail -4
44 pwd
45 pwd
46 pwd [Note that there are three pwd commands in history, after executing pwd 3 times as shown above]
47 history | tail -4
# export HISTCONTROL=ignoredups
# pwd
# pwd
# pwd
# history | tail -3
56 export HISTCONTROL=ignoredups
57 pwd [Note that there is only one pwd command in the history, even after executing pwd 3 times as shown above]
58 history | tail -4
使用 HISTCONTROL 清除整個命令歷史中的重復條目
上例中的 ignoredups 只能剔除連續的重復條目。要清除整個命令歷史中的重復條目,可以將 HISTCONTROL 設置成 erasedups:
# export HISTCONTROL=erasedups
# pwd
# service httpd stop
# history | tail -3
38 pwd
39 service httpd stop
40 history | tail -3
# ls -ltr
# service httpd stop
# history | tail -6
35 export HISTCONTROL=erasedups
36 pwd
37 history | tail -3
38 ls -ltr
39 service httpd stop
[Note that the previous service httpd stop after pwd got erased]
40 history | tail -6
使用 HISTCONTROL 強制 history 不記住特定的命令
將 HISTCONTROL 設置為 ignorespace,并在不想被記住的命令前面輸入一個空格:
# export HISTCONTROL=ignorespace
# ls -ltr
# pwd
# service httpd stop [Note that there is a space at the beginning of service, to ignore this command from history]
# history | tail -3
67 ls -ltr
68 pwd
69 history | tail -3
使用 -c 選項清除所有的命令歷史
如果你想清除所有的命令歷史,可以執行:
# history -c
命令替換
在下面的例子里,!!:$ 將為當前的命令獲得上一條命令的參數:
# ls anaconda-ks.cfg
anaconda-ks.cfg
# vi !!:$
vi anaconda-ks.cfg
補充:使用 !$ 可以達到同樣的效果,而且更簡單。[感謝 wanzigunzi 讀者補充]
下例中,!^ 從上一條命令獲得第一項參數:
# cp anaconda-ks.cfg anaconda-ks.cfg.bak
anaconda-ks.cfg
# vi -5 !^
vi anaconda-ks.cfg
為特定的命令替換指定的參數
在下面的例子,!cp:2 從命令歷史中搜索以 cp 開頭的命令,并獲取它的第二項參數:
# cp ~/longname.txt /really/a/very/long/path/long-filename.txt
# ls -l !cp:2
ls -l /really/a/very/long/path/long-filename.txt
下例里,!cp:$ 獲取 cp 命令的最后一項參數:
# ls -l !cp:$
ls -l /really/a/very/long/path/long-filename.txt
使用 HISTSIZE 禁用 history
如果你想禁用 history,可以將 HISTSIZE 設置為 0:
# export HISTSIZE=0
# history
# [Note that history did not display anything]
使用 HISTIGNORE 忽略歷史中的特定命令
下面的例子,將忽略 pwd、ls、ls -ltr 等命令:
# export HISTIGNORE=”pwd:ls:ls -ltr:”
# pwd
# ls
# ls -ltr
# service httpd stop
# history | tail -3
79 export HISTIGNORE=”pwd:ls:ls -ltr:”
80 service httpd stop
81 history
[Note that history did not record pwd, ls and ls -ltr]
如果你經常使用Linux命令,那么使用history命令無疑會提升你的工作效率。
History命令主要用于顯示歷史指令記錄內容, 下達歷史紀錄中的指令 。
1>History命令語法:
[test@linux]# history [n]
[test@linux]# history [-c]
[test@linux]# history [-raw] histfiles
參數:
n :數字,要列出最近的 n 筆命令列表
-c :將目前的shell中的所有 history 內容全部消除
-a :將目前新增的history 指令新增入 histfiles 中,若沒有加 histfiles ,
則預設寫入 ~/.bash_history
-r :將 histfiles 的內容讀到目前這個 shell 的 history 記憶中
-w :將目前的 history 記憶內容寫入 histfiles
Linux系統當你在shell(控制臺)中輸入并執行命令時,shell會自動把你的命令記錄到歷史列表中,一般保存在用戶目錄下的.bash_history文件中。默認保存1000條,你也可以更改這個值。
如果你鍵入 history, history會向你顯示你所使用的前1000個歷史命令,并且給它們編了號,你會看到一個用數字編號的列表快速從屏幕上卷過。你可能不需要查看1000個命令中的所有項目, 當然你也可以加入數字來列出最近的 n 筆命令列表。
linux中history命令不僅僅讓我們可以查詢歷史命令而已. 我們還可以利用相關的功能來幫我們執行命令。
2>運行特定的歷史命令
history會列出bash保存的所有歷史命令,并且給它們編了號,我們可以使用“嘆號接編號”的方式運行特定的歷史命令.
語法說明:
[test@linux]# [!number] [!command] [!!]
參數說明:
number :第幾個指令的意思;
command :指令的開頭幾個字母
! :上一個指令的意思!
3>History命令實戰
列出所有的歷史記錄:
[test@linux] # history
只列出最近10條記錄:
[test@linux] # history 10 (注,history和10中間有空格)
使用命令記錄號碼執行命令,執行歷史清單中的第99條命令
[test@linux] #!99 (!和99中間沒有空格)
重復執行上一個命令
[test@linux] #!!
執行最后一次以rpm開頭的命令(!? ?代表的是字符串,這個String可以隨便輸,Shell會從最后一條歷史命令向前搜索,最先匹配的一條命令將會得到執行。)
[test@linux] #!rpm
逐屏列出所有的歷史記錄:
[test@linux]# history | more
立即清空history當前所有歷史命令的記錄
[test@linux] #history -c
除了使用history命令,在 shell 或 GUI 終端提示下,你也可以使用上下方向鍵來翻閱命令歷史(向下箭頭會向前翻閱),直到你找到所需命令為止。這可以讓我們很方便地編輯前面的某一條命令,而不用重復輸入類似的命令。
History命令的用途確實很大!但需要小心安全的問題!尤其是 root 的歷史紀錄檔案,這是黑客們的最愛!因為不小心的 root 會將很多的重要資料在執行的過程中會被紀錄在 ~/.bash_history 當中,如果這個檔案被解析的話,后果不堪設想!
halt, poweroff, reboot – Halt, power-off or reboot the machine
定時關機或重啟
hwclock:
–adjust hwclock每次更改硬件時鐘時,都會記錄在/etc/adjtime文件中。使用–adjust參數,可使hwclock根據先前的記錄來估算硬件時鐘的偏差,并用來校正的硬件時鐘。
–debug 顯示hwclock執行時詳細的信息。
–directisa hwclock預設從/dev/rtc設備來存取硬件時鐘。若無法存取時,可用此參數直接以I/O指令來存取硬件時鐘。
–hctosys 將系統時鐘調整為與的硬件時鐘一致。hwclock會將硬件時間按照硬件時鐘的時區轉換為本地時區進的時間,
–set –date=<日期與時間> 設定硬件時鐘。
–show 顯示硬件時鐘的時間與日期。
–systohc 將硬件時鐘調整為與的系統時鐘一致。設置硬件時鐘時hwclock會自動將系統時間轉換為硬件時鐘所對應時區的時間。
–test 僅測試程序,而不會實際更改硬件時鐘。
–utc 將硬件時間當做UTC時間來看待。若要使用格林威治時間,請加入此參數,hwclock會執行轉換的工作。
–localtime 將硬件時鐘當做本地時間來看待,此時hwclock不會執行時間轉換工作。
–version 顯示版本信息。
機器里有兩個時鐘:硬件時鐘和系統時鐘
硬件時鐘從根本上講是CMOS時鐘;
系統時鐘是由內核維護的,它是從1969年末(即傳說中的標志Unix時代開端的那個拂曉)開始算起的累積秒數。
在DOS或Mac系統中,起作用的是硬件時鐘。遺憾的是,你可能已經發現了,絕大多數電腦時鐘都是很不準確的。它們從根本上講是由小型電池供電的警報器時鐘,這種鋰電池一般可持續供電三年左右,那時候你系統各大塊差不多都已經過時了。
而在Linux系統中,起作用的是系統時鐘。在啟動時,它靠讀取硬件時鐘獲得計時起點,而不是靠記憶計時。
你可以通過BIOS修改系統硬件時鐘,或者如果你不想重起機器,那就用hwclock命令。
不了解詳情
date命令:
1.命令格式:
date [參數]… [+格式]
2.命令功能:
date 可以用來顯示或設定系統的日期與時間。
3.命令參數:
必要參數:
%H 小時(以00-23來表示)。
%I 小時(以01-12來表示)。
%K 小時(以0-23來表示)。
%l 小時(以0-12來表示)。
%M 分鐘(以00-59來表示)。
%P AM或PM。
%r 時間(含時分秒,小時以12小時AM/PM來表示)。
%s 總秒數。起算時間為1970-01-01 00:00:00 UTC。
%S 秒(以本地的慣用法來表示)。
%T 時間(含時分秒,小時以24小時制來表示)。
%X 時間(以本地的慣用法來表示)。
%Z 市區。
%a 星期的縮寫。
%A 星期的完整名稱。
%b 月份英文名的縮寫。
%B 月份的完整英文名稱。
%c 日期與時間。只輸入date指令也會顯示同樣的結果。
%d 日期(以01-31來表示)。
%D 日期(含年月日)。
%j 該年中的第幾天。
%m 月份(以01-12來表示)。
%U 該年中的周數。
%w 該周的天數,0代表周日,1代表周一,異詞類推。
%x 日期(以本地的慣用法來表示)。
%y 年份(以00-99來表示)。
%Y 年份(以四位數來表示)。
%n 在顯示時,插入新的一行。
%t 在顯示時,插入tab。
MM 月份(必要)
DD 日期(必要)
hh 小時(必要)
mm 分鐘(必要)
ss 秒(選擇性)
選擇參數:
-d<字符串> 顯示字符串所指的日期與時間。字符串前后必須加上雙引號。
-s<字符串> 根據字符串來設置日期與時間。字符串前后必須加上雙引號。
-u 顯示GMT。
–help 在線幫助。
–version 顯示版本信息
4.使用說明:
1.在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加號后接數個標記,其中可用的標記列表如下: % : 打印出 %:
%n : 下一行
%t : 跳格
%H : 小時(00..23)
%I : 小時(01..12)
%k : 小時(0..23)
%l : 小時(1..12)
%M : 分鐘(00..59)
%p : 顯示本地 AM 或 PM
%r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M)
%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數
%S : 秒(00..61)
%T : 直接顯示時間 (24 小時制)
%X : 相當于 %H:%M:%S
%Z : 顯示時區 %a : 星期幾 (Sun..Sat)
%A : 星期幾 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接顯示日期與時間
%d : 日 (01..31)
%D : 直接顯示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第幾天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)
%w : 一周中的第幾天 (0..6)
%W : 一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)
%x : 直接顯示日期 (mm/dd/yy)
%y : 年份的最后兩位數字 (00.99)
%Y : 完整年份 (0000..9999)
2.在設定時間方面:
date -s //設置當前時間,只有root權限才能設置,其他只能查看。
date -s 20080523 //設置成20080523,這樣會把具體時間設置成空00:00:00
date -s 01:01:01 //設置具體時間,不會對日期做更改
date -s “01:01:01 2008-05-23″ //這樣可以設置全部時間
date -s “01:01:01 20080523″ //這樣可以設置全部時間
date -s “2008-05-23 01:01:01″ //這樣可以設置全部時間
date -s “20080523 01:01:01″ //這樣可以設置全部時間
3.加減:
date +%Y%m%d //顯示前天年月日
date +%Y%m%d –date="+1 day" //顯示前一天的日期
date +%Y%m%d –date="-1 day" //顯示后一天的日期
date +%Y%m%d –date="-1 month" //顯示上一月的日期
date +%Y%m%d –date="+1 month" //顯示下一月的日期
date +%Y%m%d –date="-1 year" //顯示前一年的日期
date +%Y%m%d –date="+1 year" //顯示下一年的日期
修改為北京時區:
原創文章,作者:N24_xingxiu,如若轉載,請注明出處:http://www.www58058.com/55847
總結的不錯,作者有心了,以后拿出來就可以直接當參考文檔,加油!