奇奇怪怪的工作经历,以前最不擅长的运维实施,现在也开始干了,既然如此就给点时间吧。对于记性不好的自己,就记录下来方便查找好了。

用户切换管理

文件操作

文件内容查看操作

一些系统命令

#如果当前用户是root切换到别的用户时,不需要输入密码;如果当前用户非root切换到root必须输入密码su test #test是一个普通用户
#exit可以返回原来的用户exit
#加上参数-l,则表示切换时连同环境变量、工作目录一起改变su -l mysql
#查看当前用户who am i
#查询用户所属的组 groupsgroups test
#查询用户身份id test#增加新的newtest账号useradd newtest  #删除newtest账号userdel newtest #修改newtest密码passwd newtest
#给文件加可执行权限,shell脚本需要加可执行权限后才能执行chmod +x mysql_run.sh #为某目录下及其子目录下的所有文件加可执行权限,-R参数表示递归到文件夹下所有的文件夹chmod -R +x run_code#为某目录下及其子目录下的所有文件加可执行权限,-R参数表示递归到文件夹下所有的文件夹chmod -R 775 run_code

语法1:chmod [ugoa] [+-=] [rwx] 文件或目录…(+、-、= 分别表示增加、去除、设置权限)

(u、g、o、a 分别表示属主、属组、其他用户、所有用户)

(r,w,x权限字符可分别表示为8进制字符4,2,1,表示一个权限组合时需要将数字进行累加;如rwx=7linux复制整个文件夹linux复制整个文件夹,rw-r-r=644)

u+x:表示某文件对于属主(u)有执行权限(x)

语法2:chmod nnn 文件或目录…(3位八进制数)

常用命令选项:-R:递归修改指定目录下所有子项的权限

#切换当前目录到/testcd /test#回到根目录cd ~ #回到当前目录的上一级目录cd ..  #获取当前目录的全路径pwd  #显示当前目录下的所有文件和目录ls  #显示当前目录下的所有文件和目录,包括隐藏文件和目录ls -a  #以列表形式显示当前目录下的文件和目录,可以查看文件所有者和所在组ls -l  #查看指令 > 目标文件:将前一个查看指令中的结果覆盖写入到目标文件中,如果目标文件不存在,则新建。ls -l > 1.txt # 将ls的结果写入1.txt文件中,如果不存在则创建该文件#创建文件,创建一个或多个空文件touch 1.txt #创建目录,如果要创建多级,需要加上参数-p mkdir testmkdir test/test01/test111 #mv重命名#mv oldNameFile newNameFilemv 1.txt 2.txt #mv移动文件到/tmp目录下#mv /temp/file /targetFoldermv 1.txt /tmp/ #将1.txt复制到新的地址下的2.txtcp 1.txt /tmp/2.txt#-r :递归复制整个文件夹cp -r file1 file2
#删除文件,删除之前会要求确认#-r :递归删除整个文件夹#-f :强制删除不提示rm 1.txt#删除目录,会删除目录下的子目录及文件,删除前会要求确认rm -r test#直接删除1.txtrm -f 1.txt #直接删除目录及目录下的子目录、文件rm -rf test #find命令从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端-name:按名称查找,支持通配符。-user:按用户名查找-size:按文件大小查找find [搜索范围] [-参数]
find .  #输出所有以.开头的结果#列出/test目录的所有子目录及文件find /test#查找/test目录下文件名以.sql结尾的文件find /test -name '*.sql'#查找home目录下100天之内修改过的文件find /home -mtime -100 #查找user test的文件find /home -user test#查找所有size大于5m的文件find /home size +5M
#|是管道命令,对前面的命令结果执行后面的命令操作#“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
#删除所有.sql文件find . -name '*.sql'|xargs rm -rf#找到home下所有csv文件并统计个数find /home -name '*.csv'|wc -l

#cat [-参数] 要查看的文件名;-n :显示行号;-E  在结束行提示$cat /etc/profilecat -n /home/..../test.csv
#以全屏幕的方式按页显示文本文件的内容# 进入命令后,回车显示下一行,空格显示下一屏,q表示离开文件不显示,=显示当前行号more 1.txt #从第2000行开始显示文本文件,在操作日志时很有用more +2000 1.txt
#less指令用来分屏查看文件内容,与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,是根据显示需要加载内容,对于显示大型文件具有较高的效率#空格表示下一页,q表示离开文件,pageup上一页,pagedown下一页#/字符串 表示向下查找该字符串,n向下查找,N向上查找less 1.txt
#显示文件前10行或者前几行head 1.txt # 默认查看文件头10行内容)head -n 5 1.txt
#显示文件的后10行tail 1.txt#显示文件的后100行tail -n 100 1.txt#显示文件的末尾,如果文件有追加内容,则自动输出追加的内容,常用于监视日志文件tail -f catalina.out #wc 统计指定文件中的字节数、字数、行数, 并将统计结果显示输出wc -l 1.txt # 统计1.txt的行数wc -c 1.txt # 统计1.txt的字节数wc -m 1.txt # 统计1.txt的字符数wc -w 1.txt # 统计1.txt的单词数
#grep [-参数] 查找的源文件内容-n:显示匹配行和行号-i:忽略大小写
#将1.txt中含有print的行输出grep print1.txt#将1.sql中以create开头的行输出,不区分大小写grep -i ^create 1.sql#查找结果分屏显示grep print1.txt|more#查找结果 使用>命令 输出到临时文件grep Exception catalina.out>tmp.txt
#grep通常和管道符|一起使用cat /home/.../testqq.txt | grep printcat /home/.../testqq.txt | grep -ni print#查找环境变量值某个环境变量的地址env | grep oracle*

