运维必须掌握的linux命令
1.ls
ls -l 当前目录下文件和目录详情
ls -l |grep "^-"|wc -l 查看当前目录下文件数量
ls -l | grep "^d" | wc -l 统计当前目录下的目录个数
ls -a 列出所有文件包括隐藏文件(以.开头的文件)
ls -l test.txt 查看当前目录下test.txt文件的属性
2.ps
ps -ef|grep java 查看java进程
ps aux 查看包括CPU,MEM等信息
ps -u appuser 查看appuser的进程
pstree 将所有进程以树状图显示
3.cd
cd /home/admin 切换当前工作目录至 /home/admin
4.du 显示每个文件和目录的磁盘使用空间~~~文件的大小
du -h dem.txt 以K M G为单位显示文件dem.txt大小
du -h . 显示当前目录下子目录大小和总大小
5.df 显示磁盘分区上可以使用的磁盘空间
df -h 显示磁盘可用和已用的空间
6.free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存
free -k 以KB为单位显示内存使用情况
free -m 以MB为单位显示内存使用情况
free -g 以GB为单位显示内存使用情况
free -s 10 持续观察内存使用状况,每10秒
7.mkdir 新建目录
mkdir -p dxc/test.txt 在当前目录下创建目录dxc和文件test.txt(不加p则当前目录下不存在dxc目录会报错)
8.cat 命令用于连接文件并打印到标准输出设备上
cat -n 由 1 开始对所有输出的行数编号
cat -b 对于空白行不编号
cat /dev/null > /etc/test.txt 清空文件
tac 倒序显示
echo "" > /etc/test.txt 清空文件
9.touch 修改文件或者目录的时间属性
touch testfile 修改文件时间属性为当前系统时间,文件不存在则新建文件
10.find
find /home -name salary.log 查找/home目录或其子目录中名称为salary.log的文件
find /home -size -10kb 查找文件大小小于10KB的文件(单位从小到大b k M G)
find /home -size +10kb 查找文件大小大于10KB的文件
11.tail
tail -f (tailf) 监控
tailf |grep 'error' 监控字符含error
tail -100 error.log 输出结尾100行
12.more 和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行
more +10 salary.log 从10行开始显示
more -10 salary.log 定义屏幕大小为10行
13.less 和more功能类似,支持按前和后搜索
14.alias 设置命令的别名,可以将长的不好记的指令设置个短的别名
alias sshlogin='ssh root@127.0.0.1' 给ssh root@127.0.0.1命令设置短的别名
unalias sshlogin 取消别名
命令只对当前控制台有效,退出后失效,永久有效需要编辑~/.bash_profile文件,在这文件中增加 alias sshlogin='ssh root@127.0.0.1' 保存后source一下
15.grep 该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等,比如可以加在ps, tail, cat后面
ps -ef|grep java 查找java进程
16.locate 在搜寻数据库时快速找到档案,数据库由updatedb程序来更新
locate -d /tmp/mlocate.backup.db testnewdirname 指定特定的搜索库,默认是 /var/lib/mlocate/mlocate.db,显示文件或者文件夹
locate -n 5 salary 至多显示5个输出 salary等价于salary
17.用户相关
/etc/passwd 用户的信息文件。信息格式为“用户名称:密码:uid:gid:说明:家目录:shell”
/etc/group 用户组的信息文件。信息格式为"组名称:组密码:组id:组成员"
useradd my 增加my用户
userdel my 删除my用户
passwd my 设置或者修改用户my的密码
usermod -d /etc/ root 设置用户root的登录目录(登录进去后的当前目录)
18.用户组相关
groupadd 增加新组
groupdel 删除用户组
usermod -g 用户组 用户名 强行设置某个用户所在组
usermod -a -G 用户组 用户名 把用户添加进入某个组(s)
19.权限修改
chown 改变文件所有者
chgrp 改变文件所属组
chmod 改变文件所属用户,所属组合其他人的权限
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是
- tar
-c :新建打包文件
-t :查看打包文件的内容含有哪些文件名
-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-j :通过bzip2的支持进行压缩/解压缩
-z :通过gzip的支持进行压缩/解压缩
-v :在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件
-C dir :指定压缩/解压缩的目录dir
缩略版...
压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称
查询:tar -jtv -f filename.tar.bz2
解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录</pre>
21.cp 拷贝文件
22.mv 剪切(移动)文件
23.rm 删除目录或者文件,支持通配
参数:
-f :就是force的意思,忽略不存在的文件,不会出现警告消息
-i :互动模式,在删除前会询问用户是否操作
-r :递归删除,最常用于目录删除,它是一个非常危险的参数
rm -rf *.log 删除后缀名为log的所有文件或者目录 - rmdir 只能删除空目录
-p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。
-v --verbose 显示指令执行过程
25.pwd 当前工作目录
- gzip
27.kill和pkill killall
- crontab
29.free
30.top 实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
31.sudo 用来以其他身份来执行命令,预设的身份为root
su admin 切换到admin用户
32.which 会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果
which locate ->/usr/bin/locate
- whereis 只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)
-b 定位可执行文件。
-m 定位帮助文件。
-s 定位源代码文件。
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
-B 指定搜索可执行文件的路径。
-M 指定搜索帮助文件的路径。
-S 指定搜索源代码文件的路径。
whereis locate ->locate: /usr/bin/locate /usr/share/man/man1/locate.1.gz - whoami 当前用户
35.id 显示用户信息
id admin->uid=1000(admin) gid=1000(admin) 组=1000(admin)
参考文章:
https://www.cnblogs.com/xuxinstyle/p/9609551.html
https://www.cnblogs.com/zhongguiyao/p/9165917.html