周末玩耍了两天,是否很High ?

周一了,老徐给大家精选准备了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 root@192.168.1.234:/root/idotest

然后输入远程服务器192.168.1.234 的root密码,就可以开始copy上传了!

搞定!