前端学习运维,更加倾向于在工作中的实用性,今天汇总了在工作中经常使用的 Linux 命令
一、Linux 常见目录
目录 | 解释 |
---|---|
/ | 根目录 |
~ | 当前用户家目录 |
/boot | 启动目录,启动相关文件 |
/dev | 设备文件 |
/etc | 配置文件 |
/lib | 系统库保存目录 |
/mnt | 移动设备挂载目录 |
/media | 光盘挂载目录 |
/misc | 磁带机挂载目录 |
/root | 超级用户的家目录,可以操作 |
/home | 普通用户的家目录,可以操作 |
/tmp | 临时目录,可以操作 |
/var | 变量 |
/bin | 普通的基本命令,如ls ,chmod 等, 普通用户都可使用 |
/sbin | 基本的系统命令,如 shutdown ,reboot ,用于启动系统,修复系统,仅管理员才可运行 |
二、文件处理命令
2.1、mkdir
- 创建目录,
mkdir directory
-p
, 递归创建目录
shell
# 递归创建 b,c 目录
mkdir -p b/c
2.2、cd
- 切换所在目录,
change directory
目录 | 解释 |
---|---|
~ | 家目录 |
. | 当前目录 |
.. | 上级目录 |
2.3、pwd
- 显示当前目录
2.4、rmdir
- 删除空目录,
remove empty directory
rmdir [目录名]
2.5、rm
删除文件或者目录,
remove
rm [文件或者目录]
-r
删除目录-f
强制删除
rm -rf [文件或者目录]
, 递归强制删除所有目录
2.6、cp
复制命令,
copy
copy [源文件或者目录] [目标文件]
-r
复制目录,默认是复制文件-i
会在复制文件的时候给提示,如果复制的目标文件存在,会给你提示是否要覆盖
shellmkdir afolder mkdir bfolder cd afolder/ touch 1.txt cp 1.txt ~/bfolder/
2.7、mv
- 移动文件或者改名,
move
mv [源文件或者目录] [目标文件]
shell
# 重命名
mv 1.txt 2.txt
# 移动
mv 2.txt a/
2.8、ln
- 链接命令, 生成链接文件,
link
ln -s [源文件] [目标文件]
-s
创建软链接
- 修改任意一个文件,另一个都会改变
- 删除源文件,软链接不能使用
- 软链接源文件必须写绝对路径
三、文件搜索命令
3.1、locate
安装
yum -y install mlocate
特点
- 在后台数据库中按文件名搜索,速度比较快
- 数据保存在
/var/lib/mlocate/mlocate.db
后台数据库,默认每天更新一次 - 可以
updatedb
命令立刻更新数据库 - 只能搜索文件名
3.2、whereis
搜索命令所在路径以及帮助文档所在位置
whereis 命令名
-b
只查找可执行文件-m
只查找帮助文件
shell
# whereis cd
# cd: /usr/bin/cd /usr/share/man/man1/cd.1.gz
3.3、which
- 可以看到别名
which ls
shell
# which ls
# alias ls='ls --color=auto'
# /usr/bin/ls
3.4、find
文件搜索命令, find [搜索范围] [搜索条件]
3.4.1、按名称搜索
shell
# find / -name 11.txt
注意:避免大范围的搜索,会非常消耗系统资源
3.4.2、通配符
通配符 | 解释 |
---|---|
* | 匹配任意内容 |
? | 匹配任意一个字符 |
[] | 匹配中括号内任意一个字符 |
shell
# touch abc.txt
# find . -name "ab[cdef].txt"
3.4.3、-i
不区分大小写
shell
# find . -iname "Ab[cdef].txt"
3.4.4、按时间搜索
shell
# find . -mtime +5
参数 | 含义 |
---|---|
atime | 文件访问时间 |
ctime | 创建文件时间 |
mtime | 修改文件时间 |
参数 | 含义 |
---|---|
-5 | 5天前之内修改的文件 |
5 | 5天前当天修改的文件 |
+5 | 5天前之前修改的文件 |
3.4.5、按大小搜索
shell
# find . -size +0k
参数 | 含义 |
---|---|
-8k | 小于8K |
8k | 等于8K |
+8k | 大于8K |
+8M | 大于8M |
3.4.6、综合搜索
shell
# find /tmp -size +10k -a -size -20k
- 查找
/tmp
目录下,大于10KB并且小于20KB的文件 -a and
逻辑与,两个条件都满足-o or
逻辑或,两个条件满足一个就可以
3.5、grep
在文件当中匹配符合条件的字符串
-i
忽略大小写-v
排除指定字符串
shell
# a.txt
123
abc
XYZ
# grep b a.txt
abc
# grep -v b a.txt
123
XYZ
# grep -i x a.txt
XYZ
四、文件压缩与解压
4.1、zip
一种压缩格式, 支持压缩文件或目录
- 安装
yum install -y unzip zip
- 命令
功能 | 命令 |
---|---|
压缩文件 | zip 压缩后文件名.zip 源文件 |
压缩文件 | zip -r 压缩后文件名.zip 源文件 |
解压 | unzip 压缩后目录名.zip |
- 缺点
压缩效率低
4.2、gzip
gzip
为高压,可以把文件压缩得更小
- 命令
命令 | 示例 | 含义 |
---|---|---|
gzip 源文件 | gzip book.txt | 压缩为.gz格式,删除源文件 |
gzip -c 源文件 > 压缩文件 | gzip -c book.txt > book.txt.gz | 压缩为.gz格式,不会删除源文件 |
gzip -r 目录 | gzip -r book | 把目录下的每个层级的子文件都压缩,并删除原文件,当前目录无变化 |
gzip -d 压缩文件名 | gzip -d 1.txt.gz | 解压缩文件,不保留压缩包 |
gunzip 压缩文件 | gunzip 2.txt.gz | 解压缩文件,也不保留压缩包 |
- 缺点
不支持压缩目录
4.3、tar
tar
打包命令,只打包并不压缩
- 命令
-c
打包-v
显示过程-f
指定打包后的文件名-x
解开包
shell
# 打包
tar -cvf 打包文件名 源文件
# 解开包
tar -xvf 打包文件名
4.1、tar.gz
先打包为.tar
格式,再压缩为.gz
格式
命令 | 示例 | 含义 |
---|---|---|
tar -zcvf 压缩包名.tar.gz 源文件 | tar -zcvf book.tar.gz book | 先打包,再压缩 |
tar -zxvf 压缩包名.tar.gz | tar -zxvf book.tar.gz | 解压tar.gz压缩包 |
五、文件查看命令
5.1、cat
用于连接文件并打印到标准输出设备上
- 命令
shell
cat [-AbeEnstTuv] [--help] [--version] fileName
- 参数
-n
或--number
:从 1 开始对所有输出的行数进行编号
5.2、more
类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读
- 命令
shell
more fileName
- 指令
- 按空白键(
space
), 显示下一页 - 按b键(
back
), 显示上一页
- 按空白键(
5.3、head
- 命令
shell
head [参数] [文件名]
- 参数
-n<行数>
: 显示文件的头部前 n 行内容
5.4、tail
用于查看文件的内容
- 命令
shell
tail [参数] [文件名]
- 参数
-n<行数>
: 显示文件的尾部 n 行内容-f
: 循环读取,跟踪文件变化
六、登录信息
6.1、w
查看登录用户信息
输出Title | 含义 |
---|---|
USER | 登录的用户名 |
TTY | 登录的终端, tty1 本地终端; pts/0 远程终端 |
FROM | 登录的IP |
LOGIN | 登录时间 |
IDLE | 用户闲置时间 |
JCPU | 该终端所有进程占用的时间 |
PCPU | 当前进程所占用的时间 |
WHAT | 正在执行的命令 |
6.2、who
查看登录用户信息
输出Title | 含义 |
---|---|
USER | 登录的用户名 |
TTY | 登录的终端, tty1 本地终端; pts/0 远程终端 |
LOGIN | 登录时间(登录的IP) |
6.3、last
查看当前登录和过去登录的用户信息, 默认读取 /var/log/wtmp
文件
6.4、lastlog
查看所有用户的最后一次登录时间
七、用户组和用户
使用操作系统的人都是用户,用户组是具有相同系统权限的一组用户
7.1、配置文件
/etc/group
: 存储当前系统中所有用户组信息/etc/gshadow
: 存放当前系统中用户组的密码信息, 与etc/group
中的记录一一对应/etc/passwd
: 存储当前系统中所有用户的信息/etc/shadow
: 存放当前系统中所有用户的密码信息
7.2、命令操作
用户组
命令 | 示例 | 含义 |
---|---|---|
groupadd xxx | groupadd stu | 添加用户组 |
groupadd -g num xxx | groupadd -g 666 teacher | 添加用户组并指定编号 |
groupmod -n newX oldX | groupmod -n student stu | 用户组重命名 |
groupmod -g 999 xxx | groupadd -g 999 student | 修改用户组编号 |
groupdel xxx | groupdel student | 删除用户组 |
用户
命令 | 示例 | 含义 |
---|---|---|
useradd -g <group> <name> | useradd -g student Bob | 创建用户并指定用户组 |
useradd -d <path> <name> | useradd -d /home/Jack Jack | 创建用户并指定Home目录 |
passwd <name> | passwd Bob | root用户可以设置用户的密码 |
usermod -d <path> <name> | usermod -d /home/Jack2 Jack | 修改个人Home目录 |
usermod -g <group> <name> | usermod -g teacher Bob | 修改用户组 |
userdel <name> | userdel Bob | 删除用户 |
userdel -r <name> | userdel -r Bob | 删除用户并删除对应的Home目录 |
id <name> | id Bob | 显示用户的组信息 |