- 执行脚本文件——“bash”/“source”
首先需要理解: Linux 一个shell命令窗口,就是Linux系统的一个shell进程,如果打开命令窗口就是多个shell进程,每个进程都有自己独立的的环境,比如使用env命令查看到的就是当前窗口进程的环境变量。在这个窗口下通过命令运行起来的程序(比如一些Linux命令,如ls命令命令即程序),就是该shell窗口进程的子进程,子进程会继承父进程的环境,即继承env环境变量。
(1)bash命令
示例:bash ./filename.sh
当然,也可以省略bash,直接写成./filename.sh。
(2)source命令
示例:source ./filename.sh
(3)区别
bash命令是开启一个新子进程执行sh脚本,基于当前窗口shell进程,创建一个子进程,XXX.sh内容是在子进程中执行并生效。source命令是在当前的shell进程执行,XXX.sh内容会在当前进程生效,执行这个命令时,并非创建子进程。
2.mv命令:用来移动文件或者将文件改名。
命令格式:
mv [选项] 源文件或目录 目标文件或目录
如果目标文件是目录→源文件移到此目录下
目标文件不是目录→源文件改名成目标文件,同时覆盖
参数:
①-i:移动文件至某一指定目录时,如果存在同名文件,则向用户询问是否覆盖。
②-f:移动文件至某一指定目录时,如果存在同名文件则覆盖已有同名文件,不进行任何提示。
③-b:移动文件至某一指定目录时,如果存在同名文件在覆盖前为其创建一个备份。
④-u:移动文件至某一指定目录时,当源文件比目标文件新,或者目标文件不存在时,才执行移动操作。
⑤-t:移动多个文件至某一指定目录时,使用-t参数,此时目录在前,文件在后。
3.压缩与解压缩命令
https://www.jianshu.com/p/09f521c60c30
4.定时任务crontab
常用命令:
(1)查看定时任务 :crontab -l
(2)设置编辑定时任务 :crontab -e
(3)查看crontab状态 :systemctl status crond.service
(4)启动crontab :systemctl start crond.service
(5)关闭crontab :systemctl stop crond.service
(6)重启crontab :systemctl restart crond.service
crontab语法:
分 小时 日 月 星期 命令
Minute Hour Day Month DayOfWeek command
Minute 每个小时的第几分钟执行该任务,0-59;
Hour 每天的第几个小时执行该任务,0-23;
Day 每月的第几天执行该任务,1-31;
Month 每年的第几个月执行该任务,1-12;
DayOfWeek 每周的第几天执行该任务,0-6,0表示周日;
Command 指定要执行的程序;
特殊符号:
*:取值范围内的数字
/:每
-:从某个数字到某个数字
,:分开几个离散数字
举例:
*/15 8-11 10,20 * * command
每月10号和20号的8-11点钟,每15分钟执行一次command
5.下载文件:wget
#从指定的url地址下载文件
wget url
#下载并重命名
wget -O filename url
#断点续传
wget -c url
#后台下载
wget -b url
#查看进度
tail -f wget-log
#下载多个文件
cat filelist.txt
url1
url2
url3
url4
wget -i filelist.txt
# 如果文件已经存在,下载文件不覆盖原有文件
wget -nc filelist.txt
# 下载时只显示更新和出错信息,不显示指令详细执行过程
wget -nv filelist.txt
6.多条指令顺序执行
(1)“|” :管道符号
用法:command 1 | command 2
功能:第一个命令command 1执行的结果作为command2的输入传给command 2。
# Linux查进程
ps -ef | grep jenkins
# 杀掉进程
kill -9 进程id
(2)前顺后才顺——“&&”
用法:command1 && command2 && command3 …
解释:&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行。只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才会被执行。只要有一个命令返回假(命令返回值 $?== 1),后面的命令就不会被执行。
(3)前不顺后才顺——“||”
用法:command1 || command2
解释:||则与&&相反。如果||左边的命令(command1)未执行成功,那么就执行||右边的命令(command2)。只有在 || 左边的命令返回假(命令返回值 $? ≠ 0),|| 右边的命令才会被执行。这和 c 语言中的逻辑或语法功能相同,即实现短路逻辑或操作。只要有一个命令返回真(命令返回值 $? = 0),后面的命令就不会被执行。