Liunx常用操作指令

前言bash一般格式

命令名 [选项] [参数1] [参数2]

①命令名必须为小写 ②[选项]是对命令的特殊具体定义 ③"[ ]"中是可选可有可无的

④命令正常执行返回0(无报错即执行)⑤联机后的help对每个命令都做了准确说明+

一,基本必会操作


man man                    #进入linux工作使用手册,含配置,编程各种操作非常详细!(“q”退出)
 
info                       #info是man指令的详细内容(info里有更完整最新的GUN工具信息)
 
help                       #显示shell的内部帮助信息
 
who                        #输出正在使用系统的用户信息
 
echo hello wold!           #echo将指定内容输出(输出hello wold!)
echo -e 今天 ·date·        #echo允许转义将指定内容输出(输出今天加系统时间)
 
mv                         #将一个文件移到另一个文件(下面有详解)
 
cp                         #将源文件或目录复制到目标文件或目录(下面有详解)
 
clear                      #清屏
 
ls                         #查看当前路径下文件
 
date                       #显示系统日期和时间
cal 10 2022                #显示2022年10月的日历(如果只输出第一个参数,则显示该年的日历)
 
ip addr                    #查看自己的网络位置相关数据
 
passwd                     #修改用户密码
 
su                         #获取管理员操作权限(下载和根目录操作等都需要权限)
sudo                       #使用管理员权限进行相关的操作
sudo passwd                #修改管理员密码
 
!!                         #执行上一条指令
!n                         #执行第n条指令
!string                    #执行上一条以string开头的指令
 
poweroff                   #直接关闭电源
reboot                     #重启
shutdown                   #一分钟后关机
 
exit                       #退出终端  

1.1shutdown(相关操作)

shutdown -r #关机并重启
shutdown -s -t #设置定时关机
shutdown -c #取消关机
shutdown -f #强行关闭应用
shutdown -h #休眠

1.2ping命令(ping [选项] ip)

ping -b #允许ping一个广播地址
ping -c count #发送count次测试报文
ping -r #绕过正常路由表可用来ping主机是否通
ping -s packetsize #指定发送字节数默认为56字节

二,目录操作

~表示用户主目录

.表当前目录

..上级目录

2.1 pwd(查看工作目录)

pwd                                     #查看当前工作路径

2.2 ls(列出指定目录内容)

ls                       #查看当前路径的内的文件和目录
ls -a                    #显示所有的文件,包括隐藏文件(以.开头的文件)
ls -A                    #显示所有的文件,包括隐藏文件,但不包括表示当前目录.和上级目录
ls -c                    #和-lt一起使用:显示列表并且以ctime(文件状态最后改变时间)排序。
                         #和-l一起使用:显示ctime并且以文件名排序。其他情况,以ctime排序
ls -d                    #仅列出目录本身,而不是列出目录里的内容列表
ls -f                    #直接列出结果,而不进行排序(ls默认会以文件名排序) 
ls --color[=WHEN]        #是否根据文件类型显示颜色,WHEN可以为never、always或者auto 
ls --full-time           #以完整的实际模式显示(包含年月日时分)
ls -g                    #列表显示结果,和-l类似,但是不显示文件所属者。 
ls -h                    #将文件内容大小以GB、KB等易读的方式显示
ls -i                    #结合-l参数,列出每个文件的inode 
ls -l                    #列出长数据串,显示出文件的属性与权限等数据信息(常用) 
ls -n                    #和-l类似,只是显示的所属用户和组不是名称而是对应的id 
ls -r                    #将排序结果以倒序方式显示。 
ls -S                    #以文件大小排序
ls -t                    #以修改时间排序 
ls --help                #显示帮助信息
ll                       #查看当前目录内的详细内容(权限,创建时间等)

2.3 cd(进入不同路径改变工作路径)

cd ~                                    #进入当前用户目录
cd /                                    #进入根目录
cd -                                    #进入上一次访问的目录
cd ..                                   #进入上一级目录
cd a/b/c                                #进入绝对路径(a下的b下的c)