#|是管道命令,对前面的命令结果执行后面的命令操作#“|”,表示将前一个命令的处理结果输出传递给后面的命令处理#统计1.txt文件中含有print的行数grep print 1.txt|wc -l
#更复杂的情况,grep还可以使用正则表达式查找

#编辑查看文件内容vi 1.txt以vi打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中, 可以使用上下左右按键来移动光标,你可以使用删除字符或删除整行来处理文件内容, 也可以使用复制、粘贴来处理你的文件数据。
只有当按下【i, I, o, O, a, A, r, R】等任何一个字母之后才会进入编辑模式。这时候屏幕的左下方会出现【INSERT或 REPLACE】的字样,此时才可以进行编辑。编辑模式下,只有按下【Esc】 退出编辑模式,才能回到一般模式:
一般模式切换到命令行模式可用的按钮说明【:w】 保存编辑的内容【:w!】强制写入该文件,但跟你对该文件的权限有关【:q】 在未进行修改的前提下离开vi【:q!】 不想保存修改强制离开【:wq】 强制写入并保存后离开【:x】 保存后离开
输入【 : / ? 】 三个中的任何一个,就可以将光标移动到最底下那一行。在这个模式中, 可以提供查找、读取、存盘、替换字符、离开vi、显示行号等的动作则是在此模式中完成的!

#ping 命令常常用来测试,指定的两台机器之间的网络是否可以连通ping [OPTIONS] 域名或IP地址-4:只使用 IPv4-6:只使用 IPv6-c count:发送多少个测试包之后停止,linux环境下如果不加这个参数会一直发包-i interval:指定发包的的间隔时间ping -c 5 -i 2 www.baidu.comping www.baidu.com
#telnet主要作用变成了查看某个端口是否可访问,telnet IP或域名 端口 telnet www.baidu.com 80  # 通过traceroute可以探测出数据从当前计算机到另一台主机是走了什么样网络路径 traceroute [OPTIONS] IP或域名 traceroute www.baidu.com -T 

#显示所有进程ps auxps aux | sort -rnk 4 # 按内存资源的使用量对进程进行排序ps aux | sort -nk 3 # 按 CPU 资源的使用量对进程进行排序# -u 指定test用户的所有进程ps -u test# 显示指定用户信息
#常用的查找某类进程,显示所有mysql进程ps -ef|grep mysql# 输出结果的第2列即为进程的pid#杀掉对应进程的pidkill -9 pid #让mysql进程输出线程信息kill -3 pid #环境变量env 显示环境变量
#表示查看当前目录的所有文件及目录大小(不包括隐藏文件)du -sh *du -sh # 查看当前目录所有文件和目录加起来的大小#显示test目录下的所有文件的大小的合计du -hs test #df可以查看到各目录和文件的大小#显示所有分区的使用情况df -hdf -Th # 查看当前系统所有的挂载点使用情况#动态显示所有进程的资源使用情况top #每隔2秒统计一次,连续统计一万次vmstat 2 10000 #释放可释放的内存并显示内存使用情况,需要注意的是有多少可用内存需要看第二行的free列结果free #列出打开文件lsof#列出/usr/tmp未关闭的文件lsof|grep /usr/tmp #显示环境变量env #重启系统reboot 或 shutdown -r now
#压缩和解压缩#将文件压缩为*.gz文件存放在原文件所在目录# 压缩成功后会把原文件删除。用于压缩单个文件gzip /home/test/test00.txt#如果想保留原文件则可以使用-c选项将压缩过程产生的标准输出写入一个新的文件中gzip -c /home/test/test00.txt > /home/test/test00.txt.gz#压缩的同时不删除源文件# 分别压缩目录下的每个文件# 下述命令会将123这个目录下的每个文件分别进行压缩,而不是将整个123目录进行压缩,也就是说**gzip命令不会打包压缩**gzip -r 123# 解压缩可以使用gunzip:gunzip ccc.gz
# 指定文件或目录压缩成XXX.zip文件,用于压缩所有文件结构# zip [-参数] XXX.zip 将要压缩的内容;-r:递归压缩,即压缩目录zip test.zip test0101zip test1.zip test0101 test0102 test0103 #压缩多个文件# zip对应的解压缩命令为unzip:命令所在目录为/usr/bin/unzip,所有用户可执行;# unzip [-参数] 压缩包名#-d:指定解压缩位置unzip -d /tmp/test.zip

# .tar格式:只是打包并不会压缩文件# .tar格式的打包和解打包都是使用tar命令,区别只是选项不同# tar [-参数] XXX.tar.gz [打包的内容]tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)
.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName
.tar.gz 和 .tgz解压:tar zxvf FileName.tar.gz压缩:tar zcvf FileName.tar.gz DirName
.bz2解压1:bzip2 -d FileName.bz2解压2:bunzip2 FileName.bz2压缩: bzip2 -z FileName
.tar.bz2解压:tar jxvf FileName.tar.bz2压缩:tar jcvf FileName.tar.bz2 DirName
.bz解压1:bzip2 -d FileName.bz解压2:bunzip2 FileName.bz压缩:未知
.tar.bz解压:tar jxvf FileName.tar.bz压缩:未知
.Z解压:uncompress FileName.Z压缩:compress FileName
.tar.Z解压:tar Zxvf FileName.tar.Z压缩:tar Zcvf FileName.tar.Z DirName
.zip解压:unzip FileName.zip压缩:zip FileName.zip DirName
.rar解压:rar x FileName.rar压缩:rar a FileName.rar DirName

限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688