歡迎您光臨本站 註冊首頁

Linux 指令大全(2)

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
名稱 : at
使用許可權 : 所有使用者

使用方式 : at -V [-q queue] [-f file] [-mldbv] TIME

說明 : at 可以讓使用者指定在 TIME 這個特定時刻執行某個程式或指令,TIME 的格式是 HH:MM其中的 HH 為小時,MM 為分鐘,甚至你也可以指定 am, pm, midnight, noon, teatime(就是下午 4 點鍾)等口語詞.

如果想要指定超過一天內的時間,則可以用 MMDDYY 或者 MM/DD/YY 的格式,其中 MM 是分鐘,DD 是第幾日,YY 是指年份.另外,使用者甚至也可以使用像是 now 時間間隔來彈性指定時間,其中的時間間隔可以是 minutes, hours, days, weeks

另外,使用者也可指定 today 或 tomorrow 來表示今天或明天.當指定了時間並按下 enter 之後,at 會進入交談模式並要求輸入指令或程式,當你輸入完后按下 ctrl D 即可完成所有動作,至於執行的結果將會寄回你的帳號中.

把計 :

-V : 印出版本編號
-q : 使用指定的佇列(Queue)來儲存,at 的資料是存放在所謂的 queue 中,使用者可以同時使用多個 queue,而 queue 的編號為 a, b, c... z 以及 A, B, ... Z 共 52 個
-m : 即使程式/指令執行完成後沒有輸出結果, 也要寄封信給使用者
-f file : 讀入預先寫好的命令檔.使用者不一定要使用交談模式來輸入,可以先將所有的指定先寫入檔案后再一次讀入
-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)
-d : 刪除指定 (使用者也可以直接使用 atrm 而不用 at -d)
-v : 列出所有已經完成但尚未刪除的指定

例子 :
三天後的下午 5 點鍾執行 /bin/ls :
at 5pm 3 days /bin/ls

三個星期後的下午 5 點鍾執行 /bin/ls :
at 5pm 2 weeks /bin/ls

明天的 17:20 執行 /bin/date :
at 17:20 tomorrow /bin/date

1999 年的最后一天的最后一分鐘印出 the end of world !


at 23:59 12/31/1999 echo the end of world !




名稱:cal

使用許可權:所有使用者

使用方式:cal [-mjy] [month [year]]

說明:

顯示日曆.若只有一個參數,則代表年份(1-9999),顯示該年的年曆.年份必須全部寫出:``cal 89 將不會是顯示 1989 年的年曆.使用兩個參數,則表示月份及年份.若沒有參數則顯示這個月的月曆.
1752 年 9 月第 3 日起改用西洋新曆,因這時大部份的國家都採用新曆,有 10 天被去除,該月份的月曆有些不同.在此之前為西洋舊曆.

匡兜

-m : 以星期一為每周的第一天方式顯示.
-j : 以凱撒歷顯示,即以一月一日起的天數顯示.
-y : 顯示今年年曆.

範例:

cal : 顯示本月的月曆.



[[email protected] /root]# date
Tue Aug 15 08:00:18 CST 2000
[[email protected] /root]# cal
August 2000
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

[[email protected] /root]#


cal 2001 : 顯示公元 2001 年年曆.

[[email protected] /root]# cal 2001
2001

January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1 2 3
7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24
28 29 30 31 25 26 27 28 25 26 27 28 29 30 31

April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 5 1 2
8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9
15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16
22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23
29 30 27 28 29 30 31 24 25 26 27 28 29 30

July August September


Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 1
8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8
15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15
22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22
29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29
30
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1
7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8
14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15
21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22
28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29
30 31

[[email protected] /root]#





cal 5 2001 : 顯示公元 2001 年 5 月月曆.



[[email protected] /root]# cal 5 2001
May 2001
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

[[email protected] /root]#





cal -m : 以星期一為每周的第一天方式,顯示本月的月曆.



[[email protected] /root]# cal -m
August 2000
Mo Tu We Th Fr Sa Su
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

[[email protected] /root]#





cal -jy : 以一月一日起的天數顯示今年的年曆.



[[email protected] /root]# cal -jy
2000

January February
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
1 32 33 34 35 36
2 3 4 5 6 7 8 37 38 39 40 41 42 43
9 10 11 12 13 14 15 44 45 46 47 48 49 50
16 17 18 19 20 21 22 51 52 53 54 55 56 57
23 24 25 26 27 28 29 58 59 60
30 31
March April
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
61 62 63 64 92
65 66 67 68 69 70 71 93 94 95 96 97 98 99
72 73 74 75 76 77 78 100 101 102 103 104 105 106
79 80 81 82 83 84 85 107 108 109 110 111 112 113


