小惠 2020-06-02
# Linux你需要的命令都在这
## 0、关机重启:
(1)关机:shutdown
-h 关机
-r 重启
-c 取消前一个关机命令
例:shutdown -h now #立即关机
shutdown -r 20:30run
shutdown -c
(2)关机:halt,poweroff,init 0
(3)重启:reboot,init 6
(4)查看运行级别:runlevel
(5)退出登录:logou
## 1、目录操作
(1)列出文件:ls
-a 显示所有文件及目录,包括隐藏文件
-l 显示详细信息
-d显示目录本身
-h 人性化显示,最佳观看效果
-i查看i节点
(2)创建目录:mkdir
-p 递归创建
例:mkdir aa bb cc
(3)切换目录:cd
. 进入当前目录
. . 进入上级目录
(4)显示当前目录绝对路径:pwd
(5)删除空目录:rmdir
(6)复制:cp
-r复制目录
-p保留源文件属性
例:cp a.txt b.txt /tmp/cc
(7)剪切改名:mv
可同时剪切多个 mv a.txt b.txt /tmp/cc
(8)删除:rm
-r删除目录
-f直接删除,无提示
例:rm -rf aa
(9)创建空文件:touch
(10)浏览文件内容:cat
-n显示行号
倒序:tac
(11)分页显示文件内容:more
space空格 翻页
enter回车 换行
q 退出
(12)分页显示文件内容:less
pageup可向上翻页
上箭头 向上翻行
/关键词 查找关键词
n 下处关键词
space空格 翻页
enter回车 换行
q 退出
(13)显示文件前几行:head
-n指定行数
默认前十行
(14)显示文件后几行:tail
-n指定行数
-f动态显示文件末尾内容
(15)生成链接文件:ln
-s软链接
默认生成硬链接
软连接只是一个快捷方式,删除源文件链接失效
硬链接是公用一个i节点,删除不会影响其他,不能跨分区,不能指向目录
## 2、权限管理
(1)改变文件或目录权限:chmod
-R递归修改
可以同时更改多个 chmod g+w a.txt b.txt c.txt
例:chmod g=rwa a.txt
chmod 755 a.txt
(2)改变文件或目录所有者:chown
例:chown admin a.txt
(3)改变文件或目录所属组:chgrp
例:chgrp admins a.txt
(4)显示设置文件的默认权限:umask
-S以rwx形式显示新建文件的默认权限
(5)权限说明:
文件 目录
r 查看文件内容 列出文件内容
w修改文件内容 创建删除文件
x执行文件 进入目录
## 3、文件搜索
(1)文件搜索:find
-name 根据文件名 * 匹配任意字符 ,?单个字符
-iname 根据文件名, 不区分大小写
-size 根据文件大小查找 (+ 大于 -小于)(-a并且 -o或者)
-user 根据所有者查找
-group 根据所属组查找
-amin 访问时间 分钟(-时间内 +超过)
-cmin 文件属性修改时间
-mmin 文件内容修改时间
-type根据文件类型查找(f 文件 d 目录 l 链接)
-exec命令
-inum根据i节点查找
(2)文件搜索命令:locate
-i不劝分大小写
更新文件库updatedb
不搜索tmp目录
(3)搜索命令和别名所在目录:which
例:which ls
(4)搜索命令和帮助文档所在目录:whereis
例:whereis ls
(5)在文件内容中搜索字符串匹配的行:grep
-i不区分大小写
-v排除指定字符串
例:grep mysql install.log
## 4、帮助命令
(1)获的帮助信息:man
(2)获取命令简短信息:whatis
(3)获得配置文件简短信息:apropos
(4)获取命令选项信息:--help
(5)获取帮助细腻些: info (同man)
(6)获得shell 内置命令的帮助:help
例:help umask
## 5、压缩解压命令
(1)压缩文件(gz):gzip
-d解压(只压缩文件,不保留原文件
例:gzip a.txt
(2)解压文件(gz):gunzip
例:gunzip a.txt.gz
(3)打包目录(tar):tar
-c 打包
-v 显示详细信息
-f 指定文件名
-z 打包同时压缩(放在最前面)(生成.tar.gz)
-j 打包同时压缩 (生成.tar.bz2)
例:tar -zcf aa.tar.gz aa
tar -jcf aa.tar.bz2 aa
(4)解压(tar):tar
-x 解包
-v 显示详细信息
-f 指定解压文件
-z 解压缩(放在最前面)(解压.tar.gz)
-j 解压缩 (解压.tar.bz2)
例:tar -zxf aa.tar.gz
tar -jxf aa.tar.bz2
(5)压缩文件或目录(zip):zip
-r 压缩目录
例:zip -r bb.zip bb
(6)解压(zip):unzip
例:unzip bb.zip
(7)压缩文件(bz2):bzip2
-k 保留原文件
例:bzip2 -k a.txt
(8)解压(bz2):bunzip2
-k 保留原文件
例:bunzip2 -k a.txt.bz2
## 6.用户管理命令
1)添加用户:useradd 选项 用户
-u UID:手工指定用户的UID号
-d 家目录:手工指定用户的家目录
-c 用户说明:手工指定用户说明,有空格需加双引号
-g 初始组:手工指定初始组
-G 附加组:手工指定附加组,多个组用逗号
-s shell:手工指定用户登录shell,默认/bin/bash/
例:useradd admin
(2)更改用户
更改用户密码:passwd 选项 用户
-S 查询用户密码的密码状态(仅root可用)
-l 暂时锁定用户(仅root可用)
-u 解锁用户(仅root可用)
--stbin 可以通过管道符输出的数据作为用户的密码
例:passwd admin
echo ‘123‘ | passwd --stdin admin
更改用户信息:usermod 选项 用户
-u UID:手工指定用户的UID号
-d 家目录:手工指定用户的家目录
-c 用户说明:手工指定用户说明,有空格需加双引号
-g 初始组:手工指定初始组
-G 附加组:手工指定附加组,多个组用逗号
-s shell:手工指定用户登录shell,默认/bin/bash/
-L 暂时锁定用户
-U 解锁用户
例:usermod -G my admin
更改用户密码状态:chage 选项 用户
-l 查询用户的详细密码状态
-d 修改密码最后一次更改日期
-m 两次密码修改间隔时间
-M 密码有效期
-W 密码过期前警告天数
-I 密码过期后的宽限天数
-E 账号失效时间
例:chage -d 0 admin
把修改密码日期归0,用户一登录就要修改密码
(3)删除用户:userdel -r 用户
-r 删除用户家目录
例:userdel -r admin
(4)查看登录的用户:who
本地登录 tty
远程登录 pts
例:who
查看登录用户详细信息:w
例:w
查看用户ID:id 用户
(5)查看系统连续运行时间:uptime
例:uptime
(6)切换用户:su 选项 用户
- 连带用户环境变量一起切换
-c 仅执行一次命令,不切换用户身份
例:su - root -c ‘useradd admin‘
(7)用户配置文件
1.用户信息文件:/etc/passwd
第1字段:用户名称
第2字段:密码标志
第3字段:UID(用户id)
0:超级用户
1-499:系统用户(伪用户)
500-65535:普通用户
第4字段:GID(用户初始组ID)
第5字段:用户说明
第6字段:家目录
普通用户:/home/用户名/
超级用户:/root/
第7字段:登录之后的Shell
初始组:用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的初始组。
附加组:用户可以加入多个其他用户组,并拥有这些组的权限
2.影子文件:/etc/shadow
第1字段:用户名称
第2字段:加密密码
加密算法升级为SHA512散列加密算法
如果密码位是‘!!‘或‘*‘即没有密码。不可登录
第3字段:密码最后一次修改日期
使用1970年1月1日作为标准时间,每过一天时间加1
第4字段:两次密码的修改所需间隔时间(和第3字段相比)
第5字段:密码有效期(和第3字段相比)
第6字段:密码修改到期前的警告天数(和第6字段相比)
第7字段:密码过期后的宽限天数(和第5字段相比)
0(空):过期后立即失效
-1:永不失效
第8字段:账号失效时间(用时间戳表示)
第9字段:保留
把时间戳换算为日期:date -d "1970-01-01 16066 days"
把日期换算为时间戳:echo (((date --date=‘2014/01/06‘ +%s)/86400+1))
3.用户默认值文件:/etc/default/useradd
GROUP=100 #用户默认组
HOME=/home #用户家目录
INACTIVE=-1 #密码过期宽限天数
EXPIRE= #密码失效时间
SHELL=/bin/bash #默认shell
SKEL=/etc/skel #默认模板
CREATE_MAIL_SPOOL=yes #是否建立邮箱
(8)用户组配置文件
1.组信息文件:/etc/group
第1字段:组名
第2字段:组密码标志
第3字段:GID
第4字段:组中附加用户
2.组密码文件:/etc/gshadow
第1字段:组名
第2字段:组密码
第3字段:组管理员用户名
第4字段:组中附加用户
(9)用户管理相关文件
1.用户的家目录
普通用户:/home/用户名/,所有者和所属组都是此用户,权限是700
超级用户:/root/,所有者和所属组都是root用户,权限是550
2.用户邮箱:/var/spool/mail/用户名/
3.用户模板目录:/etc/skel/
(10)用户组管理命令
1.添加用户组:groupadd [选项] 组名
-g :指定组id
例:groupadd gadmin
2.修改组:groupmod [选项] 组名
-g:组id
-n:新组名
例:groupmod -n gadmin
3.删除组:groupdel 组名
例:groupdel gadmin
4.把用户添加入组或从组中删除:gpasswd [选项] 组名
-a:把用户加入组
-d:把用户从组中删除
例:gpasswod -a admin gadmin
gpasswod -d admin gadmin
## 7、网络命令
(1)给用户发信息:write
例:write admin(ctrl+d结束)
(2)发广播信息:wall
例:wall hello world!
(3)测试网络连通性:ping
-c 发送次数
例:ping -c 3 192.168.1.188
(4)查看、设置网卡信息:ifconfig
例:ifconfig
ifconfig eth0 192.168.1.188
(5)查看、发送电子邮件:mail
例:mail
mail admin 发送邮件
h 查看列表
d 3 删除第3个
(6)查看所有重启、用户登录时间:last
(7)查看所有用户最近登录时间:lastlog
-u 只查看某个用户uid登录信息
例:lastlog -u 0
(8)显示数据包到主机的路径,跟踪路由:traceroute
例:traceroute www.baidu.com
(9)显示网络相关信息:netstat
-t TCP协议
-u UDP协议
-l 监听
-r 路由
-n 显示IP地址和端口号
-p 显示建立相关链接的程序名
例:netstat -tlnp 查看本机监听的端口
netstat -an 查看本机所有网路连接
netstat -rn 查看本机路由表
## 8、文件系统管理
(1)文件系统查看命令:df 选项
-a 显示所有文件系统信息,包括特殊文件系统,如/proc /sysfs
-h 使用习惯单位显示容量,如KB,MB或GB
-T 显示文件系统类型
-m 以MB为单位显示容量
-k 以KB为单位显示容量。默认就是KB
(2)统计目录或文件大小:du 选项
-a 显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
-h 使用习惯单位显示磁盘占用量,如KB,MB或GB等
-s 统计总占用量,而不列出子目录和子文件的占用量
(3)文件系统修复命令:fsck [选项] 分区设备文件名
-a 不用显示用户提示,自动修复文件系统
-y 自动修复。和-a作用一致,不过有些文件系统只支持-y
(4)显示磁盘状态命令:dump2fs 分区设备文件名
(5)挂载:mount [-l]
-l 查询系统中已经挂载的设备,-l会显示卷标的名称
-a 依据配置文件 /etc/fstab的内容,自动挂载
-t 文件系统:加入文件系统来指定挂载的类型,可以ext3、ext4、iso9660等文件系统
-L 卷标名:挂载指定的卷标分区,而不是安装设备文件名挂载
-o 特殊选项:可以指定挂载的额外选项
例:mount /dev/sr0 /mnt/cd
(6)卸载:umount
例:mount /dev/sr0
(7)挂载U盘
查看U盘设备文件名:fdisk -l
mount -t vfat /dev/sdb1 /mnt/usb/
注:linux默认不支持ntfs。fat32 为 vfat
## 9、系统管理
(1)进程管理
1.判断服务器健康状态
2.查看进程
a.查看系统中所有进程:ps
例:ps aux(使用BSD操作系统命令格式)
a 显示所有前台进程
x 显示所有后台进程
u 显示哪个用户产生
ps -le(使用linux标准命令格式)
-l 显示更加详细的信息
-e 显示所有进程
结果说明
VSZ :占用虚拟内存大小KB
RSS :占用实际物理内存大小KB
TTY :进程登录终端(?表示内核直接产生,1-7代表本地控制台终端,pts/0-255虚拟终端)
STAT :状态。R运行,S睡眠,T停止,s包含子进程,+位于后台
START:启动时间
TIME :占用cpu时间
COMMAND:产生此进程的命令
b.查看系统健康状态:top
-d 每隔几秒更新,默认3秒
交互过程中使用:
?/h :显示交互模式的帮助
P :以cpu使用率排序
M :以内存使用率排序
N :以pid排序
q :退出top
结果说明
top -
18:31:55 系统当前时间
up 1 day,18:28, 系统的总运行时间
1 user, 当前登录了1个用户
load average: 0.00, 0.00, 0.00 系统在前5,10,15分钟的平均负载,大于1则超载
Tasks: 进程数
83 total, 总
1 running, 正在运行
82 sleeping, 睡眠
0 stopped, 正在停止
0 zombie 僵尸
Cpu(s): 占用的cup百分比
0.0%us, 用户模式
0.3%sy, 系统模式
0.0%ni, 改变过优先级的用户进程
99.3%id, 空闲(小于20%则需硬件升级)
0.0%wa, 等待输入输出
0.0%hi, 硬中断请求服务
0.3%si, 软中断请求服务
0.0%st 虚拟时间,当有虚拟机时,虚拟cpu等待实际cpu的时间
Mem: 物理内存大小KB
1004760k total, 总量
867512k used, 已使用
137248k free, 空闲
62176k buffers 作为缓冲
Swap: 交换分区大小KB
2047996k total, 总量
5492k used, 已使用
2042504k free, 空闲
144888k cached 作为缓冲
c.查看所有进程:pstree
-p 查看详情
-u 显示进程用户
3.杀死进程
a.查看可用的进程信号:kill -l
例:kill -1 22222 重启 pid
kill -9 22222 强制终止
kill 22222 正常终止
b.杀死所有进程:killall 选项 进程名
-i 交互式,询问是否要杀死某个进程
-I 忽略进程名的大小写
例:killall -9 mysqld
c.按照进程名终止进程:pkill 选项 进程名
-t 终端号:按照终端号踢出用户
例:
查看当前用户:w
踢出用户: pkill -9 -t tty1
(2)工作管理
1.把进程放入后台
a.后台运行 & :tar -zcf aa.tar.gz /aa &
b.后台暂停 ctrl+z :top ,在top执行过程中按ctrl+z
2.查看工作:jobs -l
-l 显示pid
注:+代表最近一个放入后台,也是工作恢复时默认恢复的工作。-代表倒数第二个。[n]代表工作号
3.将后台暂停的工作恢复到前台:fg %工作号
注:%可以省略
4.将后台暂停的工作恢复到后台运行:bg %工作号
(3)系统资源查看
1.监控系统资源:vmstat [刷新延时 刷新次数]
例:vmstat 1 3
2.显示开机时内核监测信息(查看硬件信息):dmesg
例:dmesg | grep CPU
3.查看内存使用状态:free [-b|k|m|g]
-b 以字节为单位
-k 以kb为单位(默认)
-m 以mb为单位
-g 以gb为单位
4.查看CPU信息:cat /proc/cpuinfo
5.查看系统版本:cat /etc/redhat-release
6.显示系统启动时间和平均负载:uptime
7.查看系统与内核相关信息:uname [选项]
-a 查看系统所有相关信息
-r 查看内核版本
-s 查看内核名称
8.判断当前系统位数:file /bin/ls
9.判断当前系统发行版本:lsb_release -a
10.列出进程打开或使用的文件信息:lsof [选项]
-c 字符串:只列出字符串开头的
-u 用户名:只列出指定用户的
-p pid:只列出指定pid的
(4)系统定时任务
1.服务管理与访问控制:crond
开启:service crond start
自启:chkconfig crond on
2.用户的crontab设置:crontab [选项]
-e 编辑定时任务
-l 查询定时任务
-r 删除当前用户所有定时任务
格式:
分 时 日 月 周 执行任务
例:*/10 0-23 1,15 * 1 date >> a.log : 每月1号和15号和每周一的0点到23点每隔10分钟