Vim、Shell及Linux命令的高效使用
字符串替换、赋值yesterday=2018-06-22
echo $yesterday
temp=`echo $yesterday | sed 's/-//g'`
echo $temp
注意要使用反单引号,输出 2018-06-22 20180622 统计shell脚本耗时#/bin/bash
begin_time=$(date +%s)
sleep 4
echo -e "begin_time = $begin_time"
end_time=$(date +%s)
cost_time=$(($end_time - $begin_time))
echo "执行数据一共花费了$cost_time秒"
解压tar文件解压 tar -xf 123.tar
压缩 tar zcvf FileName.tar.gz DirName
Linux如何在vi里搜索关键字vim打开某个文件后,输入/即可进行查找关键字,再输入n可查找下一条关键字记录 Vim的使用
源Url telepathy.kakamobi.com
ai.kakamobi.cn
tpc.kakamobi.cn
dspmnt.autohome.com.cn
dealer2.autoimg.cn
comm.app.autohome.com.cn
x.autoimg.cn
auto.kuailemm.com
online.kuailemm.com
3conline.kuailemm.com
m-api.xcar.com.cn
image.xcar.com.cn
sa-data.xcar.com.cn
m.yiche.com
api.i.yiche.com
api.i.bitauto.com
api.ycapp.yiche.com
i.api.autohome.com.cn
m.autohome.com.cn
www2.autoimg.cn
data.autohome.com.cn
app2.autoimg.cn
cheyouquan.kakamobi.com
789.kakamobi.cn
tiku.jiakaobaodian.com
web.app.kakamobi.cn
打开终端,输入vi,进入vim编辑器,输入i,进入编辑模式,粘贴以上地址 %s/^/"
再输入冒号,再输入以下命令,作用是给每行url最后面添加引号和逗号 %s/n/",
然后就会得到以下字符串,达成目标 "telepathy.kakamobi.com","ai.kakamobi.cn","tpc.kakamobi.cn","dspmnt.autohome.com.cn","dealer2.autoimg.cn","comm.app.autohome.com.cn","x.autoimg.cn","auto.kuailemm.com","online.kuailemm.com","3conline.kuailemm.com","m-api.xcar.com.cn","image.xcar.com.cn","sa-data.xcar.com.cn","m.yiche.com","api.i.yiche.com","api.i.bitauto.com","api.ycapp.yiche.com","i.api.autohome.com.cn","m.autohome.com.cn","www2.autoimg.cn","data.autohome.com.cn","app2.autoimg.cn","cheyouquan.kakamobi.com","789.kakamobi.cn","tiku.jiakaobaodian.com","web.app.kakamobi.com",
http://www.cnblogs.com/Dennis-mi/articles/5939635.html vim的其他常用命令 vim longcontent.txt
输入以下命令可显示行号 :set nu
shift + g :跳到文件末尾 ls -l //查看文件具体详细信息列表
ls -lh //查看具体信息,文件大小用对应单位表示,不像上面那个只用字节数表示
pwd // 查看当前目录
Shell的使用stat:查看文件的详细信息,包括创建时间,改动时间等
history:显示所有已经输过的命令
rm -rf:所到之处,寸草不生的永久删除无法恢复的命令,建议修改bashrc改造成mv命令
mv -b:移动前如果存在就先备份(简单备份)
mv --backup=numbered 11.txt /trash:选择备份策略,backup的参数值有4个:
none或off : 不备份
numbered或t:数字编号的备份
existing或nil:如果存在以数字编号的备份,则继续编号备份m+1...n:如果之前没有以数字编号的文件,则使用下面讲到的简单备份。
simple或never:在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。
alias:查看所有别名
mv:不使用别名
$@:是传给脚本的所有参数的列表
$1 是传递给该shell脚本的第一个参数
df -lh:查看剩余空间
tail -n 100 xxx.txt:查看xxx.txt文件最后一百行
head xxx.txt:查看xxx.txt前10行
ps -aux | grep java:查看java进程
ps -ef |grep 123.sh:查看123.sh的进程号及父进程
crontab:定时器
* * * * * command
分 时 日 月 周 命令
*/30 * * * * date >> /root/mycrontab:每半小时向mycrontab写入一个当前时间字符串
crontab crontabname:执行这个定时器
/etc/init.d/crond restart:重启crontab
/var/spool/cron/用户名:定时器位置
crontab -r:删除crontab
crontab -e:修改crontab
查找home目录下名字为toSql.sh的文件,包括子目录 find /home -name "toSql.sh"
find命令,可以用来制作回收站的清空功能,参考 Linux回收站功能的实现 find /trash -mtime +7 -name "*.*" -exec rm -rf {} 找到并删除trash目录下7天前所有带.的文件及目录
* 3 * * * find /trash/* -mtime +7 -exec rm -rf {} ; 每天三点删除trash目录下7天以前的数据
* 3 * * * find /trash/* -mtime +7 -fls /home/crontab/trash.txt -delete
此命令的意义是每天三点找到并删除/trash目录下7天前的文件,同时把这些文件信息写入指定文件
判断文件是否存在 if [ -z $1 ]; then #如果没有输入参数,也就是第一个参数的字符串长度为0
: #空语句
else
if [ -e $1 ]; then #如果文件存在的话
if [ -f $1 ]; then #如果文件是个普通文件?
echo $1" is a text file."
elif [ -d $1 ]; then #如果文件是个目录文件?
echo $1" is a directory."
elif [ -c $1 ]; then #如果文件是个字符设备?
echo $1" is a char device."
elif [ -b $1 ]; then #如果文件是个块设备?
echo $1" is a block device."
else #否则
echo $1" is unknow file."
fi
fi
fi
判断文件是否存在2 #include <unistd.h>
int is_file_exist(const char *file_path)
{
if(file_path == NULL)
return -1;
if(access(file_path,F_OK) == 0)
return 0;
return -1;
}
解压文件 tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
tar zxvf Download/scala-2.12.4.tgz -C MyConfigure/scala-2.12.4
执行shell脚本 ./run_url.sh
如果报权限拒绝的话 chmod a+x ./run_url.sh
如何让脚本继续后台运行,哪怕关掉了终端 nohup ./xx.sh &
或者以下几种 tmux / screen xxx &! (bash / zsh)
setsid xxx
查询log.txt中包含keywords的上下10行 cat log.txt |grep -C 10 keywords # -A 后10行;-B 前10行
查找命令 find /home -iname "*.txt" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |