周末的下午,坐在公司里,完成了手头的工作。感受着海南秋季的惬意,本着不能浪费这份美好的初衷,整理几个常用命令的详细意义。知其然,且知其所以然。
ps -ef |grep renren-security
[root@localhost soft]# ps -ef|grep renren-security
root 7934 1 0 11月03 ? 00:05:46 java -jar renren-security.jar
命令含义:
ps:将某个进程显示出来
-e 显示所有进程
-f 显示UID,PPIP,C与STIME栏位。
grep命令是查找
中间的|是管道命令
用法: command 1 | command 2 他的功能是把第一个命令command 1执行的结果作为command 2的输入传给command 2
这条命令的意思是显示有关renren-security有关的进程
结果字段含义:
UID PID PPID C STIME TTY TIME CMD
root 7934 1 0 11月03 ? 00:05:46 java -jar renren-security.jar
UID 程序被该 UID 所拥有
PID 就是这个程序的 ID
PPID 则是其上级父程序的ID
C CPU 使用的资源百分比
STIME 系统启动时间
TTY 登入者的终端机位置
TIME 使用掉的 CPU 时间。
CMD 所下达的指令为何
find / -name httpd.conf
在find后面写上 -name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可。稍等一会系统会在计算机屏幕上显示出查找结果列表:
/etc/httpd/conf/httpd.conf
/usr/lib/tmpfiles.d/httpd.conf
打包压缩相关命令
gzip:
bzip2:
tar: 打包压缩
-c 归档文件
-x 压缩文件
-z gzip压缩文件
-j bzip2压缩文件
-v 显示压缩或解压缩过程 v(view)
-f 使用档名
tar -cvf /home/abc.tar /home/abc 只打包,不压缩
tar -zcvf /home/abc.tar.gz /home/abc 打包,并用gzip压缩
tar -jcvf /home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩
当然,如果想解压缩,就直接替换上面的命令 中的“c” 换成“x” 就可以了。
scp [参数] [原路径] [目标路径]
从本地服务器复制到远程服务器:
scp local_file remote_username@remote_ip:remote_folder
**从远程服务器复制到本地服务器: **
scp remote_username@remote_ip:remote_folder local_file
从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。
curl请求测试接口
get请求
curl “http://www.baidu.com” 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地
curl -i “http://www.baidu.com” 显示全部信息
curl -l “http://www.baidu.com” 只显示头部信息
curl -v “http://www.baidu.com” 显示get请求全过程解析
post请求
curl -d “param1=value1¶m2=value2” “http://www.baidu.com”
json格式的post请求
curl -l -H “Content-type: application/json” -X POST -d ‘{“phone”:“13512345678”,“password”:“test”}’ http://domain/apis/users.json
grep查看服务器日志
grep -C10 ‘2019-12-11 17:40’ console-2019-12-11.out
-a: --text 不忽略二进制的数据
-A<N>: --after-context=<N> 除了显示匹配到的行外, 还会显示该行后面的<N>行
-b: --byte-offset 在显示该行内容前 会列出该列第一个字符在文件中的字符偏移量
-B <N>: --before-context=<N> 显示匹配到的行, 还会显示该行前面 <N>行的内容
-c: --count 统计符合匹配的行数
-C<N>: --context=<N> 除了显示匹配行外, 会显示该行前后各<N> 行的内容
-d<动作> 指定查找的是目录而非问阿金时, 必须使用该参数, 否则 grep 会停止动作
-e<范本>: 指定需要作为查找文件内容的范本.
-E --extended-regexp 将范本作为扩展表示方法来使用, 等同于使用 egrep
-f <范本>: 指定范本文件, 其内容包含一个或多个范本, 让grep 查找符合条件的内容
-F: --fixed-regexp 将范本规则视为固定字符串的列表
-G: 将范本视为普通的表示方法来使用
-h: 显示符合范本样式的一列前, 不标该列所属的文件名称
-H: 显示符合范本 一列之前, 标识该列所属文件名称
-i: 忽略大小写
-l: 列出内容符合指定范本的文件名
-L: 累出文件内容不符合指定的样式的文件名称
-n: 显示符合样式的一行之前, 标出该行的 行号
-q: 不显示任何信息
-r: 此参数的效果和 -d resurce 相同
-s: 不显示错误信息
-v: 显示不包含匹配文件的所有行
-V: 显示版本信息
-w: 只显示全符合的列
-x: l只显示全列的符合的列
y: 该参数与 -i 相同
开机自启
vim /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
#新建启动对象
/project/init-start.sh
定时任务-cron
cron服务是Linux的内置服务,但它不会开机自动启动,可以每分钟执行任务。可以用以下命令启动和停止服务:
/bin/systemctl start crond
/bin/systemctl stop crond
/bin/systemctl restart crond
/bin/systemctl reload crond
/bin/systemctl status crond
crontab操作
crontab -u //设定某个用户的cron服务
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务
crontab -i //打印提示,输入yes等确认信息
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
定时任务的每段为:分,时,日,月,周,用户,命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
*:表示任意时间都,实际上就是“每”的意思。可以代表00-23小时或者00-12每月或者00-59分
-:表示区间,是一个范围,00 17-19 * * * cmd,就是每天17,18,19点的整点执行命令
,:是分割时段,30 3,19,21 * * * cmd,就是每天凌晨3和晚上19,21点的半点时刻执行命令
/n:表示分割,可以看成除法,*/5 * * * * cmd,每隔五分钟执行一次