2.4 mkdir(创建目录)

小tips:(命名目录或文件尽量避免 ; | < > ' " $ ! % & * ? \ () [] 因为有特殊含义)

mkdir sn                                #在当前目录下创建为“sn”的目录
mkdir /abc                              #在根目录下创建“abc”的目录
mkdir ./bb                              #在目录上一级创建“bb”的目录2.5 ln(创建连接命令)

2.5 ln(创建连接命令)

ln -d home/m1.c /home/test.1            #给home下的m1.c建立与test.c建立硬链接
ln -s home/m1.c /home/test.1            #给home下的m1.c建立与test.c建立符号链接 
ln -i home/m1.c /home/test.1            #给home下的m1.c覆盖test.c(需要用户授权)

2.6 find (搜索操作)

find / -name 'a'                        #搜索根目录下名为"a"的目录和文件
find / -name 'a*'                       #搜索根目录以为"a"开头的目录和文件

2.7 rm(删除操作)

rm -r /abc                              #删除/目录以及其中的文件(会提醒)
rm -rf /abc                             #直接强制删除目录及其中文件

三,文件基础知识

文件类型:(一共四种)

普通文件(-):文本文件,数据文件,可执行二进制文件。

目录文件(d):一种特别的文件,可构成文件系统的分层树结构。

设备文件(c字符,b块):一种可以标记各个设备驱动器,字符设备,块设备的文件。

符号链接文件(l):提供其他文件引用的文件。

文件路径:(从某一树节点出发,沿树的分支到达目标文件或者目录所在节点路径)

绝对路径:从根目录(/)出发直到目标文件或者目录的路径

相对路径:从当前目录出发直到目标文件或目录路径

通配符:

* 匹配任意数目的任意字符

? 匹配单一数目的任何字符

[] 匹配[ ]之内的任意字符

[!] 匹配除了[!]内的任意字符

3.1 cat(连接文件并输出显示文件内容)

cat -b file                        #从第一行开始输出file中所有非空内容
cat -n file                        #从第一行开始输出file中所有内容(包括空行)
cat -s file                        #将file中相邻空行合并为一个空行
cat -help                          #查看help的详细用法

3.2 more(命令显示一屏幕的文本)

more -[num] file                   #指定一屏显示具体(num)行数 
more -c file                       #显示满后不主动滚屏,清理后显示剩下内容
more -d file                       #显示时提示还有剩余内容百分比
more -s file                       #将联系空白行显示一个空白行输出
more +/ file                       #显示指定文件之前搜索字符串
more +[num] file                   #从第(num)行开始查看

在进行查看时 Space 显示文本下一屏内容

# B 显示上一屏内容

# Enter 显示文本下一行内容

# / 接着输入一个模式,可在文本中寻找下一个匹配模式

# H 显示帮助信息

# Q 退出more指令)

#(less与more相似,可用上下翻行,pagedown和pageup翻页)

3.3 head(在屏幕上显示指定文件的开头若干行)

head -[num] file                   #显示file文件的前num行
head -c -[num] file                #显示file文件的前num个字节
head -q file                       #显示文件内容,但不给出文件名
head -v file                       #显示文件内容,并给出文件名

3.4 touch (修改指定文件的时间标签,或创建空文件)

touch -a file                      #改变指定文件的存取时间
touch -m file                      #改变指定文件的修改时间
touch -f STAMP                     #使用STAMP指定的时间标签
touch ex2                          #创建ex2(空文件)

3.5 grep (文本文件中查找指定模式的词或短句)

grep -b -E [file1,flie2...]             #查找正则表达式下的输出首次匹配字符串在文件中的位置
grep -n -E [file1,flie2...]             #查找正则表达式下的输出匹配模式之前加行号
grep -v -E [file1,flie2...]             #查找正则表达式下的显示不包含匹配字符串的文本行号
grep -x -E [file1,flie2...]             #查找正则表达式下的显示整个行都要严格匹配行
grep -c -E [file1,flie2...]             #查找正则表达式下的匹配字符的行的总数
grep -f -E FILE [file1,flie2...]        #查找正则表达式下从文件FILE中获取模式
grep -i -E [file1,flie2...]             #查找正则表达式下匹配时不做大小写区分
grep -b -F [file1,flie2...]             #查找纯字符串下的输出首次匹配字符串在文件中的位置
grep -n -F [file1,flie2...]             #查找纯字符串下的输出匹配模式之前加行号
grep -v -F [file1,flie2...]             #查找纯字符串下的显示不包含匹配字符串的文本行号
grep -x -F [file1,flie2...]             #查找纯字符串下的显示整个行都要严格匹配行
grep -c -F [file1,flie2...]             #查找纯字符串下的匹配字符的行的总数
grep -f -F FILE [file1,flie2...]        #查找纯字符串下从文件FILE中获取模式
grep -i -F [file1,flie2...]             #查找纯字符串下匹配时不做大小写区分

3.6 sort (命令对文本文件的各行进行排序)

sort -m file                                #d对已排序好文件进行合并。
sort -c file                                #检查是否排序,未排序的报错
sort -o file                                #将排序放入指定文件里
sort -d file                                #按字典排序
sort -f file                                #忽略字母大小写排序
sort -i file                                #忽略非打印字符排序
sort -r file                                #按逆序排序
sort -b file                                #比较关键字忽略前导空白符
sort flie >more                             #将文件file的前10行定向到more中

3.7 uniq(命令从排序好的文件中去除重复行)

uniq -c file                                #显示输出时在行首加上出现次数
uniq -d file                                #只显示重复行
uniq -f -fields=N file                      #忽略比较前的N个字段
uniq -s -chars=N file                       #忽略比较前的N个字字符
uniq -u file                                #只显示文件的不重复行

3.8 comm (命令对两个已排序文件进行逐行比较)

comm -1 file1 flie2                         #比较已排序的两个文件不显示第一列
comm -2 file1 flie2                         #比较已排序的两个文件不显示第二列
comm -3 file1 flie2                         #比较已排序的两个文件不显示第三列

3.9 diff(比较两个文本文件并找出不同)

diff -b flie flie1                           #忽略空格造成的差别
diff -c flie flie1                           #输出格式未上下三行
diff -C n flie flie1                         #输出格式为上下n行
diff -e flie flie1                           #输出一个合法ed脚本
diff -i flie flie1                           #忽略字母大小写区别
diff -r flie flie1                           #当file1与file2都是目录,递归找子目录

3.10 cmp(命令对两个文件逐一比较相同不显示信息,有差异则会报出)

cmp -b file1 file2 #显示有差异的字节

cmp -i -initial=n file1 file2 #跳过开头n个字节

3.11 find(在指定目录下查找文件)

find [目录名] [条件表达式]

find cat -name filename #查找名为filename的文件

find cat -perm #按执行权限来查找

find cat -user username #按文件属主来查找

find cat -group groupname #按组来查找

find cat -mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前

find cat -atime -n +n #按文件访问时间来查找文件,-n指n天以内,+n指n天以前

find cat -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

find cat -nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在

find cat -nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存

find cat -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件

find cat -size n[c] #查长度为n块[或n字节]的文件

find cat -mount #查文件时不跨越文件系统mount点

find cat -follow #如果遇到符号链接文件,就跟踪链接所指的文件

find cat -prune #忽略某个目录

3.12 cp(复制文件或目录到指定位置,源文件不变)

cp -a /home/mengqc /home/liuz #常在复制目录时使用,递归将所有文件复制到目标文件

cp -d /home/mengqc /home/liuz #当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;

cp -i /home/mengqc /home/liuz #交互式复制文件,每个文件都要询问一次,可以输入n或者y进行选择复制或者不复制;

cp -l /home/mengqc /home/liuz #对源文件建立硬连接,实际上不复制文件;

cp -p /home/mengqc /home/liuz #保留源文件或目录的属性;

cp -R/r /home/mengqc /home/liuz #递归处理,复制指定目录里面的层层子目录和对应的文件;

cp -s /home/mengqc /home/liuz #对源文件建立软连接,实际上不复制文件;

cp -u /home/mengqc /home/liuz #复制时比较源文件与目标文件的更改时间,如果源比目标新,则进行复制。或者目标不存在同名时,也会进行复制。

cp -S /home/mengqc /home/liuz #在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;

cp -b /home/mengqc /home/liuz #备份已存在的目标文件后再进行覆盖;

cp -v /home/mengqc /home/liuz #显示执行情况的详细信息

3.13 (rm命令删除文件和目录)

rm -f test eample #删除test文件和eample文件(忽略不存在的文件删除)

rm -r /home/a #递归的删除指定目录下的各级子目录和文件(慎用!)

rm -i test #删除test文件(有提醒,输入y确定删除)

rm -d /home #删除空目录

3.14 mv(从一个目录移动文件到另一个目录)

mv -i soure target #将源文件soure,移动到target中(有提醒)

mv -f soure target #将源文件soure,移动到target中(无提醒)

mv /home/mengqc . #将/home/mengqc中所有文件移到当前目录

3.15 wc(统计指定文件的字节数,字数,行数并显示)

wc -clw flie #显示文件file的字节数,行数,字数(c[字节]l[行]w[字数]可换位置)

3.16 chmod(命令改变或者设置文件权限)

方式:chmod [who] [操作符] [mode] 文件名

例:chmod a+x ex1 #将文件ex1权限改为所用用户可执行

#(具体组合太多以下列出选项

#who u 表示“用户(user)”,即文件或目录的所有者。

# g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。

# o 表示“其他(others)用户”。

# a 表示“所有(all)用户”,也就是包括了u、g、o,它是系统默认值。

#操作符

# + 添加某个权限。

# - 取消某个权限。

# = 重新分配权限。

#mode

# r 表示有读取的权限

# w 表示有写入的权限

# x 表示有执行的权限

(umask显示或设置新建文件权限的掩码)

(chgrp 改变文件或目录的用户组)

(chown改变文件或者目录的所属组)

四,进程相关命令操作

各项参数如下:

USER: 进程的当前用户;

PID : 毫无疑问, process ID的缩写,也就进程号;

PPID :process parent ID,父进程ID

VSIZE : virtual size,进程虚拟地址空间大小;

RSS : 进程正在使用的物理内存的大小;

WCHAN :进程如果处于休眠状态的话,在内核中的地址;

PC : program counter,

NAME: process name,进程的名称

4.1 ps(命令查看当前系统进程信息)

ps -e #显示所有进程

ps -a #显示系统中与tty相关的所有进程信息

ps -f #显示进程的所有信息

ps -l #以长格式显示进程信息

ps -r #显示正在运行的进程

4.2 nice(命令修改优先级)

(ncie 取值范围为 -20 ~ 19,数值越小优先级越高)

nice -n , --adjustment=N #在优先级数值加上数字N(默认值为10)

4.3 kill(指令终止进程)

kill 1651 #终止1651号进程

4.4 sleep(命令使程序暂停执行)

sleep 5s #进程暂停执行5秒

sleep 5m #进程暂停执行5分钟

sleep 5h #进程暂停执行5小时

sleep 5d #进程暂停执行5天

五,文件压缩命令操作

5.1 tar(打包/解包指令)

( tar [选项] 文件或者目录)

tar -c file #创建新的打包文件

tar -t file #列出打包文件名

tar -x file #从打包文件中释放文件

tar -f file #指定打包文件名,需要放在选项后

tar -v file #列出详细的tar处理信息

例:

tar zcvf file.tar.gz file #压缩file并打包为file.tar.gz

tar zxvf file.tar.zip file #将file.tar.gz 解压到file

5.2 gzip(命令对文件进行压缩和解压)

(gizp [选项] [name]一般格式)

gzip -c file #将输出写到标准输出上,并保留原有文件。

gzip -d file #将压缩文件解压。

gzip -l file #对每个压缩文件,显示详细信息

gzip -r file #递归式地查找指定目录并压缩其中的所有文件或者是解压缩。

gzip -t file #测试,检查压缩文件是否完整。

gzip -v file #对每一个压缩和解压的文件,显示文件名和压缩比。

gzip -num file #用指定的数字num调整压缩的速度

5.3 unzip(命令对ZIP格式文件解压)

(unizp [选项] 被压缩文件名)

unzip -c flie.zip #将解压缩的结果显示到屏幕上,并对字符做适当的转换

unzip -p flie.zip #与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。

unzip -l flie.zip #显示压缩文件内所包含的文件

unzip -f flie.zip #更新现有的文件

unzip -t flie.zip #检查压缩文件是否正确,但不解压

unzip -u flie.zip #除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中

unzip -z flie.zip #仅显示压缩文件的备注文字

unzip -v flie.zip #执行是时显示详细的信息。或查看压缩文件目录,但不解压

unzip -T flie.zip #将压缩文件内的所有文件的最新变动时间设为解压缩时候的时间

unzip -x flie.zip #指定不要处理.zip压缩文件中的哪些文件

unzip -d flie.zip #指定文件解压缩后所要存储的目录

unzip -n flie.zip #解压缩时不要覆盖原有的文件

unzip -q flie.zip #安静模式,执行时不显示任何信息

unzip -o flie.zip #不必先询问用户,unzip执行后覆盖原有文件

unzip -a flie.zip #对文本文件进行必要的字符转换

unzip -j flie.zip #不处理压缩文件中原有的目录路径

unzip -aa flie.zip #把所有的文件目录当作文本处理

unzip -UU flie.zip #忽略Unicode编码字符

unzip -C flie.zip #压缩文件中的文件名称区分大小写

unzip -L flie.zip #将压缩文件中的全部文件名改为小写

unzip -I flie.zip #指定字符编码为UNIX

六,文本操作

小tips(文本编辑操作有vi和vim两种,vim要下载,建议使用vim,v太反人类,狗都不用)

vi部分(有三种工作方式)

基本操作

vi m1.c #进入m1文本中操作(若没有则创建该文件)

vi 3 file #进入file文件,光标第3行的行首。

vi word file #进入file文件,光标停留在首次出现word的行首。

vi file1 file2 file3 #依次处理,flie1,flie2,flie3这些文件

  1. 命令方式:(进入后默认命令方式)

1. 上下左右--移动光标

2. x --删除字符(可5x,则向右删5个)

3. a --附加命令(附加到当前光标之后)

A --附加命令(附加到行尾)

4. i --插入指令当前位置(进入输出方式)

I --插入指令移动到首行(进入输出方式)

5,. o --打开(在当前行的下一行进入输入方式)

O --打开(在当前行的上一行进行输入方式)

6. k,j, h,l --对应上下左右移动光标

7. 按“0” --光标移动到当前行头

8. w --光标后移至下一个词开头

9. b --光标前移至上一个词开头

10. M --光标移至屏幕中间行的开头

11. dd --删除光标所在整行

12. d[移动命令] --灵活删除

13. u --撤回上一步操作

14. U --撤回对当前行操作

15. J --把当前行与下行合并为一行(“nJ” ,n行合并)

  1. 输入方式:(所有操作都将输入文本中,注意上下左右变成abcd)

1, 按esc --退出输出方式进入命令方式

2,Ctrl+U --光标退回刚插入字符串的首字符,并删除

3,Ctrl+W --光标移到最后插入单词首字符,并删除

4,Ctrl+T --光标在开头且有自动缩进,则插入缩进对应的空格

命令替换:(再文本中嵌入命令)

格式:

$(command)

`command`

cmd1$(cmd2)

cmd1`cmd2`

例:

echo now is ·data· i am in $(pwd) #在文本中插入输出时则会显示now is “现在系统时间” i am in “工作路径”

3,ex转义方式:

1,冒号 为ex命令的提示符,按下中断键可以终止正在执行的命令(常规为Delete),

转义方式结束后自动进入命令方式。

#常用的ex命令(包含命令定位,字符检索)

#例

:1 $s/I/i/g #从文件的第一行至最后一行将大写I变为小写i

:20 #将光标移到20行,行首。

:/this #从当前往后查,光标移到从前往后第一个this

:?this #从当前往前查,光标移到从前往后第一个this

退出vi(最好在命令方式下,避免误操作)

1, :wq --保存并退出

2, :ZZ --当对内容修改时将内容写入文件 (:X相同的用法)

3: :q! --不保存退出

vim部分

(三种工作方式,大部分操作与vi详细更人性化)

一,命令方式:(进入后默认命令方式)

1.1显示

:set nu ##在每一行前显示行号

:set nonu ##取消行号显示

:set mouse=a ##显示鼠标

:set cursorline ##显示行线

1.2字符的搜索:

/关键字

n向下匹配

N向上匹配

1.3字符的管理:

y2l ##复制2个字母

y2w ##复制2个单词

y2y ##复制2行

d2l ##删除2个字母

d2w ##删除2个单词

d2d ##删除2行

c2w ##剪切2个单词

c2c ##剪切2行

1.4字符的替换:

:%s/要替换的字符/替换成的字符/g

:%s/:/@/g ##替换全文的:为@

2,输入方式:

与正常window文本操作差不多

退出vim(最好在命令方式下,避免误操作)

1,:w 将编辑的数据写入到硬盘中。

2,:q 离开vi.后面加!为强制离开。

3,:wq 保存后离开。:wq!为强制保存后离开

七,Linux shell程序设计方面

shell(解释性编程语言):用于执行复杂的系统管理任务

7.1建立脚本

vim 一个文本加上一个 #!/bin/bash(一定要加且不能错告诉系统这个文本是脚本)

7.1执行脚本的三种方式

1, bash < 脚本名

bash

2,bash <脚本名 [参数] (与第一个相同可带参数)

bash ex2 /user/meng /user/zhang

3, 先加权限,再直接打脚本名字

chmod a+x bash_test1 # 将bash_test1给予执行命令

PATH=$PATH:. # 将脚本所在路径(.为当前工作路径)添加到搜索路径

bash_test1 # 输入脚本名运行脚本

7.3 shell特殊字符

1,常用通配符

^$ 匹配空行

^ *$ 匹配含有空格的空白行和空行

^.*$ 匹配整个行

[abc]*s 匹配s前面含有任意abc随机组合的字符串

[A-Za-z0-9.]+@[A-Za-z0-9.]+\.[a-zA-Z]{2,4} 匹配电子邮件地址

\b[[:alpha:]]+\b 或(^| )["({[]*book[]})"?,.:;!'s ]*( |$) 匹配正规文本中的单词

http://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4} 匹配一个HTTP URL

2,引号

“” 双引号中除了($、\)其他均以字符对待

'' 单引号中都以普通字符出现

` 倒引号中的字符均以命令解释

3、其他符号

命令1&&命令2 逻辑与执行两个命令

命令1||命令2 逻辑或执行两个命令

{echo “你好”; who } 将两个指令组合执行

4、变量 ( 变量区分大小写,为数字(不能开头),字母,下划线组成)

变量名=字符串 定义变量,左右不能有空格

{name} 引用name变量

5,数组 (数组与c语言使用相似)

city[0]=beijing

city[1]=shanghai

6,位置参数(set 为位置参数赋值)

set 参数1 [参数2......]

其中对应 m1 m2 m3 m10 m11

$1 $2 $3 ${10} ${11}

7.4算数运算(两种)

let 算数表达式

let "j=i*6+2" #算数运算将i×6+2赋值给j

算数表达式

let ((j=i*6+2)) #算数运算将i×6+2赋值给j

7,5控制结构

if语句

if a>b #如果a大于b成立

then max=a #将a赋值给max

elif a=b #再判断如果a=b

then max=a #将a赋值给max

else max=b #将b赋值给max

fi #结束

case语句

read response #读取响应

case $response in #匹配响应

1)echo one;; #如果匹配到1则执行输出one

2)echo two;; #如果匹配到2则执行输出two

3)echo three;; #如果匹配到1则执行输出three

read(从键盘上读取数据,格式 read [选项][变量])

选项中 -r 取消转义

-t 设置读取时限

-u fd 从文件表述df对应的文件读取数据

-n 读取数据长度不超过nchar个

-N 读取长度等于nchar个

while语句

while i<5 #判断条件是否成立

do #do

i++ #成立执行的指令

done # 结束

until语句

until i<5 #判断条件是否不成立

do #do

i++ #不成立执行的指令

done # 结束

for语句

for day in Monday Wednesday Friday Sunday #(将day设置为循环变量,遍历后面的星期,与 python相似)

do #do

echo $day #输出遍历值

done #结束

select语句(常用做菜单)

select choice in a b c d e #从后面的选项中遍历选择

do #do

case "choice" in #判断选择的字符

a) echo "This is A choice" #如果选择为a输出This is A choice

b) echo "This is B choice" #如果选择为b输出This is B choice

c) echo "This is C choice" #如果选择为c输出This is C choice

d) echo "This is D choice" #如果选择为d输出This is D choice

e) echo "This is E choice" #如果选择为e输出This is E choice

break语句(跳出循环体)

break 2 #跳出两层循环

continue语句(跳出本次循环)

continue 2 #最内层循环向外跳到第2层

exit(退出正在执行的脚本)

7.6条件测试(三种写法)

1test -[选项] "对象" 2[ -[选项] "对象" ] 3[[ 条件表达式]](测文件属性和字符串比较)

文件方面的测试

选项 参数 功能

-r 文件名 如文件存在并且是用户可读的,则测试条件为真

-w 文件名 如文件存在并且是用户可写的,则测试条件为真

-x 文件名 如文件存在并且是用户可执行的,则测试条件为真

-f 文件名 如文件存在并且是普通文件,则测试条件为真

-d 文件名 如文件存在并且是目录文件,,则测试条件为真

-p 文件名 如文件存在并且是命名的FIFO文件,则测试条件为真

-b 文件名 如文件存在并且是块特殊文件,则测试条件为真

-c 文件名 如文件存在并且是字符特殊文件,则测试条件为真

-s 文件名 如文件存在并且文件长度大于0,则测试条件为真

-t 文件描述符 如文件被打开切文件描述符是与终端设备相关的,则测试条件为真,默认文件描述符是1

字符串测试

选项 参数 功能

-z s1 如果字符串s1的长度为0,则测试条件为真

-n s1 如果字符串s1的长度大于0,则测试条件为真

sl 如果字符串s1不是空字符串,则测试条件为真

!= s1!=s2 如果s1不等于s2,则测试条件为真

< s1

> s1>s2 如果按自定顺序s1在s2之后,则测试条件为真

数值测试

数值测试运算符的形式及功能

参数 功能

n1 -eq n2 如果整数n1等于n2,则测试条件为真

n1 -ne n2

如果整数n1不等于n2,则测试条件为真

n1 -lt n2 如果如果n1小于n2,则测试条件为真

n1 -le n2 如果如果n1小于或等于n2,则测试条件为真

n1 -gt n2 如果n1大于n2,则测试条件为真

n1 -ge n2 如果n1大于或等于n2,则测试条件为真

7.7 bg和fg命令(bg [进程号]作业的前后台切换)

bg %9630 #将9630号进程放入后台运行

fg %9630 #将9630号进程放在前台运行

你可能感兴趣的:(Liunx,linux,运维,服务器)