86 87 88 89 90 91 114 115 116 117 118 119 120
121
May June
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
122 123 124 125 126 127 153 154 155
128 129 130 131 132 133 134 156 157 158 159 160 161 162
135 136 137 138 139 140 141 163 164 165 166 167 168 169
142 143 144 145 146 147 148 170 171 172 173 174 175 176
149 150 151 152 177 178 179 180 181 182

July August
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
183 214 215 216 217 218
184 185 186 187 188 189 190 219 220 221 222 223 224 225
191 192 193 194 195 196 197 226 227 228 229 230 231 232
198 199 200 201 202 203 204 233 234 235 236 237 238 239
205 206 207 208 209 210 211 240 241 242 243 244
212 213
September October
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
245 246 275 276 277 278 279 280 281
247 248 249 250 251 252 253 282 283 284 285 286 287 288
254 255 256 257 258 259 260 289 290 291 292 293 294 295
261 262 263 264 265 266 267 296 297 298 299 300 301 302
268 269 270 271 272 273 274 303 304 305

November December
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
306 307 308 309 336 337
310 311 312 313 314 315 316 338 339 340 341 342 343 344
317 318 319 320 321 322 323 345 346 347 348 349 350 351
324 325 326 327 328 329 330 352 353 354 355 356 357 358
331 332 333 334 335 359 360 361 362 363 364 365
366

[[email protected] /root]#




名稱 : crontab
使用許可權 : 所有使用者

使用方式 :

crontab [ -u user ] filecrontab [ -u user ] { -l | -r | -e }
說明 :
crontab 是用來讓使用者在固定時間或固定間隔執行程式之用,換句話說,也就是類似使用者的時程表.-u user 是指設定指定 user 的時程表,這個前提是你必須要有其許可權(比如說是 root)才能夠指定他人的時程表.如果不使用 -u user 的話,就是表示設定自己的時程表.



餐數 :

-e : 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(比如說 setenv VISUAL joe)
-r : 刪除目前的時程表
-l : 列出目前的時程表

時程表的格式如下 :
f1 f2 f3 f4 f5 program

其中 f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天.program 表示要執行的程式.
當 f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程式,其餘類推
當 f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推
當 f1 為 */n 時表示每 n 分鐘個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其餘類推
當 f1 為 a, b, c,... 時表示第 a, b, c,... 分鐘要執行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其餘類推

使用者也可以將所有的設定先存放在檔案 file 中,用 crontab file 的方式來設定時程表.
例子 :

每月每天每小時的第 0 分鐘執行一次 /bin/ls :
0 7 * * * /bin/ls

在 12 月內, 每天的早上 6 點到 12 點中,每隔 20 分鐘執行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup

周一到周五每天下午 5:00 寄一封信給 [email protected] :
0 17 * * 1-5 mail -s "hi" [email protected] < /tmp/maildata

每月每天的午夜 0 點 20 分, 2 點 20 分, 4 點 20 分....執行 echo "haha"
20 0-23/2 * * * echo "haha"

注意 :

當程式在你所指定的時間執行后,系統會寄一封信給你,顯示該程式執行的內容,若是你不希望收到這樣的信,請在每一行空一格之後加上 > /dev/null 2>&1 即可.


名稱 : date
使用許可權 : 所有使用者

使用方式 :

date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [ FORMAT] [MMDDhhmm[[CC]YY][.ss]]

說明 :

date 可以用來顯示或設定系統的日期與時間,在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加號後接數個標記,其中可用的標記列表如下 :

時間方面 :

% : 印出 %
%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)

若是不以加號作為開頭,則表示要設定時間,而時間格式為 MMDDhhmm[[CC]YY][.ss],其中 MM 為月份,DD 為日,hh 為小時,mm 為分鐘,CC 為年份前兩位數字,YY 為年份后兩位數字,ss 為秒數
把計 :

-d datestr : 顯示 datestr 中所設定的時間 (非系統時間)
--help : 顯示輔助訊息
-s datestr : 將系統時間設為 datestr 中所設定的時間


-u : 顯示目前的格林威治時間
--version : 顯示版本編號

例子 :
顯示時間后跳行,再顯示目前日期 :
date %T%n%D

顯示月份與日數 :
date %B %d

顯示日期與設定時間(12:34:56) :
date --date 12:34:56

注意 :

當你不希望出現無意義的 0 時(比如說 1999/03/07),則可以在標記中插入 - 符號,比如說 date %-H:%-M:%-S 會把時分秒中無意義的 0 給去掉,像是原本的 08:09:04 會變為 8:9:4.另外,只有取得許可權者(比如說 root)才能設定系統時間.

當你以 root 身分更改了系統時間之後,請記得以 clock -w 來將系統時間寫入 CMOS 中,這樣下次重新開機時系統時間才會持續抱持最新的正確值.


