linux、samba、vi命令集合_linux下vi命令大全

2020-02-27 其他范文 下载本文

linux、samba、vi命令集合由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“linux下vi命令大全”。

Linux安装软件

先来看看Linux软件扩展名。软件后缀为.rpm最初是Red Hat Linux提供的一种包封装格式,现在许多Linux发行版本都使用;后缀为.deb是Debain Linux提供的一种包封装格式;后缀为.tar.gz、tar.Z、tar.bz2或.tgz是使用Unix系统打包工具tar打包的;后缀为.bin的一般是一些商业软件。通过扩展名可以了解软件格式,进而了解软件安装。

RPM格式软件包的安装

1.简介

几乎所有的Linux发行版本都使用某种形式的软件包管理安装、更新和卸载软件。与直接从源代码安装相比,软件包管理易于安装和卸载;易于更新已安装的软件包;易于保护配置文件;易于跟踪已安装文件。

RPM全称是Red Hat Package Manager(Red Hat包管理器)。RPM本质上就是一个包,包含可以立即在特定机器体系结构上安装和运行的Linux软件。RPM示意图见图1。

大多数Linux RPM软件包的命名有一定的规律,它遵循名称-版本-修正版-类型-MYsoftware-1.2-1.i386.rpm。

2.安装RPM包软件

# rpm-ivh MYsoftware-1.2-1.i386.rpm

安装mysql服务端:

[root@test1 local]# rpm-ivh MySQL-server-4.0.16-0.i386.rpm 测试是否成功可运行netstat看Mysql端口是否打开,如打开表示服务已经启动,安装成功。Mysql默认的端口是3306。

安装mysql客户端:

[root@test1 local]# rpm-ivh MySQL-client-4.0.16-0.i386.rpm

要想看看RPM软件包内的所有文件(例如,MySQL-server RPM),运行: shell> rpm-qpl MySQL-server-VERSION.i386.rpm

RPM命令主要参数:

-i 安装软件。

-t 测试安装,不是真的安装。

-p 显示安装进度。

-f 忽略任何错误。

-U 升级安装。

-v 检测套件是否正确安装。

这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。

3.卸载软件

# rpm-e 软件名

需要说明的是,上面代码中使用的是软件名,而不是软件包名。例如,要卸载software-1.2.-1.i386.rpm这个包时,应执行:

#rpm-e software

4.强行卸载RPM包

有时除去一个RPM是不行的,尤其是系统上有别的程序依赖于它的时候。如果执行命令会显示如下错误信息:

## rpm-e xsnow

error: removing these packages would break dependencies:

/usr/X11R6/bin/xsnow is needed by x-amusements-1.0-1

在这种情况下,可以用--force选项重新安装xsnow:

## rpm-ivh--force xsnow-1.41-1.i386.rpm

xsnow

这里推荐使用工具软件Kleandisk,用它可以安全彻底清理掉不再使用的RPM包。

5.安装.src.rpm类型的文件

目前RPM有两种模式,一种是已经过编码的(i386.rpm),一种是未经编码的(src.rpm)。

rpm--rebuild Filename.src.rpm

这时系统会建立一个文件Filenamr.rpm,在/usr/src/redflag/RPMS/子目录下,一般是i386,具体情况和Linux发行版本有关。然后执行下面代码即可:

rpm-ivh /usr/src/regflag/RPMS/i386/Filename.rpm

使用deb打包的软件安装

deb是Debian Linux提供的一个包管理器,它与RPM十分类似。但由于RPM出现得早,并且应用广泛,所以在各种版本的Linux中都常见到,而Debian的包管理器dpkg只出现在Debina Linux中。它的优点是不用被严格的依赖性检查所困扰,缺点是只在Debian Linux发行版中才能见到这个包管理工具。

1.安装

# dpkg-i MYsoftware-1.2.-1.deb

2.卸载

# dpkg-e MYsoftware

tar.gz等使用源代码进行软件安装:.和RPM安装方式相比,使用源代码进行软件安装会复杂一些,但是用源代码安装软件是Linux下进行软件安装的重要手段,也是运行Linux的最主要的优势之一。使用源代码安装软件,能按照用户的需要选择定制的安装方式进行安装,而不是仅仅依靠那些在安装包中的预配置的参数选择安装。另外,仍然有一些软件程序只能从源代码处进行安装。

