奇奇怪怪的工作经历,以前最不擅长的运维实施,现在也开始干了,既然如此就给点时间吧。对于记性不好的自己,就记录下来方便查找好了。
用户切换管理
文件操作
文件内容查看操作
一些系统命令
#如果当前用户是root切换到别的用户时,不需要输入密码;如果当前用户非root切换到root必须输入密码
su test #test是一个普通用户
#exit可以返回原来的用户
exit
#加上参数-l,则表示切换时连同环境变量、工作目录一起改变
su -l mysql
#查看当前用户
who am i
#查询用户所属的组 groups
groups 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:递归修改指定目录下所有子项的权限
#切换当前目录到/test
cd /test
#回到根目录
cd ~
#回到当前目录的上一级目录
cd ..
#获取当前目录的全路径
pwd
#显示当前目录下的所有文件和目录
ls
#显示当前目录下的所有文件和目录,包括隐藏文件和目录
ls -a
#以列表形式显示当前目录下的文件和目录,可以查看文件所有者和所在组
ls -l
#查看指令 > 目标文件:将前一个查看指令中的结果覆盖写入到目标文件中,如果目标文件不存在,则新建。
# 将ls的结果写入1.txt文件中,如果不存在则创建该文件
#创建文件,创建一个或多个空文件
touch 1.txt
#创建目录,如果要创建多级,需要加上参数-p
mkdir test
mkdir test/test01/test111
#mv重命名
#mv oldNameFile newNameFile
mv 1.txt 2.txt
#mv移动文件到/tmp目录下
#mv /temp/file /targetFolder
mv 1.txt /tmp/
#将1.txt复制到新的地址下的2.txt
cp 1.txt /tmp/2.txt
#-r :递归复制整个文件夹
cp -r file1 file2
#删除文件,删除之前会要求确认
#-r :递归删除整个文件夹
#-f :强制删除不提示
rm 1.txt
#删除目录,会删除目录下的子目录及文件,删除前会要求确认
rm -r test
#直接删除1.txt
rm -f 1.txt
#直接删除目录及目录下的子目录、文件
rm -rf test
#find命令从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端
按名称查找,支持通配符。 :
按用户名查找 :
按文件大小查找 :
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/profile
cat -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 print
cat /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.com
ping www.baidu.com
#telnet主要作用变成了查看某个端口是否可访问,telnet IP或域名 端口
telnet www.baidu.com 80
# 通过traceroute可以探测出数据从当前计算机到另一台主机是走了什么样网络路径
traceroute [OPTIONS] IP或域名
traceroute www.baidu.com -T
#显示所有进程
ps aux
ps aux | sort -rnk 4 # 按内存资源的使用量对进程进行排序
ps aux | sort -nk 3 # 按 CPU 资源的使用量对进程进行排序
# -u 指定test用户的所有进程
ps -u test# 显示指定用户信息
#常用的查找某类进程,显示所有mysql进程
ps -ef|grep mysql# 输出结果的第2列即为进程的pid
#杀掉对应进程的pid
kill -9 pid
#让mysql进程输出线程信息
kill -3 pid
#环境变量
env 显示环境变量
#表示查看当前目录的所有文件及目录大小(不包括隐藏文件)
du -sh *
du -sh # 查看当前目录所有文件和目录加起来的大小
#显示test目录下的所有文件的大小的合计
du -hs test
#df可以查看到各目录和文件的大小
#显示所有分区的使用情况
df -h
df -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 test0101
zip 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
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。