网站首页 > 文章中心 > 其它

linux命令比对序列

作者:小编 更新时间:2023-09-01 13:04:16 浏览量:17人看过

Linux系统最基本,经常用的命令有哪些呢?

Linux必学的系统管理命令

对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心.熟悉了Linux常用的文件处理命令以后,这一讲介绍对系统和用户进行管理的命令.

cat cd

chmod chown

cp cut

linux命令比对序列-图1

名称:cat

使用权限:所有使用者

使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName

说明:把档案串连接后传到基本输出(萤幕或加 fileName 到另一个档案)

参数:

linux命令比对序列-图2

-n 或 --number 由 1 开始对所有输出的行数编号

-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号

-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行

-v 或 --show-nonprinting

范例:

名称 : cd

使用权限 : 所有使用者

使用方式 : cd [dirName]

说明 : 变换工作目录至 dirName. 其中 dirName 表示法可为绝对路径或相对路径.若目录名称省略,则变换至使用者的 home directory (也就是刚 login 时所在的目录).

另外,"~" 也表示为 home directory 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录.

范例 : 跳到 /usr/bin/ :

cd /usr/bin

跳到自己的 home directory :

cd ~

跳到目前目录的上上两层 :

cd ../..

指令名称 : chmod

使用方式 : chmod [-cfvR] [--help] [--version] mode file...

说明 : Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他.利用 chmod 可以藉以控制档案如何被他人所存取.

把计 :

mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是.

+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限.

r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行.

-c : 若该档案权限确实已经更改,才显示其更改动作

-f : 若该档案权限无法被更改也不要显示错误讯息

-v : 显示权限变更的详细资料

-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

--help : 显示辅助说明

--version : 显示版本

范例 :将档案 file1.txt 设为所有人皆可读取 :

chmod ugo+r file1.txt

将档案 file1.txt 设为所有人皆可读取 :

chmod a+r file1.txt

将 ex1.py 设定为只有该档案拥有者可以执行 :

chmod u+x ex1.py

将目前目录下的所有档案与子目录皆设为任何人可读取 :

chmod -R a+r *

语法为:chmod abc file

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限.

chmod a=rwx file

效果相同

chmod ug=rwx,o=x file

指令名称 : chown

使用权限 : root

使用方式 : chmod [-cfhvR] [--help] [--version] user[:group] file...

说明 : Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者.利用 chown 可以将档案的拥有者加以改变.一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人.只有系统管理者(root)才有这样的权限.

user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group)-c : 若该档案拥有者确实已经更改,才显示其更改动作-f : 若该档案拥有者无法被更改也不要显示错误讯息-h : 只对于连结(link)进行变更,而非该 link 真正指向的档案-v : 显示拥有者变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)--help : 显示辅助说明--version : 显示版本

范例 :

将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :

chown jessie:users file1.txt

将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :

chmod -R lamport:users *

名称:cp

使用方式:

cp [options] source dest

cp [options] source... directory

说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录.

把计?

-a 尽可能将档案状态、权限等资料都照原状予以复制.

-r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地.

-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制.

将档案 aaa 复制(已存在),并命名为 bbb :

cp aaa bbb

将所有的C语言程式拷贝至 Finished 子目录中 :

cp *.c Finished

名称:cut

shell cat example

this is test1

this i

名称 : find

用法 : find

使用说明 :

将档案系统内符合 expression 的档案列出来.你可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来.

find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression.如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression?

expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份.

-mount, -xdev : 只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案

-amin n : 在过去 n 分钟内被读取过

-anewer file : 比档案 file 更晚被读取过的档案

-atime n : 在过去 n 天过读取过的档案

-cmin n : 在过去 n 分钟内被修改过

-cnewer file :比档案 file 更新的档案

-ctime n : 在过去 n 天过修改过的档案

-empty : 空的档案-gid n or -group name : gid 是 n 或是 group 名称是 name

-ipath p, -path p : 路径名称符合 p 的档案,ipath 会忽略大小写

-name name, -iname name : 档案名称符合 name 的档案.iname 会忽略大小写

d: 目录

c: 字型装置档案

b: 区块装置档案

p: 具名贮列

f: 一般档案

l: 符号连结

s: socket

-pid n : process id 是 n 的档案

你可以使用 ( ) 将运算式分隔,并使用下列运算.

! expr

-not expr

范例:

将目前目录及其子目录下所有延伸档名是 c 的档案列出来.