现在有很多地方都提供源代码包,到底在什么地方获得取决于软件的特殊需要。对于那些使用比较普遍的软件,如Sendmail,可以从商业网站处下载源代码软件包(如http://www.daodoc.comum1-num2 filename 说明:显示每行从开头算起 num1 到 num2 的文字。范例:

shell>> cat example test2 this is test1 shell>> cut-c0-6 example ## print 开头算起前 6 个字元 test2 this i

find 用法 : find 使用说明 : 将档案系统内符合 expreion 的档案列出来。你可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。

find 根据下列规则判断 path 和 expreion,在命令列上第一个filename.dump.重新载入

% createdb dbname % cat filename.dump.* | pgsql dbname

touch

使用权限:所有使用者 使用方式: touch [-acfm] [-r reference-file] [--file=reference-file] [-t MMDDhhmm[CC]YY][.] [-d time] [--date=time] [--time={atime,acce,use,mtime,modify}] [--no-create] [--help] [--version] file1 [file2...]

说明:

touch 指令改变档案的时间记录。ls-l 可以显示档案的时间记录。

参数:

a 改变档案的读取时间记录。m 改变档案的修改时间记录。

c 假如目的档案不存在,不会建立新的档案。与--no-create 的效果一样。f 不使用,是为了与其他 unix 系统的相容性而保留。r 使用参考档的时间记录,与--file 的效果一样。d 设定时间与日期,可以使用各种不同的格式。t 设定档案的时间记录,格式与 date 指令相同。--no-create 不会建立新档案。--help 列出指令格式。--version 列出版本讯息。范例:

最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。touch file touch file1 file2 将 file 的时间记录改为 5 月 6 日 18 点 3 分,公元两千年。时间的格式可以参考 date 指令,至少需输入 MMDDHHmm,就是月日时与分。touch-c-t 05061803 file touch-c-t 050618032000 file 将 file 的时间记录改变成与 referencefile 一样。touch-r referencefile file 将 file 的时间记录改成 5 月 6 日 18 点 3 分,公元两千年。时间可以使用 am, pm 或是 24 小时的格式,日期可以使用其他格式如 6 May 2000。touch-d “6:03pm” file touch-d “05/06/2000” file touch-d “6:03pm 05/06/2000” file

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 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9 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 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8 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 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8 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 : 显示公元 2001 年 5 月月历。

[root@mylinux /root]# cal 5 2001 May 2001

Su Mo Tu We Th Fr Sa 1 2 3 4 5 7 8 9 10 11 12 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 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 3 4 5 6 7 8 37 38 39 40 41 42 43 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

99

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

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 分钟这段时间内要执行,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 寄一封信给 alex@domain.name : 0 17 * * 1-5 mail-s “hi” alex@domain.name

每月每天的午夜 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][.] 说明 :

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: [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][.],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,为秒数

把计 :

-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),则可以在标记中插入18:40(00:03)minery pts/0 140.119.217.115 Mon Aug 14 17:22[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.db。newaliases 的功能传是将 /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.addre

mail user1@email.addre user2

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

mail-s 标题-c user1 user2

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.db。newaliases 的功能传是将 /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 [ meage ] 使用说明:

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

nice

使用权限:所有使用者

使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...] 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为-20(最高优先序)到 19(最低优先序)把计

-n adjustment,-adjustment,--adjustment=adjustment 皆为将该原有优先序的增加 adjustment--help 显示求助讯息

--version 显示版本资讯

范例:

将 ls 的优先序加 1 并执行 : nice-n 1 ls

将 ls 的优先序加 10 并执行 :

nice ls将 ls 的优先序加 10 并执行

注意 : 优先序(priority)为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。

ps

使用权限:所有使用者

使用方式:ps [options] [--help] 说明:显示瞬间行程(proce)的动态

参数:

ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义

-A 列出所有的行程

-w 显示加宽可以显示较多的资讯

-au 显示较详细的资讯

-aux 显示所有包含其他使用者的行程

au(x)输出格式 :

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND USER: 行程拥有者

PID: pid

%CPU: 占用的 CPU 使用率

%MEM: 占用的记忆体使用率

VSZ: 占用的虚拟记忆体大小

RSS: 占用的记忆体大小

