包管理器 apt-get Debian/Ubuntu 系统包管理器 apt-get
是 Debian/Ubuntu 系统中一个用于快速下载/安装的简单命令行管理工具
参数介绍
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 update -检索新的包列表 upgrade -升级可更新的所有软件包 install -安装新软件包(pkg是libc6不是libc6.deb) remove -删除软件包 autoremove -自动删除所有未使用的软件包 purge -删除软件包和配置文件 clean -清除已下载的归档文件 autoclean -清除旧的下载的档案文件 check -验证是否有损坏的依赖 download -下载二进制包到当前目录 -q :不输出任何信息 -qq :除了错误之外,没有输出 -d :仅下载,不要安装或解压缩存档 -y :对所有确定询问都选择Yes,并且不提示 -f :尝试纠正被破坏依赖关系的系统 -m :如果存档是可定位的,则尝试继续 -u :显示升级包的列表 -b :在获取源代码包后构建源包
使用示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 apt-get update apt-get upgrade apt-get install nginx apt-get remove nginx apt-get remove --purge nginx apt-get install nginx -y apt-get remove --purge nginx -y apt-get clean && apt-get autoclean apt-get download nginx -d
yum CentOS 系统包管理器 yum 是 CentOS 系统中 一个用于快速下载/安装的简单命令行管理工具!
参数介绍 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 update -检索新的包列表 upgrade -升级软件包 search -搜索软件包 install -安装软件包 list -列出软件包或者软件包组 info -显示软件包或者软件包组的详细信息 erase -删除软件包(这两个命令一样) remove -删除软件包(这两个命令一样) groupinfo -显示有关包组的详细信息 groupinstall -安装软件包组(就像一种软件合集) grouplist -列出可用的软件包组 groupremove -删除软件包组 check -检查软件包 check-update -检查可更新的软件包 clean -清除缓存目录内的软件包 deplist -列出一个包的依赖关系 distribution-synchronization -同步已安装的软件包到最新的版本 downgrad -降级一个软件包 reinstall -重新安装软件包(自动删除重装) repolist -显示配置的软件包仓库 resolvedep -确定软件包需要的依赖关系 -t :容忍错误 -C :完全从系统缓存运行,不要更新缓存 -R 分钟:最大命令等待时间 -q :安静的操作 -y :对于所有问题回答是 --nogpgcheck :禁用gpg签名检查
使用示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 yum update yum install nginx yum groupinstall "Development Tools" yum erase nginx / yum remove nginx yum groupremove "Development Tools" yum upgrade yum upgrade nginx yum install nginx -y yum erase nginx -y / yum remove nginx -y yum search nginx yum list yum grouplist yum clean yum clean nginx yum reinstall nginx
文件/文件夹 操作 以下除特殊说明,都以当前目录为 /root 示例。
mkdir 新建文件夹 1 2 3 4 5 6 7 8 9 10 11 12 mkdir bashcd 进入 文件夹cd bashcd /root/bashcd ..cd /root
cd 进入 文件夹 1 2 3 4 5 6 7 8 cd bashcd /root/bashcd ..cd /root
cp 复制或重命名 文件/文件夹 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 cp log.txt /var/log.txtcp -R bash /home/bashcp *.txt /var/logcp test */var/logcp test *.txt /var/logcp *.txt ..cp *.txt /root/testcp log.txt log2.txtcp log.txt /var/log1.txtcp -R bash /home/bash2cp -f log /var/log.txtcp -R log.txt log1.txt log2.txt log233 /home/log
mv 移动或重命名 文件/文件夹 1 2 3 4 5 6 7 8 9 10 11 12 mv log.txt /var/log.txtmv bash /home/bashmv log.txt log2.txtmv log.txt /var/log1.txtmv bash /home/bash2
rm 删除 文件/文件夹 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 rm log.txtrm *.txtrm *.txtrm test *rm test *.txtrm -r bashrm -rf bash
查找 操作 find 文件查找 find 命令用于查找文件系统中的指定文件
1 2 3 4 5 6 find 要查找的路径表达式 find . -name 1.txt find /tmp -name 1.txt
grep 文件内容查找 grep 命令用于查找指定的模式匹配
1 2 3 4 5 6 7 8 9 grep [命令选项] 要查找的匹配模式 [要查找的文件] grep cams test.txt grep -r cams /root/cams ps -ef | grep ora
查看/编辑文件 操作 ls 显示目录中文件 1 2 3 4 5 6 7 8 ls -als -a bash/logls -a /root/bash/log
du 查看 文件/文件夹 占用磁盘空间的大小 参数介绍 1 2 3 4 5 6 7 8 9 -h :以人类易读的方式显示 -a :显示目录占用的磁盘空间大小,并显示其下目录和文件占用磁盘空间的大小 -s :显示目录占用的磁盘空间大小,但不显示其下子目录和文件占用的磁盘空间大小 -c :显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和 --apparent-size:显示目录或文件自身的大小 -l :统计硬链接占用磁盘空间的大小 -L :统计符号链接所指向的文件占用的磁盘空间大小
使用示例
cat 查看文件内容 假设 log.txt 文件的内容为:
1 2 3 4 5 test233 test test666 test2366 test8888
查看文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 cat log.txttest233 test test666 test2366 test8888 cat -n log.txt1 test233 2 test 3 4 5 test666 6 7 test2366 8 test8888 cat -b log.txt1 test233 2 test 3 test666 4 test2366 5 test8888 cat -bs log.txt1 test233 2 test 3 test666 4 test2366 5 test8888
清空文件 1 2 3 4 5 6 7 cat /dev/null> log.txtcat /dev/null>/var/log.txt
写入文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 cat >> log.txt <<-EOF test test233 test666 EOF cat >/var/log.txt <<-EOF test test233 test666 EOF
head 查看文件内容(主要用于正查) 参数介绍 1 2 3 4 5 -c 数字:显示指定文件的前 xx 字节的内容(bytes) -n 数字:显示指定文件的前 xx 行的内容 -q :不显示包含指定文件名的文件头(当使用 head 打开多个文件的时候,会去在每个文件输出结果的顶部添加一个包含文件名的文件头用于区分)
使用示例 假设 log.txt 文件内容为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 test1 test2 test3 test4 test5 head log.txthead -c 4 log.txtdoub head -n 2 log.txttest1 test2 head -n -2 log.txttest1 test2 test3 head -n 3 log.txt log1.txt log2.txt
tail 查看文件内容(主要用于倒查) 1 2 3 4 5 -c 数字:如果数字为正数(例如-c +5),显示指定文件从行首第 xx 字节到最后的内容;如果数字为负数(例如-c -5),显示指定文件从行尾第 xx 字节到最后内容。 -n 数字:如果数字为正数(例如-c +3),显示指定文件从行首第 xx 行到最后的内容;如果数字为负数(例如-c -3),显示指定文件从行尾第 xx 行到最后的内容。 -f :即时输出文件变化后增加的内容,也就是监视一个文件的内容变化(常用于监视日志输出),使用 Ctrl + C 终止
使用示例 假设 log.txt 文件内容为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 test1 test2 test3 test4 test5 tail log.txttail -c +25 log.txtbi4 test5 tail -c -4 log.txtbi5 tail -n +2 log.txttest2 test3 test4 test5 tail -n -2 log.txttest4 test5 tail -f log.txttail -n 3 log.txt log1.txt log2.txt
sed 查看/编辑文件内容 参数介绍 1 2 3 4 5 -i :操作后应用保存到原文件(如果不加这个参数,那么任何修改都不会影响原文件里的内容,只会把结果输出)
使用示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 sed '3p' log.txt sed '2,8p' log.txt sed -i '4d' log.txt sed -i '3,7d' log.txt sed -i '1d' log.txt sed -i '\$d' log.txt sed -i '/233/d' log.txt sed -i 's/233/666/' log.txt sed -i "s/\/ver/test\//" log.txt
vi、vim、nano 编辑文件内容 vi 介绍 vi 是 Linux 很棒的一个文本编辑器,不过也存在一些缺点,比如操作略麻烦。而 vim 就相当于 vi 的扩展或者加强版,主要介绍 vim。
vim 介绍 vim 相当于 vi 的扩展或者加强版,一些系统只安装了 vi,所以想要用 vim 还需要手动安装( yum install vim -y / apt-get install vim -y),安装 vim 后,会自动替换或者说整合 vi。
当你使用 vi 命令的时候,首先进入的是 命令行模式,这个模式就是 vi 自身的功能,而点击 I 键 后就会进入编辑模式(插入模式),这时候就可以直接输入字符了,这个就是 vim 的扩展功能了。当修改完成后,按 ESC 键 即可退出编辑模式回到命令行模式,这时候输入 :wq 并回车代表保存并退出,如果不想保存可以使用 :q! 不保存强制退出。 vim 的命令行 命令很多,我也没打算都写出来,只写出最常用的好了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 vi log.txt vim log.txt i dd dddG yy p u :w :w log2.txt :q :q! :wq
nano 介绍 nano 我挺少用的,一些系统也默认安装了这个 文本编辑器,在一些地方比 vim 好用,不过我已经习惯了 vim。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 nano log.txt Ctrl+O Ctrl+X Enter
解压缩 操作 在 Linux 中经常会下载到压缩文件,而压缩文件的格式有很多,比如 zip、rar、gz、xz、tar.gz、tar.xz 等。 比较常见的就是各种 .tar、.tar.xz、.tar.gz、.tar.bz、.tar.bz2、.tar.Z 后缀压缩包,这几个的解压缩命令基本一样,说明一下参数的意义。 tar 本身只是一个打包的作用,而 .tar 后面的 .zx / .gz / .bz 等等才是压缩格式,也就是比如 log.tar.gz 压缩包,就是先用 .tar 把指定文件/文件夹打包到一起,然后再用 gz 来压缩打包后的 .tar 为 .tar.gz 。
1 2 3 4 5 6 7 8 9 10 -x 是从压缩文件提取(解压)文件出来,所以在解压命令中都有这个参数。 -c :创建一个新的压缩包文件,所以在压缩命令中都有这个参数。 -f :指定要解压的压缩包文件或要压缩的文件/文件夹,所以这个参数必须放在解压缩命令参数的最后,然后后面跟着要解压到压缩包文件或要压缩的文件/文件夹。 -j :解压缩 bz / bz2 格式的参数 -J :解压缩 xz / lzip 格式的参数 -z :解压缩 gz / tgz 格式的参数 -Z :解压缩 Z 格式的参数 -v :详细列出解压缩过程中处理的文件
tar gz zip 等 解压 压缩包 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 tar -xf log.tar tar -xJf log.tar.xz tar -xzf log.tar.gz gzip -d log.gz gunzip log.gz bzip2 -d log.bz bunzip2 log.bz tar -jxf log.tar.bz bzip2 -d log.bz2 bunzip2 log.bz2 tar -jxf log.tar.bz2 uncompress log.Z log.txt uncompress log.Z log tar xZf log.tar.Z log.txt tar xZf log.tar.Z log unrar x log.rar unzip log.zip
压缩 文件/文件夹 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 tar -cf log.tar log.txt tar -cf log.tar log tar -cf log.tar log.txt doub.txt log bash tar -cJf log.tar.xz log.txt tar -cJf log.tar.xz log tar -czf log.tar.gz log.txt tar -czf log.tar.gz log gzip log.gz log.txt gzip log.gz log 暂时没查到 bzip2 -z log.txt bzip2 -z log tar cjf log.tar.bz2 log.txt tar cjf log.tar.bz2 log compress log.txt compress log tar cZf log.tar.Z log.txt tar cZf log.tar.Z log unrar a log.rar log.txt unrar a log.rar log zip log.zip log.txt zip log.zip log
网络工具 wget 下载工具 wget 是 Linux 系统最常用的工具之一,命令行方式的多功能下载工具,支持 HTTP,HTTPS 和 FTP 协议。
参数介绍 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 -b :启动后,后台下载 -q :安静模式(不输出任何信息) -c :断点续传下载文件 -O :指定下载后的文件名(可使用绝对路径目录+文件名) -P :指定下载后的文件目录(-P 只能指定下载目录,并不能指定文件名) -t :设置重试次数(0 代表无限) -T :设置超时时间(单位:秒) -N :只获取比本地新的文件(新的覆盖旧的) -4:仅连接至 IPv4 地址 -6:仅连接至 IPv6 地址 --limit-rate=xxxk :限制下载速度(k 代表 KB/S) --post-data :通过 POST 方式发送数据 --no-check-certificate :不验证服务器的 SSL 证书
使用示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 wget https://softs.pw/100MB.bin wget -O "200MB.bin" https://softs.pw/100MB.bin wget -P "/root" https://softs.pw/100MB.bin wget -O "/root/test/200MB.bin" https://softs.pw/100MB.bin wget -c https://softs.pw/100MB.bin wget -b -O "/root/test/200MB.bin" https://softs.pw/100MB.bin tail -f wget-logwget --no-check-certificate -O "200MB.bin" https://softs.pw/100MB.bin wget --post-data "user=test&passwd=23333" https://xxx.xx/ wget --limit-rate=200k-N -4 https://softs.pw/100MB.bin wget -t1 -T2 https://softs.pw/100MB.bin wget -qO- ipinfo.io/ip
curl 下载工具 curl 是 Linux 系统一个利用 URL 规则在命令行下工作的文件传输工具,是一款很强大的 HTTP 命令行工具。它支持文件的上传和下载,是综合传输工具,但习惯称 curl 为下载工具。
参数介绍 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 -s :安静模式(不会输出任何信息) -C :断点续传下载文件 -o :输出写入到文件中 -O :输出写入到文件,文件名为远程文件的名称 -k :不验证服务器 SSL 证书 -T :上传文件 -4:仅连接至 IPv4 地址 -6:仅连接至 IPv6 地址 -m :设置传输总时间(单位:秒) --retry:设置重试次数 --data :通过 POST 方式发送数据 --limit-rate xxxK :限制下载速度(K 代表 KB/S)
使用示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 curl ipinfo.io/ip wget -O https://softs.pw/Bash/ssr.sh curl -o "/root/test/233.sh" https://softs.pw/Bash/ssr.sh curl -C -O https://softs.pw/100MB.bin curl -k -o "233.sh" https://softs.pw/Bash/ssr.sh curl https://xxx.xx/?user=test curl --data "user=test&passwd=23333" https://xxx.xx/ curl --limit-rate 200K-4 https://softs.pw/100MB.bin curl --retry1-m 10 https://softs.pw/100MB.bin
netstat 查看链接和端口监听等信息 参数介绍 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 -n :不显示别名(主机名/域名以数字或 IP 显示) -e :显示其他/更多信息 -p :显示进程 PID/进程名 -c :持续输出(设置后会每隔 1 秒输出一次,Ctrl+C 终止) -l :显示正在监听的套接字 -a :显示全部信息 -r :显示路由表 -i :显示网络接口(网卡) -g :显示多播组信息 -s :显示网络统计 -M :显示伪装连接 -v :显示正在进行的工作
使用示例 1 2 3 4 5 6 7 8 9 10 11 netstat -a netstat -at netstat -au
一般来说经常使用这个命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:_ LISTEN 14233/nginx.conf tcp 0 0 0.0.0.0:22 0.0.0.0:_ LISTEN 1555/sshd tcp 0 0 0.0.0.0:443 0.0.0.0:_ LISTEN 14233/nginx.conf tcp6 0 0 :::22 :::_ LISTEN 1555/sshd netstat -lntp|grep ":80" Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:\* LISTEN 14233/nginx.conf netstat -lntp|grep "ssh" Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:\* LISTEN 1555/sshd
表头解释
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 Proto:连接协议(tcp/udp 是 IPv4,tcp6/udp6 是 IPv6) Recv-Q :接收队列(基本都是 0,如果不是代表堆积) Send-Q :发送队列(基本都是 0,如果不是代表堆积) LocalAddress:本地地址和端口 ForeignAddress:对外地址和端口 State:连接状态 PID/Program name :进程 PID/进程名 netstat -c netstat -ct netstat -cu netstat -r netstat -i netstat -s
在使用 netstat 命令中,会显示一些连接状态,下面是各状态的意思: LISTEN
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 SYN-SENT SYN-RECEIVED ESTABLISHED FIN-WAIT-1 FIN-WAIT-2 CLOSE-WAIT CLOSING LAST-ACK TIME-WAIT CLOSED
系统命令 ps 查看进程信息 参数介绍 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 待写... 使用示例: ps -ef ps -ef|grep -v grep|grep ssh UID PID PPID C STIME TTY TIME CMD root 17381001/27?00:08:56/usr/sbin/sshd
表头解释:
1 2 3 4 5 6 7 8 UID :启动进程的用户 PID :进程标识符(进程 1 代表 init 是整个系统的父进程) PPID :父进程标识符(进程 1 代表 init 是整个系统的父进程) C :CPU 占用率% STIME :启动进程的日期 TTY :终端号 TIME :进程运行时间(非休眠状态) CMD :启动进程的命令(或进程名/进程程序所在目录)
kill 结束进程 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ps -ef|grep -v grep|grep "nginx" UID PID PPID C STIME TTY TIME CMD root 23561004/03?00:03:12 nginx kill -92356kill -2 PIDkill -9 PID
free 查看内存使用信息 参数介绍 1 2 3 4 5 6 7 8 9 10 11 12 -b :以字节(bytes/B)为单位显示 -k :以 KB 为单位显示 -m :以 MB 为单位显示 -g :以 GB 为单位显示 --tera :以 TB 为单位显示 -h :以人类易读的方式输出 --si :以 1000 为单位转换,而不是 1024(1MB=1*1024KB 改成 1MB=1*1000KB) -t :显示内存总数行 -s 时间:每隔 X 秒输出一次(重复输出监视内存,使用 Ctrl+C 终止) -c 次数:每隔 1 秒输出 X 次
使用示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 free total used free shared buffers cached Mem: 250872 237752 13120 0 34620 70520 -/+ buffers/cache: 132612 118260 Swap: 643064 1744 641320 free -b / free -k / free -m / free -g / free --tera free -h total used free shared buffers cached Mem: 244M 232M 12M 0B 33M 68M -/+ buffers/cache: 129M 115M Swap: 627M 1.7M 626M free -m --si free -ms 3 free -mc 5 free -m -c 6-s 2
表头解释:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 total used free shared buffers cached Mem: 244M 232M 12M 0B 33M 69M -/+ buffers/cache: 129M 115M Swap: 627M 1.7M 626M total :系统 总物理内存 used :系统 已分配物理内存(但非全部都在使用,包含 buffers 好 cached) free :系统 未分配物理内存 shared :系统 共享内存,一般都是 0 buffers :系统 分配但未使用的 buffers 数量 cached :系统 分配但未使用的 cached 数量 used :系统 实际使用的内存 free :系统 实际可用的内存 total :系统 总虚拟内存 used :系统 已分配虚拟内存 free :系统 未分配虚拟内存
date 查看/设置 系统时间 参数介绍 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 -d :以指定的时间格式显示时间 -f :显示 DATE FILE 文件中的每行时间(我也不懂) -r :显示文件/文件夹最后修改时间 -s :设置系统时间 -u :显示 UTC 时间 %%-显示字符% %a -星期几的缩写(Sun..Sat) %A -星期几的完整名称(Sunday...Saturday) %b -月份的缩写(Jan..Dec) %B -月份的完整名称(January..December) %c -日期与时间。只输入 date 指令也会显示同样的结果 %C -世纪(年份除 100 后去整)[00-99] %d -日期(以 01-31 来表示)。 %D -日期(含年月日)。 %e -一个月的第几天(1..31) %F -日期,同%Y-%m-%d %g -年份(yy) %G -年份(yyyy) %h -同%b %H -小时(00..23) %I -小时(01..12) %j -一年的第几天(001..366) %k -小时(0..23) %l -小时(1..12) %m -月份(01..12) %M -分钟(00..59) %n -换行 %N -纳秒(000000000..999999999) %p - AM or PM %P - am or pm %r -12 小时制时间(hh:mm:ss [AP]M) %R -24 小时制时间(hh:mm) %s -从 00:00:001970-01-01 UTC 开始的秒数 %S -秒(00..60) %t -制表符 %T -24 小时制时间(hh:mm:ss) %u -一周的第几天(1..7);1 表示星期一 %U -一年的第几周,周日为每周的第一天(00..53) %V -一年的第几周,周一为每周的第一天(01..53) %w -一周的第几天(0..6);0 代表周日 %W -一年的第几周,周一为每周的第一天(00..53) %x -日期(mm/dd/yy) %X -时间(%H:%M:%S) %y -年份(00..99) %Y -年份(1970…) %z - RFC-2822 风格数字格式时区(-0500) %Z -时区(e.g., EDT),无法确定时区则为空
使用示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 date date -udate -r log.txtdate +%Ydate +%mdate +%Ddate +%Y-%m-%ddate +%m/%d/%ydate +%m/%d/%Ydate +%sdate "+%Y-%m-%d %H:%I:%S %u %Z" date -s "2017-04-05" date -s "10:29:05" date -s "2017-04-05 10:29:05"
chmod 修改 文件/文件夹 权限 参数介绍 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 -c :只输出被改变权限的文件信息 -f :当 chmod 不能改变文件模式时,不通知文件的用户 -R :可递归遍历子目录,把修改应到目录下所有文件和子目录 -v :无论修改是否成功,输出每个文件的信息 +:添加某个权限。 -:取消某个权限。 =:赋予给定权限并取消其他所有权限(如果有的话)。 r :可读 w :可写 x :可执行 X :只有目标文件对某些用户是可执行的或该目标文件是目录时才追加 x 属性 s :在文件执行时把进程的属主或组 ID 置为该文件的文件属主。方式“u + s”设置文件的用户 ID 位,“g + s”设置组 ID 位 t :保存程序的文本到交换设备上 u :当前用户的权限 g :当前用户同组的权限 o :其他用户的权限 0:表示没有权限 1:表示可执行权限 2:表示可写权限 4:表示可读权限
使用示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 chmod +x ssr.shchmod 444 log.txtchmod 666 log.txtchmod 777 log.txtchmod -R 777 log.txt
uname 获取操作系统信息 参数介绍 1 2 3 4 5 6 7 8 9 10 11 -a:显示全部信息 -m:显示系统位数 -n:显示主机名称 -r:显示操作系统的发行编号 -s:显示操作系统的名称 -v:显示操作系统的版本 -p:输出处理器类型或"unknown" -i:输出硬件平台或"unknown" -o:输出操作系统名称
使用示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $ uname Linux $ uname -a Linux doub.io 2.6.32-042stab120.6 $ uname -m i686 $ uname -n doub.io $ uname -r 2.6.32-042stab120.6 $ uname -s Linux $ uname -v $ uname -p unknown $ uname -i unknown $ uname -o GNU/Linux
cron 定时任务 crontab 是用来定期执行程序的命令。
当安装完成操作系统之后,默认便会启动此任务调度命令。
cron 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
而 linux 任务调度的工作主要分为以下两类:
系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
个人执行的工作:某个用户定期要做的工作,例如每隔 10 分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
参数说明 1 2 3 4 5 6 7 8 9 crontab [ -u user ] file crontab [ -u user ] { -l | -r | -e } -u : user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。 -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe) -r : 删除目前的时程表 -l : 列出目前的时程表
日程表格式
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 _ 时表示每分钟都要执行 program,f2 为 _ 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 _/n 时表示每 n 分钟个时间间隔执行一次,f2 为 _/n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其馀类推
使用示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 0 * * * * /bin/ls 0 6-12/3 * 12 * /usr/bin/backup 0 17 * * 1-5 mail -s "hi" [email protected] < /tmp/maildata 20 0-23/2 * * * echo "haha" 0 */2 * * * /sbin/service httpd restart 50 7 * * * /sbin/service sshd start 50 22 * * * /sbin/service sshd stop 0 0 1,15 * * fsck /home 1 * * * * /home/bruce/backup 00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; 30 6 */10 * * ls