# find . -name "*.c"

将目前目录其其下子目录中所有一般档案列出

# find . -ftype f

名称:less

less [Option] filename

说明:

less 的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 允许使用者往回卷动

指令名称 : ln

使用方式 : ln [options] source dist,其中 option 的格式为 :

[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]

[--help] [--version] [--]

说明 : Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置.硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统.

ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定.

不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间.

-f : 链结时先将与 dist 同档名的档案删除-d : 允许系统管理者硬链结自己的目录-i : 在删除与 dist 同档名的档案时先进行询问-n : 在进行软连结时,将 dist 视为一般的档案-s : 进行软链结(symbolic link)-v : 在连结之前显示其档名-b : 将在链结时会被覆写或删除的档案进行备份-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾-V METHOD : 指定备份的方式--help : 显示辅助说明--version : 显示版本

将档案 yy 产生一个 symbolic link : zz

ln -s yy zz

将档案 yy 产生一个 hard link : zz

ln yy xx

名称:locate

使用方式: locate [-q] [-d ] [--database=]

locate [-r ] [--regexp=]

locate [-qv] [-o ] [--output=]

locate [-e ] [-f ] [-l ] [-c]

[-U ] [-u]

locate [-Vh] [--version] [--help]

locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案.其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系统之中了.

在一般的 distribution 之中,资料库的建立都被放在 contab 中自动执行.一般使用者在使用时只要用

# locate your_file_name

的型式就可以了. 参数:

-u

-U

建立资料库,-u 会由根目录开始,-U 则可以指定开始的位置.

-e

排除在寻找的范围之外.

-l

如果 是 1.则启动安全模式.在安全模式下,使用者不会看到权限无法看到的档案.这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料.

-f

将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在资料库中.

-q

安静模式,不会显示任何错误讯息.

-n

至多显示 个输出.

-r

使用正规运算式 做寻找的条件.

-o

指定资料库存的名称.

-d

指定资料库的路径

-h

显示辅助讯息

-v

显示更多的讯息

-V

显示程式的版本讯息 范例:

locate chdrv : 寻找所有叫 chdrv 的档案

locate -n 100 a.out : 寻找所有叫 a.out 的档案,但最多只显示 100 个

locate -u : 建立资料库

名称 : ls

使用方式 : ls [-alrtAFR] [name...]

说明 : 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录).

-a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)

-l 除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出

-r 将档案以相反次序显示(原定依英文字母次序)

-t 将档案依建立时间之先后次序列出

-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)

-F 在列出的档案名称后加一符号;例如可执行档则加 "*", 目录则加 "/"

-R 若目录下有档案,则以下之档案亦皆依序列出

列出目前工作目录下所有名称是 s 开头的档案,愈新的排愈后面 :

ls -ltr s*

将 /bin 目录以下所有目录及档案详细资料列出 :

ls -lR /bin

列出目前工作目录下所有档案及目录;目录于名称后加 "/", 可执行档于名称后加 "*" :

ls -AF

名称:more

使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

说明:类似 cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h .

参数:-num 一次显示的行数

-d 提示使用者,在画面下方显示 [Press space to continue, q to quit.] ,如果使用者按错键,则会显示 [Press h for instructions.] 而不是 哔 声

-l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能

-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)

-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容

-c 跟 -p 相似,不同的是先显示内容再清除其他旧资料

-s 当遇到有连续两行以上的空白行,就代换为一行的空白行

-u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)

+/ 在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示

+num 从第 num 行开始显示

fileNames 欲显示内容的档案,可为复数个数

more -s testfile 逐页显示 testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示.

名称:mv

mv [options] source dest

mv [options] source... directory

说明:将一个档案移至另一档案,或将数个档案移至另一目录.

参数:-i 若目的地已有同名档案,则先询问是否覆盖旧档.

将档案 aaa 更名为 bbb :

mv aaa bbb

将所有的C语言程式移至 Finished 子目录中 :

mv -i *.c

名称:rm

使用方式:rm [options] name...

说明:删除档案及目录.

-i 删除前逐一询问确认.

-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认.

-r 将目录及以下之档案亦逐一删除.

删除所有C语言程式档;删除前逐一询问确认 :

linux命令比对序列-图3

rm -i *.c

将 Finished 子目录及子目录中所有档案删除 :

rm -r Finished

名称:rmdir