TTY: 终端的次要装置号码(minor device number of tty)STAT: 该行程的状态:

D: 不可中断的静止(通悸□□缜b进行 I/O 动作)R: 正在执行中

S: 静止状态

T: 暂停执行

Z: 不存在但暂时无法消除

W: 没有足够的记忆体分页可分配

N: 低优先序的行程

L: 有记忆体分页分配并锁在记忆体内(即时系统或捱A I/O)START: 行程开始时间

TIME: 执行的时间

COMMAND:所执行的指令

范例:

ps

PID TTY TIME CMD 2791 ttyp0 00:00:00 tcsh 3092 ttyp0 00:00:00 ps % ps-A

PID TTY TIME CMD 1 ? 00:00:03 init 2 ? 00:00:00 kflushd 3 ? 00:00:00 kpiod 4 ? 00:00:00 kswapd ? 00:00:00 mdrecoveryd.......% ps-aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3] root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd] root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod] root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]........pstree

使用权限:所有使用者

使用方式:

pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user] pstree-V 说明:将所有行程以树状图显示, 树状图将会以 pid(如果有指定)或是以 init 这个基本行程为根(root),如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程

参数:

-a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号

-c 如果有重覆的行程名, 则分开列出(预设值是会在前面加上 * 范例:

pstree init-+-amd |-apmd |-atd

|-httpd---10*[httpd] %pstree-p

init(1)-+-amd(447)|-apmd(105)|-atd(339)%pstree-c init-+-amd |-apmd |-atd

|-httpd-+-httpd | |-httpd | |-httpd | |-httpd....renice 使用权限:所有使用者

使用方式:renice priority [-p] pid...] [-g] pgrp...] [-u] user...]

说明:重新指定一个或多个行程(Proce)的优先序(一个或多个将根据所下的参数而定)把计

-p pid 重新指定行程的 id 为 pid 的行程的优先序

-g pgrp 重新指定行程群组(proce group)的 id 为 pgrp 的行程(一个或多个)的优先序

-u user 重新指定行程拥有者为 user 的行程的优先序

范例:

将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 : renice +1 987-u daemon root-p 32

注意 : 每一个行程(Proce)都有一个唯一的(unique)id

top

使用权限:所有使用者

使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] 说明:即时显示 proce 的动态

把计

d : 改变显示的更新速度,或是在交谈式指令列(interactive command)按 s

q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行

c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程(dead child proce)的 CPU time 累积起来

s : 安全模式,将交谈式指令取消, 避免潜在的危机

i : 不显示任何闲置(idle)或无用(zombie)的行程

n : 更新的次数,完成后将会退出 top

b : 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内

范例:

显示更新十次后退出;top-n 10

使用者将不能利用交谈式指令来对行程下命令 : top-s

将更新显示二次的结果输入到名称为 top.log 的档案里 : top-n 2-b

skill

使用权限:所有使用者 使用方式: skill [signal to send] [options] 选择程序的规则

说明:

送个讯号给正在执行的程序,预设的讯息为 TERM(中断), 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0

讯息有三种写法:分别为-9 ,-SIGKILL ,-KILL , 可以使用-l 或-L 已列出可使用的讯息。

一般参数:

-f 快速模式/尚未完成

-i 互动模式/ 每个动作将要被确认

-v 详细输出/ 列出所选择程序的资讯

-w 智能警告讯息/ 尚未完成-n 没有动作/ 显示程序代号

参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。

-t 终端机代号(tty 或 pty)-u 使用者名称

-p 程序代号(pid)

-c 命令名称 可使用的讯号:

以下列出已知的讯号名称,讯号代号,功能。

名称(代号)功能/ 描述

ALRM 14 离开

HUP 1 离开

INT 2 离开

KILL 9 离开/ 强迫关闭

PIPE 13 离开

POLL 离开

PROF 离开

TERM 15 离开

USR1 离开

USR2 离开

VTALRM 离开

STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体

UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体

TSTP 停止 /产生与内容相关的行为

TTIN 停止 /产生与内容相关的行为

TTOU 停止 /产生与内容相关的行为

STOP 停止 /强迫关闭

CONT 从新启动 /如果在停止状态则从新启动,否则忽略

PWR 忽略 /在某些系统中会离开

WINCH 忽略

