Linux系统命令及其详解2

名称: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:显示本月的月历。
[root@mylinux /root]# date
Tue Aug 15 08:00:18 CST 2000
[root@mylinux /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

[root@mylinux /root]#

cal 2001:显示公元 2001年年历。
[root@mylinux /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

[root@mylinux /root]#

cal 5 2001:显示公元 20015月月历。

[root@mylinux /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

[root@mylinux /root]#

cal -m:以星期一为每周的第一天方式,显示本月的月历。

[root@mylinux /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

[root@mylinux /root]#

cal -jy:以一月一日起的天数显示今年的年历。

[root@mylinux /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

[root@mylinux /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 分钟这段时间内要执行,f2a-b时表示从第 a到第 b小时都要执行,其余类推
  当 f1 */n 时表示每n 分钟个时间间隔执行一次,f2*/n表示每 n小时个时间间隔执行一次,其余类推
  当 f1 a, b, c,... 时表示第a, b, c,... 分钟要执行,f2a, 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 寄一封信给 alex@domain.name:
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata

  每月每天的午夜 0 20 , 220, 420....执行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:显示本地 AMPM
%r:直接显示时间 (12小时制,格式为hh:mm:ss [AP]M)
%s:19701100: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 [-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:显示程式版本

名称:/etc/aliases 
  使用权限:系统管理者
  使用方式: 请用 newaliases更新资料库
  说明:
sendmail 会使用一个在 /etc/aliases中的档案做使用者名称转换的动作。当 sendmail收到一个要送给 xxx的信时,它会依据aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如mailing list 就会用到这个功能,mailinglist ,我们可能会创造一个叫redlinux@link.ece.uci.edu mailinglist,但实际上并没有一个叫redlinux 的使用者。实际aliases 档的内容是将送给这个使用者的信都收给mailing list 处理程式负责分送的工作。
/etc/aliases 是一个文字模式的档案,sendmail需要一个二进位格式的 /etc/aliases.dbnewaliases的功能传是将 /etc/aliases转换成一个 sendmail所能了解的资料库。范例:
# newaliases

  下面命令会做相同的事,
# sendmail -bi

  相关命令:
mail, mailq, newaliases, sendmail

” mail [返回]

名称:mail 
  使用权限:所有使用者
  使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
  说明:
mail 不仅只是一个指令, mail还是一个电子邮件程式,不过利用mail 来读信的人应该很少吧!对于系统管理者来说mail 就很有用,因为管理者可以用mail 写成script ,定期寄一些备忘录提醒系统的使用者。


  参数:
i 忽略 tty的中断讯号。 (interrupt)
I 强迫设成互动模式。 (Interactive)
v 列印出讯息,例如送信的地点,状态等等。(verbose)
n 不读入 mail.rc设定档。
s 邮件标题。
c cc 邮件地址。
b bcc 邮件地址。
  范例:
  将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而user2 没有主机位置,就会送给邮件伺服器的user2 使用者。
mail user1@email.address
mail user1@email.address user2

  将 mail.txt 的内容寄给user2 同时cc user1 。如果将这一行指令设成cronjob 就可以定时将备忘录寄给系统使用者。
mail -s 标题 -c user1 user2 < mail.txt

指令:mesg 
  使用权限:所有使用者
  使用方式:mesg [y|n]
  说明 决定是否允许其他人传讯息到自己的终端机介面
  把计 :
y:允许讯息传到终端机介面上。
n:不允许讯息传到终端机介面上 。
  如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
  例子:
  改变目前讯息设定,改成不允许讯息传到终端机介面上:
mesg n

  与 mesg 相关的指令有:talk,write,wall


名称:/etc/aliases 
  使用权限:系统管理者
  使用方式: newaliases
  说明:
sendmail 会使用一个在 /etc/aliases中的档案做使用者名称转换的动作。当 sendmail收到一个要送给 xxx的信时,它会依据aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如mailing list 就会用到这个功能,mailinglist ,我们可能会创造一个叫redlinux@link.ece.uci.edu mailinglist,但实际上并没有一个叫redlinux 的使用者。实际aliases 档的内容是将送给这个使用者的信都收给mailing list 处理程式负责分送的工作。

/etc/aliases 是一个文字模式的档案,sendmail需要一个二进位格式的 /etc/aliases.dbnewaliases的功能传是将 /etc/aliases转换成一个 sendmail所能了解的资料库。

  参数:没有任何参数。 范例:
# newaliases

  下面命令会做相同的事,
# sendmail -bi
  相关命令:
mail, mailq, newaliases, sendmail

名称:talk 
  使用权限:所有使用者
  使用方式:
talk person [ttyname]
  说明:与其他使用者对谈
  把计:
person:预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入person@machine.name
ttyname:如果使用者同时有两个以上的 tty连线,可以自行选择合适的tty 传讯息
  例子.1:
  与现在机器上的使用者Rollaend对谈,此时Rollaend 只有一个连线:
talk Rollaend
  接下来就是等Rollaend回应,Rollaend接受,Rollaend输入`talk jzlee`即可开始对谈,结束请按ctrl+c
  例子.2 :linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈:
talk Rollaend@linuxfab.cx pts/2

  接下来就是等Rollaend回应,Rollaend接受,Rollaend输入`talk jzlee@jzlee.home`即可开始对谈,结束请按ctrl+c
  注意:若萤幕的字会出现不正常的字元,试着按ctrl+l 更新萤幕画面。

名称:wall
  使用权限:所有使用者
  使用方式:
wall [ message ]
  使用说明:
wall 会将讯息传给每一个 mesg设定为 yes的上线使用者。当使用终端机介面做为标准传入时,讯息结束时需加上 EOF (通常用Ctrl+D)
  例子:
  传讯息"hi" 给每一个使用者:
wall hi

名称:write 
  使用权限:所有使用者
  使用方式:
write user [ttyname]
  说明:传讯息给其他使用者
  把计:
user:预备传讯息的使用者帐号
ttyname:如果使用者同时有两个以上的 tty连线,可以自行选择合适的tty 传讯息
  例子.1:
  传讯息给 Rollaend,此时Rollaend 只有一个连线:
write Rollaend


  接下来就是将讯息打上去,结束请按ctrl+c

  例子.2 :传讯息给 Rollaend,Rollaend 的连线有pts/2,pts/3:
write Rollaend pts/2

  接下来就是将讯息打上去,结束请按ctrl+c
  注意:若对方设定 mesg n,则此时讯席将无法传给对方

名称:kill
  使用权限:所有使用者
  使用方式:
kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]
  说明:kill 送出一个特定的信号(signal) 给行程id pid 的行程根据该信号而做特定的动作,若没有指定,预设是送出终止 (TERM)的信号
  把计:
-s (signal):其中可用的讯号有 HUP (1), KILL (9), TERM (15),分别代表着重跑,砍掉,结束;详细的信号可以用 kill -l
-p:印出 pid ,并不送出信号
-l (signal):列出所有可用的信号名称
  范例:
  将 pid 323 的行程砍掉(kill):
kill -9 323
  将 pid 456 的行程重跑(restart):
kill -HUP 456 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值