目录
目录和文件操作
ls
查看当前目录下的文件信息,也可以使用 ll 命令进行查看。ll 是 ls -l 命令的别名
-a | 显示隐藏文件及特殊目录 |
-l | 以详细列表方式显示 |
-h | 以可读性较好的方式显示信息 |
-d | 显示目录本身信息,不显示目录下的文件或目录的信息 |
cd
切换目录命令,不跟目录名时默认切换到当前用户家目录
cd ./目录名 | 切换到当前目录下的某个目录里 |
cd ../ | 切换到上一级目录 |
cd / | 切换到根目录 |
cd ~ | 切换到当前用户的家目录 |
mkdir
创建目录命令。
mkdir + 选项 + 路径 + 目录名
mkdir xxx | 在当前目录创建xxx目录 |
mkdir /xxx/xxx/xxx | 在指定目录创建xxx目录 |
-p /xxx/xxx/xxx | 递归创建所有不存在的目录 |
-v | 显示创建过程 |
-m 777 目录名 | 创建目录的同时设置权限为777 |
touch
创建文件命令
touch + 选项 + 路径 + 文件名
-a | 只更新存取时间 |
-c | 不创建不存在的文件 |
-m | 只更新最后一次修改的时间 |
cp
复制文件或目录命令
cp + 选项 + 源文件 + 目标文件
-a | 复制文件或目录,保留链接、文件属性,并复制目录下的所有内容.等于 -dpR 三合一 |
-d | 如果源文件为软链接,则目标文件也为软链接 |
-p | 保留文件属性,包括所有权、访问时间、修改时间和权限 |
-r | 递归复制 |
-f | 强制覆盖已有的相同文件或目录,不询问 |
-n | 若存在同名文件则取消复制操作 |
-l | 直接创建一个指向源文件的硬链接 |
-s | 直接创建一个指向源文件的软链接 |
-v | 显示复制过程 |
mv
移动(剪切)文件或目录命令,移动到同一个目录下也有重命名效果
mv + 选项 + 源文件 + 目标文件
-f | 强制覆盖 |
-b | 覆盖之前备份一个目标文件 |
-v | 显示移动过程 |
rm
删除文件或目录命令
-r | 递归删除指定目录下的所有文件及目录 |
-f | 强制删除,不进行询问 |
-v | 显示删除过程 |
pwd
查看当前目录的绝对路径
查看文件内容相关
cat | 完整显示文件内容 |
more | 分页显示文件内容。 回车:显示下一行 空格键:翻页 b键:返回上一页 q:退出查看 |
head -n 10 | 显示文件前十行 |
tail -n 10 | 显示文件最后十行 |
tail -f filename | 动态查看文件内容,如果文件内容有新增会实时显示 |
sed -n ’5p‘ filename | 查询文件第5行的内容 |
重定向
>:覆盖重定向。将前面命令的输出覆盖输入到某个文件中。比如:ls 目录名 > test.txt
>>:追加重定向,将前面命令的输出追加到某个文件。
管道符 |
将前面命令的结果作为后面一个命令的输入
例:查找根目录下文件名包含a的文件或目录
ls / | grep '.*a.*'
链接
ln 文件名 | 创建硬连接 |
ln -s 文件名或目录名 | 创建软连接 |
软链接和硬链接的区别:
软连接可以创建目录的链接,硬连接不行;
软连接在源文件被删除后会失效,因为软链接指向的是源文件的文件名;
硬连接删除源文件没有影响,因为硬链接指向的是源文件存储的数据的位置;
查找文件和文本检索
查找文件(find)
find + 路径 + 选项 + 匹配表达式(通配符)
-a | 与符号,两个条件同时满足才能被找到 |
-o | 或符号,满足任意一个条件即可被找到 |
! | 非符号,不满足条件才能被找到 |
-name | 查找和表达式匹配的文件名 |
-iname | 查找和表达式匹配的文件名,不区分大小写 |
-type | 查找文件类型: f 普通文件 |
-links 2 | 查找硬链接数为2的文件 |
-user username | 查找文件所有者是username的文件 |
-group gname | 查找文件所有组是gname的文件 |
例:查找根目录下文件类型是普通文件并且文件名以f开头的文件和目录
find / -type f -name 'f*'
文本检索(grep)
grep + 选项 + 正则表达式 + 文件名
-i | 忽略大小写 |
-n | 显示行号 |
-r | 递归搜索当前目录 |
-E | 扩展表达式的范围, |
正则表达式
^
:匹配字符串开头
^abc:
表示abc是
一个字符串的开头
$
:匹配字符串结尾
abc$:
表示abc是
一个字符串的结尾
( )
:分组标记,内部只能使用|
操作符
(abc|def):
表示abc或def
.
:表示任何单个字符
[ ]
:字符集,对单个字符给出取值范围
[abc]:
表示a、b、c
,
[a‐z]:
表示 a 到 z 单个字符
[^abc]:
表示 非a或b或c 的单个字符
*
:匹配前一个字符0次或无限次
+
:匹配前一个字符1次或无限次
?
:匹配前一个字符0次或1次
|
:左右表达式任意一个abc|def
表示abc或def
{m}
:扩展前一个字符m次ab{2}c
表示abbc
{m,n}
:扩展前一个字符m至n次ab{1,2}c
表示abc、abbc
例:查找test.txt文件中包含c的内容并显示行号
grep -n '.*c.*' test.txt
grep命令通过管道符也可进行查询文件名(见管道符相关),但一般情况都使用find命令进行查找 。
压缩和解压
tar
将文件打包或压缩的命令
-z | 支持压缩或解压 .gz文,不能和 -j 同时使用 |
-j | 支持压缩或解压 .bzip2文件,不能和 -z 同时使用 |
-x | 解包,不能和 -c 同时使用 |
-c | 打包,不能和 -x 同时使用 |
-v | 显示过程 |
-f | 指定压缩包名称,必须放最后一位 |
-C | 指定解压路径 |
压缩
tar -zcvf 压缩包名.tar.gz 源文件路径
解压
tar -zxvf 压缩包名.tar.gz -C 指定路径
zip和unzip
将文件压缩成zip格式或将zip格式解压的命令
压缩
zip 包名.zip 源压缩路径
解压
unzip -d 指定路径 包名.zip
文件权限相关
chmod
更改文件权限的命令
-R | 递归更改目录下所有文件和文件夹的权限 |
-v | 显示更改的详细信息 |
权限范围:
r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
- :删除权限,用数字0表示----------------------------------------------
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组----------------------------------------------
有两种方法可以更改文件的权限,一种是数字法,一种是字母法。
数字法
给所有用户添加写权限
chmod 222 文件名
给文件所有者全部权限,文件所有组读写权限,其他用户读权限
chmod 764 文件名
字母法
给所有用户添加写权限
chmod a+w 文件名
给文件所有者全部权限,文件所有组读写权限,其他用户读权限
chmod u=rwx,g=rw,o=r 文件名
给其他用户去掉执行权限
chmod o-x 文件名
用户相关操作
添加用户
useradd 用户名
useradd -g 组名 用户名 #添加用户时指定组
修改用户密码
passwd 用户名
查看当前已登录用户
whoami
使用其他用户进行操作
su 用户名
su -l 用户名 #完全切换到目标用户的环境,包括环境变量、工作目录等。
sudo 命令 #以root用户的身份执行某个命令
系统相关操作
远程连接
ssh 用户名@IP地址
系统服务相关
systemctl start 服务名 或 service 服务名 start #开启服务
systemctl status 服务名 或 service 服务名 status #查看服务状态
systemctl restart 服务名 或 service 服务名 restart #重启服务
systemctl stop 服务名 或 service 服务名 stop #停止某项服务
防火墙相关
firewall-cmd #防火墙管理
--add-port=3306/tcp | 添加tcp协议的端口3306 |
--add-service | 添加服务 |
--remove-port | 移除已开放端口 |
--list-port | 查看端口列表 |
--list-service | 查看服务列表 |
--permanent | 永久生效前面指令,不带此参数所有修改重启后失效 |
--reload | 重新加载防火墙 |
--zone=public | 指定作用域为公开 |
--get-zones | 列出可用区域 |
查看系统内存使用情况
free -h #可读性较好的方式显示
动态查看系统资源使用情况
top
查看挂载磁盘剩余空间
df -h #可读性较好的方式显示
查看目录或文件占用磁盘大小
du 选项 目录/文件名
-s | 显示目录总占用大小 |
-h | 以可读性较好的方式显示 |
-a | 显示目录中所有文件的大小 |
--max-depth=1 * | 计算当前目录往下一级目录的所有文件大小 |
环境变量
export #查看环境变量
export 变量名=“变量值” #添加环境变量
查看内核版本
uname -a #显示所有系统信息
查看Linux版本
cat /etc/redhat-release
进程相关
ps
查看进程
ps -ef #查看所有进程
ps -ef | grep 'java' | awk '{print $2}' | xargs kill -9 #杀死和java有关的进程
kill
停止进程
kill -9 pid #强制停止pid对应的进程
查看端口使用情况
netstat
-a | 显示所有端口 |
-t | 仅显示tcp相关的端口 |
-u | 仅显示udp相关的端口 |
-n | 将所有端口号以数字形式显示 |
-r | 显示路由表 |
-c | 每隔一段时间执行一次netstat命令,持续监听 |
-p | 列出与链接相关程序名和进程的PID |
查看网络连接状态
ifconfig #查看网卡信息及网络连接信息(ip地址、网关等)
ifconfig ens33 on #启用ens33网卡
ifconfig ens33 down #禁用ens33网卡
ping命令
测试网络联通性
ping www.baidu.com #测试设备是否连接互联网
关机和重启
关机
shutdown 或 poweroff
shutdown -h 指定时间 | 定时关机 |
shutdown -k 时间 ‘信息’ | 定时关机,并向所有在线用户发送信息 |
shutdown -c | 取消关机计划 |
重启
reboot