使用权限:于目前目录有适当权限的所有使用者

使用方式: rmdir [-p] dirName

说明: 删除空的目录.

参数: -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除.

将工作目录下,名为 AAA 的子目录删除 :

rmdir AAA

在工作目录下的 BBB 目录中,删除名为 Test 的子目录.若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除.

rmdir -p BBB/Test

名称:split

使用方式:split [OPTION] [INPUT [PREFIX]]

将一个档案分割成数个.而从 INPUT 分割输出成固定大小的档案,其档名依序为 PREFIXaa, PREFIXab...;PREFIX 预设值为 +x.若没有 INPUT 档或为 +-,则从标准输入读进资料.

匡兜?

-b, --bytes=SIZE

SIZE 值为每一输出档案的大小,单位为 byte.

-C, --line-bytes=SIZE

每一输出档中,单行的最大 byte 数.

-l, --lines=NUMBER

NUMBER 值为每一输出档的列数大小.

-NUMBER

与 -l NUMBER 相同.

--verbose

于每个输出档被开启前,列印出侦错资讯到标准错误输出.

--help

显示辅助资讯然后离开.

--version

列出版本资讯然后离开.

PostgresSQL 大型资料库备份与回存:

因 Postgres 允许表格大过你系统档案的最大容量,所以要将表格 dump 到单一的档案可能会有问题,使用 split进行档案分割.

% pg_dump dbname | split -b 1m - filename.dump.

重新载入

% createdb dbname

% cat filename.dump.* | pgsql dbname

名称:touch

touch [-acfm]

[-r reference-file] [--file=reference-file]

[-t MMDDhhmm[[CC]YY][.ss]]

[-d time] [--date=time] [--time={atime,access,use,mtime,modify}]

[--no-create] [--help] [--version]

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

a 改变档案的读取时间记录.

m 改变档案的修改时间记录.

c 假如目的档案不存在,不会建立新的档案.与 --no-create 的效果一样.

f 不使用,是为了与其他 unix 系统的相容性而保留.

r 使用参考档的时间记录,与 --file 的效果一样.

d 设定时间与日期,可以使用各种不同的格式.

t 设定档案的时间记录,格式与 date 指令相同.

--no-create 不会建立新档案.

--help 列出指令格式.

--version 列出版本讯息.

最简单的使用方式,将档案的时候记录改为现在的时间.若档案不存在,系统会建立一个新的档案.

touch file

将 file 的时间记录改变成与 referencefile 一样.

touch -r referencefile file

df

①作用

df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户.

df [options]

-s:对每个Names参数只给出占用的数据块总数.

-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数.若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数.

-x:跳过在不同文件系统上的目录不予统计.

-l:计算所有的文件大小,对硬链接文件则计算多次.

-i:显示inode信息而非块使用量.

-P:使用POSIX输出格式.

-T:显示文件系统类型.

df命令被广泛地用来生成文件系统的使用统计数据,它能显示系统中所有的文件系统的信息,包括总容量、可用的空闲空间、目前的安装点等.

超级权限用户使用df命令时会发现这样的情况:某个分区的容量超过了100%.这是因为Linux系统为超级用户保留了10%的空间,由其单独支配.也就是说,对于超级用户而言,他所见到的硬盘容量将是110%.这样的安排对于系统管理而言是有好处的,当硬盘被使用的容量接近100%时系统管理员还可以正常工作.

#df -T

文件系统 类型 容量 已用 可用 已用% 挂载点

从上面除了可以看到磁盘空间的容量、使用情况外,分区的文件系统类型、挂载点等信息也一览无遗.

top

top命令用来显示执行中的程序进程,使用权限是所有用户.

top [-] [d delay] [q] [c] [S] [s] [i] [n]

d:指定更新的间隔,以秒计算.

q:没有任何延迟的更新.如果使用者有超级用户,则top命令将会以最高的优先序执行.

c:显示进程完整的路径与名称.

S:累积模式,会将己完成或消失的子行程的CPU时间累积起来.

s:安全模式.

i:不显示任何闲置(Idle)或无用(Zombie)的行程.

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

top命令是Linux系统管理的一个主要命令,通过它可以获得许多信息.这里我们结合图1来说明它给出的信息.

图1 top命令的显示

