运维-Linux
一、命令lllsls -lt按照日期排序cdpwdmkdir -ptouchcatcp -rmvrm -rf *.txthistoryyumyum -y [install | remove | search] 软件名称systemctlsystemctl [start | stop | status | enable | disable] 服务名hostnamectl set-hostname 主机名datecurl发送网络请求格式curl [选项] URL选项-X制定请求方法GET POSTcurl -X GET http://192.168.0.104:8080/test-I仅获取响应头不下载响应体 curl -I http://192.168.0.104:8080/test-H添加请求头 curl -H “head1:zs” -H “head2:ls” http://192.168.0.104:8080/test2发送POST请求curl -H “Content-Type:application/json” -d ‘{“username”:“zs”,“age”:“14”}’ -X POST http://192.168.0.104:8080/test2top实时性能监控命令格式top [选项]选项df TODO查看硬盘的使用情况格式df [选项]选项-h以人性化展示 df -hdu查看某个文件夹下所有文件夹的磁盘使用情况格式du [选项]选项-h以人性化展示 du -h-hs展示文件夹磁盘大小 du /dir -hsnetstat -anp | grep 3306tartar.gz比tar体积更小压缩成tartar -cvf a.tar a.log b压缩成tar.gztar -zcvf a.tar.gz a.log btar解压tar -xvf a.tar -C /dirtar.gz解压tar -zxvf a.tar.gz -C /dirzipzip压缩(-r表示对文件夹压缩)zip -r a.zip a.log bbunzip解压unzip a.zip -d /dirps -ef | grep javaps -ef列出全部进程kill -9 进程IDpingifconfighostnamefindfind / -name ‘*.txt’find / -size -100kfind / -size 100Mfind / -size 100Ggrep文本搜索命令格式grep [选项] ‘搜索内容’ 文件PS可以将搜索内容保存到一个文件中grep ‘搜索内容’ a.log d.log选项-i忽略大小写grep -i ‘搜索内容’ a.log-n显示行号grep -n ‘搜索内容’ a.log-c输出匹配行数grep -n ‘搜索内容’ a.log-l是小写的L不是大写的i。仅输出匹配到的文件名不输出匹配到的行内容grep -l ‘搜索内容’ *.log-C n显示匹配行的前后各n行grep -C 5 ‘搜索内容’ a.log正则^规定行开头grep ‘^开头内容’ a.log规定行结尾grep′结尾内容规定行结尾grep 结尾内容规定行结尾grep′结尾内容’ a.log[]中括号内的内容任意匹配一个不能同时多个grep ‘A[Bb]C’ a.log搜索ABC或者AbC。[0-9]代表任意数字[a-zA-Z0-9_]代表匹配任意字母数字下划线。wc文本统计命令格式wc [选项] 文件选项-l统计文件行数wc -l a.log|管道符的作用左边的输出作为右边的输入。ps -ef | grep javaecho追加echo “a” a.txt覆盖echo “a” a.txttail -fvim/搜索内容n调到下一个匹配的结果二、权限切换用户su - 用户名将命令临时以root权限执行sudo mkdir a.log需要给普通用户配置sudo认证vim /etc/sudoers 最后一行加上zhangsan ALL(ALL) NOPASSWD: ALLLinux可以为用户或者用户组配置权限。创建用户组groupadd 用户组名删除用户组groupdel 用户组名创建用户张三指定用户组为group1useradd -g group1 zhangsan删除用户(-r同时删除用户的home目录)userdel [-r] 用户名查看用户详情id 用户名为张三添加用户组group2usermod -aG group2 zhangsan1文件/文件夹的权限信息2文件/文件夹所属用户3文件/文件夹所属用户组修改文件/文件夹权限(只有root或所属用户可以修改)chmod [-R] 权限 文件/文件夹-R对文件夹内所有内容应用同样操作对a.log文件的所属用户、所属用户组、其他用户设置可读可写可执行权限chmod 777 a.log修改文件、文件夹的所属用户和用户组(仅root可执行)chown [-R] [用户]:[用户组] 文件/文件夹-R对文件夹内的所有内容应用同样规则修改a.log的所属用户为zhangsanchown zhangsan a.log修改a.log的所属用户组为group1chown :group1 a.log修改b.log的所属用户为zhangsan所属用户组为group2chown zhangsan:group2 b.logshellshell是用户与操作系统之间的命令解析器用户输入命令shell解析器解析命令再调用操作系统去执行命令。shell脚本是指存放一堆命令这些命令都可以由shell解析器解析并依次调用操作系统去执行。common.sh#! /bin/bashexportnamejrbexporthost127.0.0.1exportport3306exportusernamerootexportpasswordjrbjrb811exportdatabasedemoa.txt张三 18 男 李四 26 女b.txt张三;18;男 赵四;26;女test.sh#! /bin/bash# 引入外部shell脚本source./common.sh# 系统变量echo脚本名称$0# 环境变量echo主机名$HOSTNAME# 用户变量age28# 重置用户变量unsetage# 设置只读用户变量不可修改readonlysexmale# 睡眠5ssleep5# 键盘输入read-p请输入p1 p2# if条件判断# -eq 等于# -lt 小于# -gt 大于# -ne 不等于# le 小于等于# ge 大于等于# -f 判断文件是否存在# -d 判断文件夹是否存在# -a 且都满足才执行# -o 或满足一个就执行num2if[$num-eq1];thenecho$num1elif[$num-eq2];thenecho$num2elseecho$num既不等于1也不等于2fif/a/a.txtif[-f$f];thenecho文件$f存在ficount10if[$count-eq10-a!$count-eq5];thenecho$count等于10且不等于5fi# for循环for((i0;i10;i))doecho$idoneforvina b c d edoecho$vdone# 函数与调用functionaddResult(){return$[$1$2]}addResult1020echoaddResult结果$?# 日期today$(date%Y-%m-%d %H:%M:%S)zt$(date-d-1 day%Y-%m-%d)mt$(date-d1 day%H:%M:%S)# 读取文件内容默认分隔符为空格cata.txt|whilereadname age sexdoecho$name$age$sexdone# 读取文件内容分隔符为;old_ifs$IFSIFS;catb.txt|whilereadname age sexdoecho$name$age$sexdoneIFS$old_ifs# 访问数据库# 查询demo库的demo_student表-e 后面必须加table_namedemo_studentquery_sqlselect * from$table_namemysql -h$host-P$port-u$username-p$password$database-e$query_sql# 插入数据insert_sqlinsert into$table_name(id,name) values (3,王五),(4,赵六)mysql -h$host-P$port-u$username-p$password$database-e$insert_sql