名稱 : sleep
使用許可權 : 所有使用者

使用方式 : sleep [--help] [--version] number[smhd]

說明 : sleep 可以用來將目前動作延遲一段時間

參數說明 :

--help : 顯示輔助訊息
--version : 顯示版本編號
number : 時間長度,後面可接 s、m、h 或 d
其中 s 為秒,m 為 分鐘,h 為小時,d 為日數

例子 :
顯示目前時間后延遲 1 分鐘,之後再次顯示時間 :
date;sleep 1m;date



名稱: time
使用許可權: 所有使用者

使用方式: time [options] COMMAND [arguments]

說明: time 指令的用途,在於量測特定指令執行時所需消耗的時間及系統資源等資訊.例如 CPU 時間、記憶體、輸入輸出等等.需要特別注意的是,部分資訊在 Linux 上顯示不出來.這是在 Linux 上部分資源的分配函式與 time 指令所預設的方式並不相同,以致於 time 指令無法取得這些資料.

把計

-o or --output=FILE
設定結果輸出檔.這個選項會將 time 的輸出寫入 所指定的檔案中.如果檔案已經存在,系統將覆寫其內容.


-a or --append
配合 -o 使用,會將結果寫到檔案的末端,而不會覆蓋掉原來的內容.
-f FORMAT or --format=FORMAT
以 FORMAT 字串設定顯示方式.當這個選項沒有被設定的時候,會用系統預設的格式.不過你可以用環境變數 time 來設定這個格式,如此一來就不必每次登入系統都要設定一次.
一般設定上,你可以用
t
表示跳欄,或者是用
n
表示換行.每一項資料要用 % 做為前導.如果要在字串中使用百分比符號,就用 .(學過 C 語言的人大概會覺得很熟悉)
time 指令可以顯示的資源有四大項,分別是:

Time resources
Memory resources
IO resources
Command info

詳細的內容如下:


Time Resources
E 執行指令所花費的時間,格式是:[hour]:minute:second.請注意這個數字並不代表實際的 CPU 時間.
e 執行指令所花費的時間,單位是秒.請注意這個數字並不代表實際的 CPU 時間.
S 指令執行時在核心模式(kernel mode)所花費的時間,單位是秒.
U 指令執行時在使用者模式(user mode)所花費的時間,單位是秒.
P 執行指令時 CPU 的佔用比例.其實這個數字就是核心模式加上使用者模式的 CPU 時間除以總時間.


Memory Resources
M 執行時所佔用的實體記憶體的最大值.單位是 KB
t 執行時所佔用的實體記憶體的平均值,單位是 KB
K 執行程序所佔用的記憶體總量(stack data text)的平均大小,單位是 KB
D 執行程序的自有資料區(unshared data area)的平均大小,單位是 KB
p 執行程序的自有堆疊(unshared stack)的平均大小,單位是 KB
X 執行程序間共享內容(shared text)的平均值,單位是 KB
Z 系統記憶體頁的大小,單位是 byte.對同一個系統來說這是個常數




IO Resources
F 此程序的主要記憶體頁錯誤發生次數.所謂的主要記憶體頁錯誤是指某一記憶體頁已經置換到置換檔(swap file)中,已經分配給其他程序.此時該頁的內容必須從置換檔里再讀出來.
R 此程序的次要記憶體頁錯誤發生次數.所謂的次要記憶體頁錯誤是指某一記憶體頁雖然已經置換到置換檔中,但尚未分配給其他程序.此時該頁的內容並未被破壞,不必從置換檔里讀出來
W 此程序被交換到置換檔的次數
c 此程序被強迫中斷(像是分配到的 CPU 時間耗盡)的次數
w 此程序自願中斷(像是在等待某一個 I/O 執行完畢,像是磁碟讀取等等)的次數
I 此程序所輸入的檔案數
O 此程序所輸出的檔案數
r 此程序所收到的 Socket Message
s 此程序所送出的 Socket Message
k 此程序所收到的信號 ( Signal )數量


Command Info
C 執行時的參數以及指令名稱
x 指令的結束代碼 ( Exit Status )




-p or --portability
這個選項會自動把顯示格式設定成為:
real %e
user %U
sys %S
這麼做的目的是為了與 POSIX 規格相容.
-v or --verbose
這個選項會把所有程式中用到的資源通通列出來,不但如一般英文語句,還有說明.對不想花時間去熟習格式設定或是剛剛開始接觸這個指令的人相當有用.

範例:
利用下面的指令
time -v ps -aux

我們可以獲得執行 ps -aux 的結果和所花費的系統資源.如下面所列的資料:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 1096 472 ? S Apr19 0:04 init
root 2 0.0 0.0 0 0 ? SW Apr19 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Apr19 0:00 [kpiod]
......
root 24269 0.0 1.0 2692 996 pts/3 R 12:16 0:00 ps -aux

