标签归档:shell

linux shell 命令排列 调度 替换

linux shell 命令排列 调度 替换
1 命令排列

1.1分号间隔执行

用户通过shell输入命令时,可以在一行中输入多条命令,每条命令后有分号间隔。

如下所示:
[root@localhost ~]#command1;command2;command3;command4;command5;command6;
//以上语句告诉shell,先执行command1;当command1执行完毕后,再执行command2;当command2执行完毕后,再执行command3;所有的命令依次执行。
采用此种方式执行shell命令,不管前面的命令是否成功执行,后面的命令都会照常执行。
[root@localhost ~]#ls -l;df -h ;
//如以上命令先打印出目录下的内容,然后打印出磁盘的占用情况

1.2 && 命令分隔符

[root@localhost ~]#command1 && command2
//以上语句告诉我们,只有当command1命令成功执行后,才会执行command2
例:
[root@localhost ~]#ddd&&ls -l
-bash: ddd: command not found
//第一个命令执行失败 所以第二个命令没有执行
[root@localhost ~] ls -l &&ddd
total 128
-rw-r–r– 1 shenye staff 28 8 2 15:35 a.txt
-rw-r–r– 1 shenye staff 601 8 8 10:42 help.c
-rwxr-xr-x 1 shenye staff 8908 7 29 21:50 r
-rwxrwxrwx 1 shenye staff 87 8 8 11:24 test.sh
-bash: ddd: command not found
//第一个命令执行成功 所以第二个命令得到执行

1.3 || 命令分隔符

[root@localhost ~]#command1 ||command2
//以上语句告诉我们,只有当command1命令执行失败 ,command2才会得到执行
如果command1执行成功 ,command2命令不会得到执行
例:
[root@localhost ~]$ ddd||ls -l
-bash: ddd: command not found
total 128
-rw-r–r– 1 shenye staff 28 8 2 15:35 a.txt
-rw-r–r– 1 shenye staff 601 8 8 10:42 help.c
//第一个命令执行错误 所以第二个命令得到执行
[root@localhost ~]$ ls -l||dddd
total 128
-rw-r–r– 1 shenye staff 28 8 2 15:35 a.txt
-rw-r–r– 1 shenye staff 601 8 8 10:42 help.c
//第一个命令执行正确 所以第二个命令没有执行



2 命令调度

通常情况下,一个shell终端,只能运行一个进程,需要等待这个进程执行完毕后,才能执行下一个进程,我们称这种进程执行方式为前端执行方式。
如果在此时,我们需要执行另外一个命令时,通常我们可以通过打开另外一个shell来运行命令,还可以通过shell提供的一种命令调度方式,在命令的最后加上一个 & ,就可以使shell命令在后台执行。
例:
[root@localhost ~]#./test.sh &
//上面所述的例子,告诉shell ./test.sh 将以后台运行的方式运行。


3 命令替换

在linux中我们可以通过 “alias” 命令对命令进行简写
例:
[root@localhost ~]#alias adeal=’ls -l’
//那么我们在命令提示符中输入 [root@localhost ~]#adeal 类似于[root@localhost ~]#ls -l
我们可以通过
[root@localhost ~]#more ~/.bashrc //此命令我们查找历史的命令别名日志。

shell常用命令

linux 常用命令收集
1 echo “text” //将文件打印至屏幕上
2 ls 文件列表
3 wc -l file //计算文件file的行数
4 wc -w file //计算文件file中的单词数
5 wc -c file //计算文件中的字符数
6 cp sourcefile file //将文件sourcefile复制到file中
7 mv sourcefile file //将文件sourcefile剪切至file文件位置
8 mv sourcefile .. //将文件sourcefile向上移动
9 rm file //删除文件
10 grep “a” //文件中搜索字符串 a
11 cut -b 2-5 file//输出file中每行的第2个字符到第5个字符
12 cat file //输出file至屏幕上
13 file filename //获取文件类型
14 read a //shell中读取变量
15 sort file //对文件file的行进行排序
16 uniq //删除文本文件中重复出现的行
17 expr //进行数学计算
18 find //搜索文件
19 tee //一个命令的标准输出 作为tee的标准输入 ,但是也不影响原命令的输出
20 awk //从文本文件中提取字符
21 head file //输出文件file的前几行
22 tail file //输出文件的末尾几行


将当前文件夹的内容上移的方法:
[root@localhost ~]#mv * ../
//将 当前文件夹的所有内容* 向上移动 ../

相关阅读:
shell 输入 输出及echo 用法说明
linux ls命令的用法
linux 命令之grep用法
linux 删除命令之rm
linux命令之read用法
linux 命令之tee用法
linux 命令之find

linux 文件名匹配

linux 文件名匹配

文件名匹配优点:

在执行shell命令时,使用文件匹配这一特性,可以简化查找文件的速度,可以一次查找出类似文件名的文件,
例: 我们需要查找后缀为 .c的文件,此时我们就可以使用
[root@localhost ~]#ls *.c


文件名包含特殊字符

假设此时我们需要获取文件名前缀 包含!号的文件
[root@localhost ~]#ls !*.c
//系统会报错, shell会将 !* 作为一个字符来替换查找,而不是同配符
所以对于特殊字符(! @ # ¥ % 空格 * )的匹配查找,我们需要将特殊字符用单引号进行引用 或采用转义字符的方式处理特殊字符
[root@Localhost ~]#ls ‘!’*.c
[root@localhost ~]#ls \!*.c

命令本身带特殊字符作为参数

在shell编程中,一些匹配工具,通常采用正则表达式进行模糊匹配,因为这些正则表达式通常是作为一个参数发送至命令中进行执行,所以对于shell命令的输入需要采用 单引号将这些表达式包含起来。
例:
[localhost ~]#find / -name ‘[1-9]*’

相关阅读:
echo 单引号 双引号 无引号
linux 命令之find