在图1中,第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载.第二行显示的是所有启动的进程、目前运行的、挂起 (Sleeping)的和无用(Zombie)的进程.第三行显示的是目前CPU的使用情况,包括系统占用的比例、用户使用比例、闲置(Idle)比例.第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存.第五行显示交换分区使用情况,包括总的交换分区、使用的、空闲的和用于高速缓存的大小.第六行显示的项目最多,下面列出了详细解释.

PID(Process ID):进程标示号.

USER:进程所有者的用户名.

PR:进程的优先级别.

NI:进程的优先级别数值.

VIRT:进程占用的虚拟内存值.

RES:进程占用的物理内存值.

SHR:进程使用的共享内存值.

S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数.

%CPU:该进程占用的CPU使用率.

%MEM:该进程占用的物理内存和总内存的百分比.

TIME+:该进程启动后占用的总的CPU时间.

Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行.

top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能.这些命令是通过快捷键启动的.

空格:立刻刷新.

P:根据CPU使用大小进行排序.

T:根据时间、累计时间排序.

q:退出top命令.

m:切换显示内存信息.

t:切换显示进程和CPU状态信息.

c:切换显示命令名称和完整命令行.

M:根据使用内存大小进行排序.

W:将当前设置写入~/.toprc文件中.这是写top配置文件的推荐方法.

可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要.但是,它的缺点是会消耗很多系统资源.

free

free命令用来显示内存的使用情况,使用权限是所有用户.

free [-b|-k|-m] [-o] [-s delay] [-t] [-V]

-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况.

-s delay:显示每隔多少秒数来显示一次内存使用情况.

-t:显示内存总和列.

-o:不显示缓冲区调节列.

free命令是用来查看内存使用情况的主要命令.和top命令相比,它的优点是使用简单,并且只占用很少的系统资源.通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器.

quota

quota命令用来显示磁盘使用情况和限制情况,使用权限超级用户.

quota [-g][-u][-v][-p] 用户名 组名

-g:显示用户所在组的磁盘使用限制.

-u:显示用户的磁盘使用限制.

-v:显示没有分配空间的文件系统的分配情况.

-p:显示简化信息.

在企业应用中磁盘配额非常重要,普通用户要学会看懂自己的磁盘使用情况.要查询自己的磁盘配额可以使用下面命令(下例中用户账号是caojh):

#quota caojh

Filesystem blocks quota limit grace files quota limit grace

关于linux命令行,shell命令,vi命令

shell并不是一个所谓在"终端"执行的东西,而是一个linux内核与用户之间交互的界面,也可以理解成为是一个专业翻译的角色.

其实linux并不难学,无非就是些常用的'命令'罢了,而且这些所谓的'命令'多半都是以源码的方式存在在系统中的.所谓'命令行'不过就是调用这些源码后,然后让一个叫'shell'的'家伙'解释给linux内核去听.而这些所谓的'命令'统统都在bin或是sbin的目录下面.

linux在用户登录以后,自行会启动一个shell,所有用户必须通过shell才能与系统会话.linux的所谓窗口界面,只不过就是系统在用户登录后自行调用了一个shell脚本而启动了Xwindow后的表象罢了.

所谓'命令行'其实就是shell的解释命令.

linux下怎么用c获取硬盘物理序列号

①.、在Linux系统中通过C语言获取硬盘序列号,可以借助于ioctl()函数,该函数原型如下:

int?ioctl(int?fd,?unsigned?long?request,?...);

ioctl的第一个参数是文件标识符,用open()函数打开设备时获取.

ioctl第二个参数为用于获得指定文件描述符的标志号,获取硬盘序列号,一般指明为HDIO_GET_IDENTITY.

ioctl的第三个参数为一些辅助参数,要获取硬盘序列号,需要借助于struct?hd_driveid结构体来保存硬盘信息?,该结构体在Linux/hdreg.h中,struct?hd_driveid的声明如下

struct?hd_driveid?{

unsigned?short?config;??/?lots?of?obsolete?bit?flags?*/

unsigned?short?cyls;??/*?Obsolete,?"physical"?cyls?*/

unsigned?short?heads;??/*?Obsolete,?"physical"?heads?*/

unsigned?short?track_bytes;?/*?unformatted?bytes?per?track?*/

unsigned?short?sector_bytes;?/*?unformatted?bytes?per?sector?*/

unsigned?short?sectors;?/*?Obsolete,?"physical"?sectors?per?track?*/

unsigned?short?vendor0;?/*?vendor?unique?*/

unsigned?short?vendor1;?/*?vendor?unique?*/

unsigned?short?buf_type;?/*?Retired?*/

*?0?=?not_specified

*/

......

};