Command being timed: "ps -aux"
User time (seconds): 0.05


System time (seconds): 0.06
Percent of CPU this job got: 68%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.16
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 238
Minor (reclaiming a frame) page faults: 46
Voluntary context switches: 0
Involuntary context switches: 0
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0



名稱: uptime
使用許可權: 所有使用者
使用方式: uptime [-V]
說明: uptime 提供使用者下面的資訊,不需其他參數:

現在的時間
系統開機運轉到現在經過的時間
連線的使用者數量
最近一分鐘,五分鐘和十五分鐘的系統負載
參數: -V 顯示版本資訊.
範例: uptime
其結果為:
10:41am up 5 days, 10 min, 1 users, load average: 0.00, 0.00, 1.99

名稱:chfn

使用許可權:所有使用者

用法:shell>> chfn

說明:提供使用者更改個人資訊,用於 finger and mail username

範例:

shell>> chfn
Changing finger information for user
Password: [del]
Name[]:Johnney Huang ### 提供 finger 時的資料
Office[]:NCCU
Office Phone[]: [del]
Home Phone[]: [del]


名稱:chsh

使用許可權:所有使用者

用法:shell>> chsh

說明:更改使用者 shell 設定

範例:

shell>> chsh
Changing fihanging shell for user1
Password: [del]
New shell [/bin/tcsh]: ### [是目前使用的 shell]
[del]

shell>> chsh -l ### 展示 /etc/shells 檔案內容
/bin/bash
/bin/sh


/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh



」 finger [返回]
名稱: finger
使用許可權: 所有使用者

使用方式: finger [options] user[@address]

說明:finger 可以讓使用者查詢一些其他使用者的資料.會列出來的資料有:

Login Name
User Name
Home directory
Shell
Login status
mail status
.plan
.project
.forward

其中 .plan ,.project 和 .forward 就是使用者在他的 Home Directory 里的 .plan , .project 和 .forward 等檔案里的資料.如果沒有就沒有.finger 指令並不限定於在同一伺服器上查詢,也可以尋找某一個遠端伺服器上的使用者.只要給一個像是 E-mail address 一般的地址即可.
把計

-l
多行顯示.

-s
單行顯示.這個選項只顯示登入名稱,真實姓名,終端機名稱,閑置時間,登入時間,辦公室號碼及電話號碼.如果所查詢的使用者是遠端伺服器的使用者,這個選項無效.

範例:下列指令可以查詢本機管理員的資料:
finger root

其結果如下:
Login: root Name: root
Directory: /root Shell: /bin/bash
Never logged in.
No mail.
No Plan.




名稱:last

使用許可權:所有使用者

使用方式:shell>> last [options]

說明:顯示系統開機以來獲是從每月初登入者的訊息

把計

-R 省略 hostname 的欄位
-num 展示前 num 個
username 展示 username 的登入訊息
tty 限制登入訊息包含終端機代號

範例:

shell>> last -R -2
johnney pts/1 Mon Aug 14 20:42 still logged in
johnney pts/0 Mon Aug 14 19:59 still logged in

wtmp begins Tue Aug 1 09:01:10 2000 ### /var/log/wtmp


shell>> last -2 minery
minery pts/0 140.119.217.115 Mon Aug 14 18:37 - 18:40 (00:03)
minery pts/0 140.119.217.115 Mon Aug 14 17:22 - 17:24 (00:02)



wtmp begins Tue Aug 1 09:01:10 2000




名稱:login

這個命令都不會就不要干算了!呵呵我也不在這裡多費筆墨耽誤大家美好青春了^_^



名稱:passwd

使用許可權:所有使用者

使用方式:passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]

說明:用來更改使用者的密碼

參數:
-k

-l

-u

-f

-d 關閉使用者的密碼認證功能, 使用者在登入時將可以不用輸入密碼, 只有具備 root 許可權的使用者方可使用.

-S 顯示指定使用者的密碼認證種類, 只有具備 root 許可權的使用者方可使用.

[username] 指定帳號名稱.



名稱 : who
使用權線 : 所有使用者都可使用

使用方式 : who - [husfV] [user]

說明 : 顯示系統中有那些使用者正在上面,顯示的資料包含了使用者 ID,使用的終端機,從那邊連上來的,上線時間,獃滯時間,CPU 使用量,動作等等.

把計 :

-h : 不要顯示標題列
-u : 不要顯示使用者的動作/工作
-s : 使用簡短的格式來顯示
-f : 不要顯示使用者的上線位置
-V : 顯示程式版本


[火星人 ] Linux 指令大全(2)已經有330次圍觀

http://coctec.com/docs/linux/show-post-57927.html