1.
$ while true; do date >> date.txt ; sleep 5 ; done &
avi@deb:~$ (cd /home/avi/Downloads/)
ctrl+l 效果等于clear
排序
假设先按第6列数字倒序,再此基础上再按第5列顺序排列:
sort -k6nr -k5n file.txt
注意不能用以下排序方法:
sort -k6 -nr -k5 -n file.txt
这样最后结果还是按第五列排了
linux 如何显示一个文件的某几行(中间几行)
【一】从第3000行开始,显示1000行。即显示3000~3999行
cat filename | tail -n +3000 | head -n 1000
【二】显示1000行到3000行
cat filename| head -n 3000 | tail -n +1000
*注意两种方法的顺序
分解:
tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
head -n 1000:显示前面1000行
【三】用sed命令
sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行
判断是否为空
判断一个脚本中的变量是否为空,我写了一个这样的shell脚本:
- #!/bin/sh
- #filename: test.sh
- para1=
- if [ ! -n $para1 ]; then
- echo "IS NULL"
- else
- echo "NOT NULL"
- fi
然后把该脚本:test.sh通过chmod +x 改为可以执行的脚本,执行后输出的结果为: NOT NULL,很是奇怪,最后,通过查询一些资料发现,可以通过如下方式判断一个shell变量是否为空:
1. 变量通过" "引号引起来
如下所示:,可以得到结果为 IS NULL.
- #!/bin/sh
- para1=
- if [ ! -n "$para1" ]; then
- echo "IS NULL"
- else
- echo "NOT NULL"
- fi
2. 直接通过变量判断
如下所示:得到的结果为: IS NULL
- #!/bin/sh
- para1=
- if [ ! $para1 ]; then
- echo "IS NULL"
- else
- echo "NOT NULL"
- fi
3. 使用test判断
得到的结果就是: dmin is not set!
- #!/bin/sh
- dmin=
- if test -z "$dmin"
- then
- echo "dmin is not set!"
- else
- echo "dmin is set !"
- fi
4. 使用""判断
- #!/bin/sh
- dmin=
- if [ "$dmin" = "" ]
- then
- echo "dmin is not set!"
- else
- echo "dmin is set !"
- fi
#!/bin/bash
a="zzz"
if [[ "$a" = "" ]]
then
echo $a empty
else
echo $a no empty
fi
a="zzz"
if [[ "$a" = "" ]]
then
echo $a empty
else
echo $a no empty
fi
if [ -z "$VAR" ] ; then
command
fi
command
fi
1、字符串判断
str1 = str2 当两个串有相同内容、长度时为真
str1 != str2 当串str1和str2不等时为真
-n str1 当串的长度大于0时为真(串非空)
-z str1 当串的长度为0时为真(空串)
str1 当串str1为非空时为真
2、数字的判断
int1 -eq int2 两数相等为真
int1 -ne int2 两数不等为真
int1 -gt int2 int1大于int2为真
int1 -ge int2 int1大于等于int2为真
int1 -lt int2 int1小于int2为真
int1 -le int2 int1小于等于int2为真
3 文件的判断
-r file 用户可读为真
-w file 用户可写为真
-x file 用户可执行为真
-f file 文件为正规文件为真
-d file 文件为目录为真
-c file 文件为字符特殊文件为真
-b file 文件为块特殊文件为真
-s file 文件大小非0时为真
-t file 当文件描述符(默认为1)指定的设备为终端时为真
3、复杂逻辑判断
-a 与
-o 或
! 非
grep精准匹配
面试时问到一个问题,要精确的找出进程名为abc,判断进程的数量是否在3-5之间,如果不在,就纪录下相关的信息
用ps aux | grep abc | grep –v grep | wc –l 统计出数量再进行判断
但是忽略了一点,如果是有进程名为abcd,abcde等有包含"abc"字符的,那么判断将会不准备,如果精确的匹配到abc呢,当时不知道,只能很诚实的回答,不清楚
其实答案很简单,用grep –w "abc" 或者是grep "\<abc\>"都可以实现
-w, --word-regexp 强制 PATTERN 仅完全匹配字词
纪录一下
隔几秒执行一条命令 ,监视器
watch -dn 'wc -l log.txt'
查看磁盘使用率
df -TH
更改权限
sudo chown -R yonghuming wenjianjia
计算md5
md5sum
查看文件大小
df -Th 用户查看一级目录大小
du -h 查看文件夹大小
du -h --max-depth=1 查看当前文件夹下文件夹大小
ls -lh 查看文件大小
#!/bin/bash
echo `dirname $0`/mac_open_hour.csv
查找文件,并且打印文件并匹配
find 20170611*.log | xargs cat |grep -E '22011716|2285906|1768039' > 1206_20170611.log
解压多个文件到指定目录
find 20170704*.zip| xargs -n1 unzip -d /haha/temp_log
grep使用http://www.cnblogs.com/luojinping/p/3380771.htmlstat file 查看文件修改时间等
What's wrong with the good old,
There are ways to make that more efficient,
and other variations, but at the basic level, it's always worked for me.
|
No comments:
Post a Comment