老徐给大家精选准备了6段Shell实战脚本 / 基础Linux常用命令;
也许能解决你很多实际工作问题;
如果看到这些你不知道它能用来干嘛,先收藏、先记住吧,以后用的上~
实战命令一:
在实际的工作中,我们经常需要将多个文件同时移动到一个指定的目录下,如果一个一个移动,太折腾...
你应该要知道:mv 有一个选项叫 -t,是指定目标文件夹,就是我们所要将文件移至的文件夹
方法/步骤
比如当前目录下有a.dir b.dir c.dir isTester.html ido.txt
我们现在要将a.dir b.dir c.dir isTester.html ido.txt这几个文件移动到idolaoxu 目录下。
执行:mva.dir b.dir c.dir isTester.html ido.txt-t idolaoxu
就可以一次将这些文件移动到idolaoxu下。
当然,还可以用另外一种方式:先将指定要移动的文件打包,移过去之后,然后在将文件解包,这个在文件数量大的情况下,还是可以的,少的情况下,还是用上面的方法比较靠谱。
实战命令二:
在应用Unix/Linux时,我们一般想让某个程序在后台运行
这里讲解nohup命令的一些用法。
nohup /root/start.sh &
在shell中回车后提示:
[~]$ nohup: 忽略输入并把输出追加到"nohup.out"
但是有时候在这一步会有问题,当把终端关闭后,进程会自动被关闭,察看nohup.out可以看到在关闭终端瞬间服务自动关闭。
这里有一个细节:当shell中提示了nohup成功后还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端;
最后附上:nohup命令参考
nohup 命令
用途:不挂断地运行命令。
语法:nohup Command [ Arg … ] [ & ]
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
该命令的一般形式为:nohup command &
在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,
可以另外指定了输出文件:
nohup command > myout.file 2>&1 &
在上面的例子中,输出被重定向到myout.file文件中。
OK ,结束~
Shell脚本实战,实用脚本三:
result=npm install idoComponents
sleep 20
echo $result
if [[ $result == idoComponents ]];then
echo "idoComponents install success"
cd ./src
compass compile --force
cd ..
webpack
tar -cvf ido-manager.tar ./src/build ./src/img ./src/pages ./src/lib
else
echo -e "idoComponents install error; \n 请重新构建一次"
exit 1
fi
如上,很简单的一个脚本片段,老徐用来解决某个问题的,也许对你有用~
如果你看不懂是什么意思,去Google搜索下吧~
shell脚本实战四:一句脚本搞定,删除指定天数前的备份文件
一句脚本即可搞定:
不废话,
脚本如下:
find /APP/ido/xu/ -mtime +7 -name "idoxu.tar.*" -exec rm -rf {} ;
当然,这个是可以做很多扩展的,你可以试试~
说明:
/APP/ido/xu 此文件夹下的备份文件
-mtime +7七天前的备份文件
idoxu.tar.* 名称为idoxu.tar为前缀的备份文件
-exec rm -rf 执行删除操作
实战脚本五:使用mkdir命令建立多层目录
Linux创建目录是使用非常频繁的操作
如创建目录A : mkdir A
那么如果想创建多层目录: mkdir /APP/ido/xu/isTester
会发现提示:
[root@localhost APP]# mkdir /APP/ido/xu/isTester
mkdir: 无法创建目录"/APP/ido/xu/isTester": 没有那个文件或目录
默认情况下mkdir 无法创建多层目录,需要加上参数-p
mkdir -p /APP/ido/xu/isTester
OK
搞定!
实战脚本六:怎么样向服务器上传部署包?
很多同学可能会说我通过某某工具很简单搞定~
那么如果没有工具呢?
方式有很多种,今天分享scp,很简单(一行命令搞定!):
$ scp filename username@remotehost:remotedirectory
执行:
$ scp isTester.txt [email protected]:/root/idotest
然后输入远程服务器192.168.1.234 的root密码,就可以开始copy上传了!
搞定!
OK,可以思考下scp如何从远程服务器copy文件到本地?
同样很简单
作者:IDO老徐