linux下的一些命令分析与shell的一些命令

对> 与 >>的理解

echo "aaa" > aaa.txt

这个是在aaa.txt中写入aaa   可以用cat  aaa.txt查看

echo "bbb" >> aaa.txt 这是在文件中追加 bbb

在这里如何 再执行这句

echo "aaa" > aaa.txt

你会发现aaa.txt中的全部内容已被aaa取代

我们经常看到这个命令

cat /dev/null > messages

这个是为了清空 message中的内容

 /dev/null 名曰:空桶或黑洞,  我们通常在linux的命令中还用户 挂起后 导入到这里面 

如  nohup php artisan serve > /dev/null &

这样打印就不会出现了

在比如说如何用命令的形式判断一个文件存不存在

可以这样:

[ -f aaa.txt ]&&echo1 || echo 0

如何存在的话会显示1 不存在会显示0

mkdir aaa

如果是文件夹的判断就要这样了

[ -d aaa.txt ]&&echo1 || echo 0

或者不管是什么,只判断存不存在,可以这样

[ -e aaa.txt ]&&echo1 || echo 0

如何是变量,必须加双引号"",如:

$file = /etc/abc

[ -f "$file" ]&&echo1 || echo 0

vi  f11.sh

[ $1 -eq 3 ]&&{

echo 1

echo 2

}

这是在一个文件中写了一个脚本

sh f11.sh 3

会打印出 1 2来

如果不传或者传除3之外,要不是报错就是不打印

 

 有点意思哈

但是如果 f11.sh 文件中这样写就反着来了

[ $1 -eq 3 ]||{

echo 1

echo 2

}

sh f11.sh 12会打印

sh f11.sh 3 会不打印

查看文件中行与行区间的内容

sed -n '12,20p' /etc/nginx/nginx.conf

查看12到20行之间的内容

判断字符串是否存在

[ -n "aaa" ]&& echo 1 || echo 0

像 > <的比较必须加上转义符

[ 2 > 1 ]&& echo 1 || echo 0

原文地址:https://www.cnblogs.com/gaosf/p/10081949.html