Linux常用命令
P1.基本操作
C1.开关机
S1.关机
- shutdown
- shutdown -h now
- shutdown -h 1 => 一分钟后关机
- shutdown -r now => 立即重启
- halt
S2.重启
- reboot
C2.同步数据
- syn
- 把内存的数据同步到磁盘
- 在关机前应该习惯性同步一下
C3.用户级别
- init [0/1/2/3/5/6] => 切换
C4.帮助指令
S1.获得帮助信息
- man 指令
S2.获得shell内置命令的帮助信息
- help 指令
C5.查看历史
-
history
- 显示所有已经执行过的历史指令
-
history 10
- 显示最近执行过的10条指令
-
!160
- 执行历史编号为160的指令
P2.目录操作
C1.切换目录
- cd 路径
- change directory
- 绝对路径 or 相对路径
- cd ~ => 回到家目录
- cd .. => 回到上一级目录
C2.创建
S1.创建目录
- mkdir [选项] 要创建的目录
- [选项]
- -p => 创建多级目录
- make directory
- [选项]
S2.创建空文件
- touch 文件名1 [文件名2]
C3.拷贝
-
cp [选项] 源文件 目标文件
-
[选项]
- -r => 递归复制整个文件夹
-
[root@hadoop1 home]# ls -l 总用量 16 drwxr-xr-x. 2 root root 4096 11月 26 15:16 wudang drwx------. 4 zhangsanfeng 502 4096 11月 26 09:35 xh drwx------. 4 xiaoming xiaoming 4096 11月 26 09:41 xm drwx------. 4 zhangsanfeng wudang 4096 11月 26 10:20 zhangsanfeng -rw-r--r--. 1 root root 0 11月 26 15:17 zhangwuji.txt [root@hadoop1 home]# cp zhangwuji.txt wudang/zhangwuji.txt -
\cp 强制覆盖不提示
-
C4.删除
S1.删除文件
- rm [选项] 要删除的文件或目录
- [选项]
- -rf => 递归删除整个文件夹
- -f => 强制删除不提示
- [选项]
S2.删除目录
- rmdir 目录
- 只能删除空目录
- rm -rf 目录
- 删除非空目录
C5.查看
S1.查看当前所在目录的绝对路径
- pwd
S2.查看当前所在目录的文件和目录
- ls [选项] [目录或文件]
- [选项]:
- -a:显示当前目录所有的文件和目录,包括隐藏的
- -l:以列表的形式显示信息
- -al
- [选项]:
S3.查看文件内容(不能修改)
- cat [选项] 要查看的文件 [| more]
- [选项]
- -n => 显示行号
- cat只能浏览文件,而不能修改文件,为了浏览方便一般会带上
- 分页显示:
cat -n zhangsanfeng.txt | more
- 下一页 => 空格
- [选项]
S4.全屏按页显示文本文件的内容
一、把整个文件加载后显示
- more 要查看的文件
- 操作:
- 空格键 => 下一页
- Enter => 向下一行
- q => 离开more
- Ctrl+F => 向下滚动一屏
- Ctrl+B => 返回上一屏
- = => 输出当前行号
- :f => 输出文件名和当前行号
- 操作:
二、根据显示需要加载内容
- less 要查看的文件
- 对于现实大型文件具有较高的效率
- 操作:
- 空格键 => 向下翻动一页
- Enter键 => 一行
- [pagedown] => 向下翻动一页
- [pageup] => 向上翻动一页
- /字串 => 向下搜寻[字串]
- n => 向下查找
- N => 向上查找
- ?字串 =? 向上搜寻[字串]
- n => 向下查找
- N => 向上查找
- q => 离开more
S2.查看开头
- head [选项] 文件名
- 查看开头10行内容
- [选项]
- -n5
- -n 5 => 查看开头5行内容
S3.查看结尾
- tail [选项] 文件名
- 查看结尾10行内容
- [选项]
- -n5
- -n 5 => 查看结尾5行内容
- -f => 实时监控文件的更新内容
- ctrl+C即可退出tail -f
C6.移动文件与目录或重命名
S1.重命名
- mv 旧文件的名称 新文件的名称
mv zhangwuji.txt zhangsanfeng.txt
S2.移动
- mv 文件的名称 /temp/movefile/targetFolder
mv chengyouliang.txt pantu/
C7.输出重定向和追加
S1.输出重定向(覆盖写)
- 指令 > 文件名
- 将原来文件的内容覆盖
- 把指令的查询结果覆盖写到文件中
- 如果这个文件不存在,就创建这个文件
- 如:
ls -l > log.txt
cal zhangsanfeng.txt > log.txt
S2.追加
- 指令 >> 文件名
- 将指令的查询内容追加到原来文件内容后
- 如:
ls -l >> log.txt
C8.软链接
S1.创建软链接
- ln -s [原文件或目录] [软链接名]
ln -s /root linkToRoot
S2.访问软链接
-
cd linkToRoot/
- 例:
cd linkToRoot/
- 例:
S3.删除软连接
rm -rf linkToRoot
- 结尾不要带斜杠
C9.输出内容到控制台
- echo [选项] [输出内容]
# echo $PATH
=> 输出环境变量echo "hello world"
=> 输出内容
P3.时间日期
C1.日历
- cal [选项]
- cal => 当前月日历
- cal 2020
C2.日期
S1.查看
- date => 显示当前时间
- date +%Y => 显示当前年
- date +%m => 显示当前月
- date +%d => 显示当前日
- date "+%Y-%m-%d %H:%M:%S"
S2.设置
date -s "2020-1-1 11:11:11"
P4.搜索查找
C1.find
- find 搜索范围(目录) 选项
- 从指定目录开始,向下递归地遍历其各个子目录。将满足条件呃文件或者目录显示在终端
- 选项:
- -name 文件名(可用通配符) => 查找指定名字的文件
find /home/ -name wuchulikafeiguan.txt
- -user 用户名 => 查找指定用户所拥有的文件
- -size 文件大小 => 查找指定大小的文件
- +20M => 大于20M
- -20M => 小于20M
- 20M ==> 等于20M
- -name 文件名(可用通配符) => 查找指定名字的文件
C2.grep
- grep [选项] 查找内容 原文件
- 查找文件内部
- [选项]
- -n => 显示匹配行及行号
- -i => 忽略字母大小写
grep -ni Wu /home/shaolin/log.txt
cat log.txt | grep -n 23
C3.locate
-
locate 文件名
-
快速定位文件路径
- 利用事先建立的系统中所有文件名称及路径的locate数据库
- 所以要实现使用updatedb指令创建locate数据库
-
-bash-4.1# updatedb -bash-4.1# locate log.txt /home/shaolin/log.txt
-
P5.压缩和解压缩
C1.gz格式
S1.压缩
- gzip 文件
- 压缩后,不会保留原来的文件
S2.解压缩
- gunzip 文件.gz
- 解压缩后,不会保留压缩文件
C2.zip格式
S1.压缩
- zip [选项] xxx.zip
- 压缩到当前所在目录下
- [选项]
- -r => 递归压缩,即压缩这个目录
zip -r mypackage.zip /home/*
S2.解压
- unzip [选项] xxx.zip
- [选项]
- -d 目录 => 指定解压后放在哪
unzip -d /opt/temp/ /home/mypackage.zip
- [选项]
C3.tar.gz
S1.压缩/解压
- tar [选项] xxx.tar.gzs
- [选项]
- -c => 产出.tar打包文件
- -x => 解包.tar文件
- -v => 显示详细信息
- -f => 指定压缩后的文件名
- -z => 打包的同时压缩
- 压缩:
tar -zcvf a.tar.gz hello.txt zh angsanfeng.txt
tar -zcvf home.tar.gz /home/*
- 解压:
tar -zxvf a.tar.gz
tar -zxvf a.tar.gz -C /home/
- [选项]
P6.用户、组管理和权限管理
C1.用户管理
S1.添加用户
- useradd [选项] 用户名
- 创建用户成功后,会自动创建和用户同名的家目录
- 若是没有创建组,则会创建一个和
用户名
同名的组,然后把该用户放进去
- useradd -d 家目录路径 用户名
user -d /home/nihao haha
- useradd -g 组名 用户名
S2.给用户指定密码
- passwd 用户名
S3.删除用户
- userdel 用户名 => 删除用户,但是保留家目录
- userdel -r 用户名 => 删除用户及其家目录
- 一般要尽量保留家目录
S4.查询用户信息
- id 用户名
- 若是用户不存在,则会返回“无此用户”
S5.切换用户
-
su - 用户名
- 切换到低权限用户不用输密码
- 切换到高权限用户,后续需要输入密码
-
exit => 回到原来的用户
S6.知道自己当前是哪个用户
- whoami
- who am i
C2.用户组管理
S1.增加组
- groupadd 组名
S2.删除组
- groupdel 组名
S3.切换组
- usermod -g 用户组 用户名
- usermod -d 目录名 用户名 => 改变用户登录的初始目录
C3.权限管理
S1.修改权限
- chmod
- 修改文件或者目录的权限
一、+ - =变更权限
- u 所有者
- g 所有组
- o 其它人
- a 所有人(u、g、o的总和)
- 例:
chmod u=rwx,g=rx,o=x 文件目录名
- 赋予权限
chmod o+w 文件目录名
- 增加权限
chmod a-x 文件目录名
- 减少权限
二、通过数字变更权限
-
r 4
-
w 2
-
x 1
-
例:
chmod 751 文件目录名
C4.文件操作
S1.查看文件的所有者
- ls -ahl
S2.修改文件所有者
- chown [选项] 用户名 文件名
chown zhangsanfeng ok.txt
- [选项]
- -R 级联修改
S3.修改文件所在组
- chgrp [选项] 组名 文件名
chgrp wudang ok.txt
- [选项]
- -R 级联修改
S4.修改文件所有者和所在组
- chown [选项] newowner:newgroup file
- [选项]
- -R 级联修改
- [选项]
P7.Crond任务调度
-
crontab [选项]
- [选项]
- -e 编辑crontab定时任务
- -l 查询crontab任务
- -r 删除当前用户所有的crontab任务
- [选项]
-
service crond restart => 重启任务调度
-
五个占位符的说明
-
-
特殊符号的说明
-
- 例:
-
-
-
例:
-
- 写一个shell文件/home/mytask1.sh
-
date >> /home/mydate
-
crontab -e
- 添加:
*/1 * * * * /home/mytask1.sh
-
-
重启任务调度
- service crond restart
P8.Linux磁盘分区、挂载
C1.查看所有设备挂载情况
- lsblk [选项]
- [选项]
- -f
- [选项]
C2.增加硬盘
-
给虚拟机添加硬盘(使用vmware)
-
分区:
fdisk /dev/sdb
- m => n => p => 1 => 1 => w
-
格式化:
mkfs -t ext4 /dev/sdb1
-
挂载:
-
先创建一个
/home/newdisk
-
临时挂载:mount 设备名称 挂载目录
-
mount /dev/sdb1 /home/newdisk
-
开机重启,挂载关系就没了
-
-
设置成自动挂载(永久挂载),重启系统后,仍然可以挂载到/home/newdisk
- 编辑:
/etc/fstab
mount -a
- 编辑:
-
C3.断开挂载
- unmount 设备名称或挂载目录
umount /dev/sdb1
C4.磁盘情况查询
S1.查询系统整体磁盘使用情况
- df -h
- 转换了单位
- df -l
- 以KB为单位
- df -lh
S2.查询指定目录的磁盘占用情况
-
du [选项] 目录
-
[选项]
- -s 指定目录占用大小汇总
- -h 带计量单位
- -a 含文件
- --max-depth=1 子目录深度
- -c 列出明细的同时,增加汇总值
-
例子:
-
-bash-4.1# du -ach --max-depth=1 /opt/ 163M /opt/vmware-tools-distrib 54M /opt/VMwareTools-10.3.22-15902021.tar.gz 4.0K /opt/rh 152K /opt/temp 217M /opt/ 217M 总用量
-
-
S3.工作实用指令
- 统计/home文件夹下文件个数
ls -l /home | grep "^-" | wc -l
- 统计/home文件夹下目录个数
ls -l . | grep "^d" | wc -l
- 统计/home文件夹下文件个数,包括子文件夹里的
ls -lR . | grep "^-" | wc -l
- 统计/home文件夹下目录个数,包括子文件夹里的
ls -lR . | grep "^d" | wc -l
- 以树状显示目录结构
- 安装tree指令:
yum install tree
tree
tree /home/
- 安装tree指令:
P9.网络配置
C1.方式一:自动配置
C2.方式二:指定固定的ip
-
编辑:
vi /etc/sysconfig/network-scripts/ifcfg-eh0
- eth0网卡的配置文件
-
-
结束后重启网卡:
service network restart
P10.进程管理
C1.查看当前系统中正在执行的进程
- ps [选项]
-
[选项]
- -a 所有进程信息
- -u 以用户的格式显示进程信息
- -x 显示后台进程运行的参数
- -e 显示所有进程
- -f 全格式
-
ps -aux | grep 进程名
-
ps -ef | grep 进程名
=> 查看父进程
-
C2.终止进程
- kill [选项] 进程号
- [选项]
- -9 强迫进程立即停止
- [选项]
- killall 进程名称
sshd => 远程登录服务
C3.查看进程树
- pstree [选项]
- [选项]
- -p 显示进程的PID
- -u 显示进程的所属用户
- [选项]
C4.服务管理
S1.操作
- CentOS7.0之前:
- service 服务名 [start|stop|restart|reload|status]
- CentOS7.0之后:
- servicectl 服务名 [start|stop|restart|reload|status]
dos下,telnet ip地址 端口 => 检查linux的某个端口是否在监听,并且可以访问
ps.先要打开telnet服务
S2.查看服务名
- 方式1:/etc/init.d/服务名
ls -l /etc/init.d/
- 方式2:setup=>系统服务
S3.运行级别
-
vi /etc/inittab
=> 修改默认的运行级别 -
chkconfig => 给每个服务的各个运行级别设置自启动/关闭
- chkconfig --list | grep xxx
- chkconfig 服务名 --list
- chkconfig [--level 5] 服务名 on/off => 修改某个服务在某个级别下是否自启动
S4.进程监控
一、动态监控进程
- top [选项]
- -d 秒数 指定top指令几秒更新,默认是3秒
- -i 使top不显示任何闲置或僵死进程
- -p 通过指定监控进程ID来仅仅显示某个进程的状态
二、监控网络状态
- netstat [选项]
- [选项]
- -an 按一定顺序排列输出
- -p 显示那个进程在调用
netstat -anp
=> 查看所有的网络服务
- [选项]
P11.软件包的管理
C1.RPM
S1.查询
- rpm -qa => 查询所安装的所有rpm软件包
- rpm -qa | more
- rpm -qa | grep 软件包名 => 查询软件包是否安装
- rpm -q 软件包名 => 查询软件包是否安装
rpm -q eggdbus-0.6-3.el6.x86_64
- rpm -qi 软件包名 => 查询软件包信息
- rpm -ql 软件包名 => 查询软件包中的文件,软件包安装的目录
rpm -ql eggdbus-0.6-3.el6.x86_64
- rpm -qf 文件全路径名 => 查询文件所属的软件包
rpm -qf /usr/share/doc/eggdbus-0.6
S2.卸载
- rpm -e 包名称
- rpm -e --nodeps 包名称 => 不管依赖强行删
S3.安装
- rpm -ivh 包名称
C2.YUM
S1.查询
- yum list | grep 软件名
S2.下载并安装
- yum install 软件名
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)