CHLD 忽略

ABRT 6 核心

FPE 8 核心

ILL 4 核心

QUIT 3 核心

SEGV 11 核心 TRAP 5 核心

SYS 核心 /或许尚未实作

EMT 核心 /或许尚未实作

BUS 核心 /核心失败

XCPU 核心 /核心失败

XFSZ 核心 /核心失败

范例:

停止所有在 PTY 装置上的程序

skill-KILL-v pts/*

停止三个使用者 user1 , user2 , user3 skill-STOP user1 user2 user3 其他相关的命令: kill

expr

使用权限:所有使用者

### 字串长度

shell>> expr length “this is a test” 14

### 数字商数

shell>> expr 14 % 9 5

### 从位置处抓取字串

shell>> expr substr “this is a test” 3 5 is is

### 数字串 only the first character shell>> expr index “testforthegame” e 2

### 字串真实重现

shell>> expr quote thisisatestformela thisisatestformela

tr

### 1.比方说要把目录下所有的大写档名换为小写档名? 似乎有很多方式,“tr”是其中一种: #!/bin/sh

dir=“/tmp/testdir”;files=`find $dir-type f`;for i in $files do

dir_name=`dirname $i`;ori_filename=`basename $i`

new_filename=`echo $ori_filename | tr [:upper:] [:lower:]` > /dev/null;#echo $new_filename;

mv $dir_name/$ori_filename $dir_name/$new_filename done

### 2.自己试验中...lowercase to uppercase tr abcdef...[del] ABCDE...[del] tr a-z A-Z

tr [:lower:] [:upper:]

shell>> echo “this is a test” | tr a-z A-Z > www.daodoc.compre 使用权限:所有使用者

使用方式:compre [-dfvcV] [-b maxbits] [file...]

说明:

compre 是一个相当古老的 unix 档案压缩指令,压缩后的档案会加上一个.Z 延伸档名以区别未压缩的档案,压缩后的档案可以以 uncompre 解压。若要将数个档案压成一个压缩档,必须先将档案 tar 起来再压缩。由于 gzip 可以产生更理想的压缩比例,一般人多已改用 gzip 为档案压缩工具。

参数:

c 输出结果至标准输出设备(一般指荧幕)

f 强迫写入档案,若目的档已经存在,则会被覆盖(force)v 将程式执行的讯息印在荧幕上(verbose)

b 设定共同字串数的上限,以位元计算,可以设定的值为 9 至 16 bits。由于值越大,能使用的共同字串就 越多,压缩比例就越大,所以一般使用预设值 16 bits(bits)d 将压缩档解压缩

V 列出版本讯息

范例:

将 source.dat 压缩成 source.dat.Z,若 source.dat.Z 已经存在,内容则会被压缩档覆盖。

compre-f source.dat

将 source.dat 压缩成 source.dat.Z,并列印出压缩比例。

-v 与-f 可以一起使用

compre-vf source.dat

将压缩后的资料输出后再导入 target.dat.Z 可以改变压缩档名。

compre-c source.dat > target.dat.Z

-b 的值越大,压缩比例就越大,范围是 9-16,预设值是 16。

compre-b 12 source.dat

将 source.dat.Z 解压成 source.dat,若档案已经存在,使用者按 y 以确定覆盖档案,若使用-df 程式则会自动覆盖档案。由于系统会自动加入.Z 为延伸档名,所以 source.dat 会自动当作 source.dat.Z 处理。

compre-d source.dat compre-d source.dat.Z

lpd

使用权限: 所有使用者

使用方式:lpd [-l] [#port]

lpd 是一个常驻的印表机管理程式,它会根据 /etc/printcap 的内容来管理本地或远端的印表机。/etc/printcap 中定义的每一个印表机必须在 /var/lpd 中有一个相对应的目录,目录中以 cf 开头的档案表示一个等待送到适当装置的印表工作。这个档案通常是由 lpr 所产生。

lpr 和 lpd 组成了一个可以离线工作的系统,当你使用 lpr 时,印表机不需要能立即可用,甚至不用存在。lpd 会自动监视印表机的状况,当印表机上线后,便立即将档案送交处理。这个得所有的应用程式不必等待印表机完成前一工作。

参数:

-l: 将一些除错讯息显示在标准输出上。

#port: 一般而言,lpd 会使用 getservbyname 取得适当的 TCP/IP port,你可以使用这个参数强迫 lpd 使用指定的 port。

范例:

这个程式通常是由 /etc/rc.d 中的程式在系统启始阶段执行。

名称 lpq

--显示列表机贮列中未完成的工作 用法

lpq [l] [P] [user] 说明

lpq 会显示由 lpd 所管理的列表机贮列中未完成的项目。

范例

范例 1.显示所有在 lp 列表机贮列中的工作

# lpq-PlpRank Owner Job Files Total Size1st root 238(standard input)1428646 bytes

相关函数

lpr,lpc,lpd

lpr

使用权限: 所有使用者

使用方式:lpr [-P printer ]

将档案或是由标准输入送进来的资料送到印表机贮列之中,印表机管理程式 lpd 会在稍后将这个档案送给适当的程式或装置处理。lpr 可以用来将料资送给本地或是远端的主机来处理。

参数:

-p Printer: 将资料送至指定的印表机 Printer,预设值为 lp。

范例:

将 www.daodoc.com 供各位查阅!

进入vi的命令

vi filename :打开或新建文件,并将光标置于第一行首

vi +n filename :打开文件,并将光标置于第n行首

vi + filename :打开文件,并将光标置于最后一行首

vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

vi-r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑

移动光标类命令

h :光标左移一个字符

l :光标右移一个字符

space:光标右移一个字符

Backspace:光标左移一个字符

k或Ctrl+p:光标上移一行

j或Ctrl+n :光标下移一行

Enter :光标下移一行

w或W :光标右移一个字至字首

b或B :光标左移一个字至字首

e或E :光标右移一个字至字尾):光标移至句尾

(:光标移至句首

}:光标移至段落开头

{:光标移至段落结尾

nG:光标移至第n行首

n+:光标下移n行

n-:光标上移n行

n$:光标移至第n行尾

H :光标移至屏幕顶行

M :光标移至屏幕中间行

L :光标移至屏幕最后行

0:(注意是数字零)光标移至当前行首

$:光标移至当前行尾

屏幕翻滚类命令

Ctrl+u:向文件首翻半屏

Ctrl+d:向文件尾翻半屏

Ctrl+f:向文件尾翻一屏

Ctrl+b;向文件首翻一屏

nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令

i :在光标前 I :在当前行首

a:光标后

A:在当前行尾

o:在当前行之下新开一行

O:在当前行之上新开一行

r:替换当前字符

R:替换当前字符及其后的字符,直至按ESC键

s:从当前光标位置处开始,以输入的文本替代指定数目的字符

S:删除指定数目的行,并以所输入文本代替之

ncw或nCW:修改指定数目的字

nCC:修改指定数目的行

删除命令

ndw或ndW:删除光标处开始及其后的n-1个字

do:删至行首

d$:删至行尾

ndd:删除当前行及其后n-1行

x或X:删除一个字符,x删除光标后的,而X删除光标前的Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令

/pattern:从光标开始处向文件尾搜索pattern ?pattern:从光标开始处向文件首搜索pattern n:在同一方向重复上一次搜索命令

N:在反方向上重复上一次搜索命令

:s/p1/p2/g:将当前行中所有p1均用p2替代

:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置

all:列出所有选项设置情况

term:设置终端类型

ignorance:在搜索中忽略大小写

list:显示制表位(Ctrl+I)和行尾标志($)number:显示行号

report:显示由面向行的命令修改过的数目

terse:显示简短的警告信息

warn:在转到别的文件时若没保存当前文件则显示NO write信息

nomagic:允许在搜索模式中,使用前面不带“”的特殊字符

nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始

mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令

:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下 :n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下

:n1,n2 d :将n1行到n2行之间的内容删除

:w :保存当前文件

:e filename:打开文件filename进行编辑

:x:保存当前文件并退出

:q:退出vi

:q!:不保存文件并退出vi

:!command:执行shell命令command

:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入

:r!command:将命令command的输出结果放到当前行

寄存器操作

“?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字

”?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字

“?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字

”?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字

ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

《linux、samba、vi命令集合.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
linux、samba、vi命令集合
点击下载文档
相关专题 linux下vi命令大全 命令 Linux samba linux下vi命令大全 命令 Linux samba
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文