#include?stdio.h

//ioctl()的声明头文件

#include?sys/ioctl.h

//硬盘参数头文件,?hd_driveid结构声明头文件

#include?linux/hdreg.h

//文件控制头文件

#include?sys/fcntl.h

int?main()

{

//用于保存系统返回的硬盘数据信息

struct?hd_driveid?id;

//这里以第一块硬盘为例,用户可自行修改

//用open函数打开获取文件标识符,类似于windows下的句柄

int?fd?=?open("/dev/sda",?O_RDONLY|O_NONBLOCK);

//失败返回?

if?(fd?0)?{

perror("/dev/sda");

return?1;?}

//调用ioctl()

if(!ioctl(fd,?HDIO_GET_IDENTITY,?id))

printf("Serial?Number=%s\n",id.serial_no);

}

return?0;

编译完成后,执行效果如下:

linux命令的格式化命令是什么?

如果一个名称用%括起来,那么就是用的它的赋值,而不是本身的字母

比如

echo time echo %time%

----------------------------------------------------------------------

FOR这条命令基本上都被用来处理文本,我们这次除了要说他处理文本的作用外还要讲他的其他一些好用的功能!

看看他的基本格式(这里我引用的是批处理中的格式,直接在命令行只需要一个%号)

FOR 参数 %%变量名 IN (相关文件或命令) DO 执行的命令

%%变量名 :这个变量名可以是小写a-z或者大写A-Z,他们区分大小写哦~

FOR会把每个读取到的值给他!

IN:命令的格式,照写就是了!

(相关文件或命令) :FOR要把什么东西读取然后赋值给变量,不懂的话看下面的例子

do:命令的格式,照写就是了!

执行的命令:对每个变量的值要执行什么操作就写在这.

看不懂我的这些说明,可以在CMD输入for /?看系统提供的帮助!我这里也给出来吧,大家对照

FOR %%variable IN (set) DO command [command-parameters]

%%variable 指定一个单一字母可替换的参数.

(set) 指定一个或一组文件.可以使用通配符.

command 指定对每个文件执行的命令.

command-parameters

为特定命令指定参数或命令行开关.

现在开始讲每个参数的意思

/d

仅为目录

如果 Set (也就是我上面写的 "相关文件或命令") 包含通配符(* 和 ?),将对与 Set 相匹配的每个目录(而不是指定目录中的文件组)执行指定的 Command.

这个参数其实我也没弄太懂...有错误希望各位纠正!

系统帮助的格式:FOR /D %%variable IN (set) DO command

他主要用于目录搜索,不会搜索文件,看这样的例子

@echo off

for /d %%i in (*) do @echo %%i

pause

把他保存放在C盘根目录执行,就会把C盘目录下的全部目录名字打印出来,而文件名字一个也不显示!

for /d %%i in (?) do @echo %%i

这里解释下*号和?号的作用,*号表示任意N个字符,而?号只表示任意一个字符

知道作用了,给大家个思考题目!

for /d %%i in (window?) do @echo %%i

保存到C盘下执行,会显示什么呢?自己看吧!

/D参数只能显示当前目录下的目录名字,这个大家要注意!

/R

递归

进入根目录树 [Drive:]Path,在树的每个目录中执行 for 语句.如果在 /R 后没有指定目录,则认为是当前目录.如果 Set 只是一个句点 (.),则只枚举目录树.

系统帮助的格式:FOR /R [[drive:]path] %%variable IN (set) DO command

上面我们知道,/D只能显示当前路径下的目录名字,那么现在这个/R也是和目录有关,他能干嘛呢?放心他比/D强大多了!

他可以把当前或者你指定路径下的文件名字全部读取,注意是文件名字,有什么用看例子!

for /r c:\ %%i in (*.exe) do @echo %%i

咋们把这个BAT保存到D盘随便哪里然后执行,我会就会看到,他把C盘根目录,和每个目录的子目录下面全部的EXE文件都列出来了!!!!

再来一个

for /r %%i in (*.exe) do @echo %%i

参数不一样了吧!这个命令前面没加那个C:\也就是搜索路径,这样他就会以当前目录为搜索路径,比如你这个BAT你把他防灾d:\test目录下执行,那么他就会把D:\test目录和他下面的子目录的全部EXE文件列出来!!!

这个参数大家因该理解了吧!还是满好玩的命令!

/L

迭代数值范围

系统帮助的格式:for /L %% Variable in (Start#,Step#,End#) do Command

看着这说明有点晕吧!咋们看例子就不晕了!

大会晕,就打印个数字有P用...好的满足大家,看这个例子

看完这个被我赋予破坏性质的参数后,我们来看最后一个参数

/f

\迭代及文件解析

使用文件解析来处理命令输出、字符串及文件内容.使用迭代变量定义要检查的内容或字符串,并使用各种 ParsingKeywords 选项进一步修改解析方式.使用 ParsingKeywords 令牌选项指定哪些令牌应该作为迭代变量传递.请注意:在没有使用令牌选项时,/F 将只检查第一个令牌.

文件解析过程包括读取输出、字符串或文件内容,将其分成独立的文本行以及再将每行解析成零个或更多个令牌.然后通过设置为令牌的迭代变量值,调用 for 循环.默认情况下,/F 传递每个文件每一行的第一个空白分隔符号.跳过空行.

系统帮助的格式:

for /F "ParsingKeywords" %% Variable in (FileNameSet) do Command

有没有发现这个参数说明比上面几个都多...没办法,人们用FOR命令主要也就是用/f参数,FOR的主场啊!大家得好好看!

先来解释下那个多出来的"ParsingKeywords"

eol=c - 指一个行注释字符的结尾(就一个)

skip=n - 指在文件开始时忽略的行数.

delims=xxx - 指分隔符集.这个替换了空格和跳格键的

默认分隔符集.

tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代

的 for 本身.这会导致额外变量名称的分配.m-n

格式为一个范围.通过 nth 符号指定 mth.如果

符号字符串中的最后一个字符星号,

那么额外的变量将在最后一个符号解析之后

分配并接受行的保留文本.

usebackq - 指定新语法已在下类情况中使用:

在作为命令执行一个后引号的字符串并且一个单

引号字符为文字字符串命令并允许在 filenameset

中使用双引号扩起文件名称.

先别晕了!我这就举个例子让粉丝们变的更强来理解这些参数!

usebackq这个参数不用理解了,系统默认会给我们加上!

为了能使用这个例子,我们先新建一个文本文件,在里面打上这些内容保存为test.txt:

;郁闷啊!

您好! 欢迎来到, 非常批处理

我们的网站 bbs.verybat.org

完毕!

FOR /F "eol=; tokens=1 delims= " %%i in (test.txt) do @echo %%i

我们把这个BAT保存到和你的test.txt相同的目录下面然后执行

我们会看到屏幕上会显示

您好!

我们的网站

为什么会这样?我来解释

这个命令会读取在当前目录下名为test.txt文件中的内容,将每一行的内容赋值给变量%%i,忽略掉以;号开头的行,并且以空格做为分隔符号,打印每行以空格做分隔符号的第一列

结果就是这样了!!

如果改成

当然我们想要把全部文件内容直接打印出来就可以这样

FOR /F "delims=" %%i in (test.txt) do @echo %%i

另外/F参数还可以以输出命令的结果看这个例子

FOR /F "delims=" %%i in ('net user') do @echo %%i

这样你本机全部帐号名字就出来了把扩号内的内容用两个单引号引起来就表示那个当命令执行,FOR会返回命令的每行结果,加那个"delims=" 是为了让我空格的行能整行显示出来,不加就只显示空格左边一列!

基本上讲完了FOR的基本用法了...如果你看过FOR的系统帮助,你会发现他下面还有一些特定义的变量,这些我先不讲.大家因该都累了吧!你不累我累啊....

Linux系统top命令的使用方法介绍

Linux系统top命令的使用方法介绍

在Linux系统中top命令可以用来监测进程的状态,也可以修改进程的优先序列.本文就来教大家Linux系统中top命令的使用方法,一起来看一下.

①.、主要选项

-b:以批次的方式运行top,通常利用重定向将top的输出重定向到文件

-n:结合-b使用,运行top几次

-p:指定观察的进程的'PID

:显示在 top 当中可以输入按键命令

P:按CPU的利用率排序显示;

M:按内存的利用率排序显示;

N:以 PID排序!

T:由该进程使用的CPU时间累积 (TIME+) 排序.

k:给某个 PID 一个信号(signal)

r:给某个 PID 重新指定一个nice值.

q:退出top.

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章