URL
type
status
date
slug
summary
tags
category
icon
password
Linux常用命令
vim常用操作
指令 | 功能 |
vim 文件名 | 用vim打开该文件 |
i I o O a A r R | 进入编辑模式 |
esc | 回退到一般模式 |
: | 进入命令行模式 |
:wq | 保存并退出 |
:q | 退出 |
:q! | 强制退出不保存 |
yy | 复制行 |
yy5 | 复制包括当前行向下五行 |
p | 粘贴 |
dd | 删除行 |
/关键词 | 查找该关键词, n 查找下一个 N 查找上一个 |
:set nu | 设置显示行号 |
:set nonu | 取消文件行号 |
G | 一般模式下定位到最末行 |
gg | 一般模式下定位到最首行 |
u | 一般模式下撤回 |
0或者Home | 定位到行首 |
'$'或者End | 定位到行末 |
Ctrl+f | 向下移动一页 |
Ctrl+b | 向上移动一页 |
n Enter | n为数字,光标向下移动n行 |
一.基础操作
指令 | 功能 |
shutdown -h now | 立马关机 |
shutdown -h 2 | 一分钟后关机 |
shutdown -r now | 立马重启计算机 |
halt | 关机 |
reboot | 重启 |
sync | 内存数据同步到磁盘 |
shutdown -h now | 立马关机 |
shutdown -h 2 | 一分钟后关机 |
clear | 清屏 |
ifconfig -a | 可以查看ip |
二.用户管理
指令 | 功能 |
su - 用户名 | 切换到指定用户 |
logout | 注销用户(级别3下才有效) |
useradd | 添加用户(同时新建一个同名的组加入) |
useradd -d 目录名 | 给新用户指定家目录 |
passwd 用户名 | 给指定用户改密码 |
userdel 用户名 | 删除指定用户(保留家目录) |
userdel -r 用户名 | 删除指定用户及其家目录 |
id 用户名 | 查询指定用户信息 |
whoami/who am i | 查看当前用户信息(后者信息详尽) |
groupadd 组名 | 新增一个用户组 |
groupdel 组名 | 删除指定组名 |
useradd -g 用户组 用户名 | 增加用户同时分组 |
usermod -g 用户组 用户名 | 修改用户组 |
小贴士:
/etc/shadow 口令配置文件
/etc/group 组信息文件
三.帮助指令
指令 | 功能 |
man 命令或配置文件 | 获得帮助信息(如:man ls) |
help 命令 | 获得shell内置命令的帮助信息 |
谷歌百度 | 方便易懂 |
四.文件管理指令
指令 | 功能 |
pwd | 显示当前工作目录的绝对路径 |
ls 目录 | 显示文件目录 |
ls -a 目录 | 显示所有的目录(包括隐藏的) |
ls -l 目录 | 以列表方式显示(信息详细) |
ls -al 目录 | 前两个指令组合 |
ls -lh 目录 | 加入h按照更适合人的阅读方式展示 |
cd 目录 | 切换到指定目录 |
cd~ / cd: | 切换到家目录 |
cd .. | 返回上一级 |
mkdir 目录名 | 创建目录 |
mkdir -p 目录名 | 创建多级目录(如:mkdir -p /home/animal/tiger) |
rmdir 目录名 | 只能删除空目录 |
touch 文件名(包括后缀) | 创建一个空文件 |
cp 源 指定目录 | 将指定文件复制到指定位置 |
cp -r 源 指定目录 | 递归的复制整个文件夹 |
\cp -r 源 指定目录 | 强制覆盖不提示 |
rm 文件或目录 | 移除指定文件或目录 |
rm -r 目录 | 递归的移除整个目录 |
rm -f 文件或目录 | 强制删除不提示 |
rm -rf 目录 | 强制删除整个文件夹不提示 |
mv 老文件名 新文件名 | 重命名 |
mv 源目录 目标目录 | 把指定目录移动到指定位置(剪切) |
cat 文件名 | 查看文件内容(只读) |
cat -n 文件名 | 查看文件内容带上行号 |
more 文件名 | 全屏幕查看文件内容 (一次性全部展示) |
less 文件名 | 分屏查看文件内容(动态展示需要部分,效率高) |
cat -n 文件名 \| more | 管道命令,先用cat打开再用more浏览 |
echo 环境变量 | 输出内容到控制台(如 echo $PATH) |
echo 文本 | 输出文本到控制台(如 echo “Hello”) |
head 文件名 | 查看文件前十行 |
head -n 5文件名 | 查看文件前五行 |
tail 文件名 | 查看文件后十行 |
tail -n 5 文件名 | 查看文件后五行 |
tail -f 文件名 | 追踪该文档的更新(Ctrl+c退出该模式) |
> | 重定向覆盖到新文件(如 ls -l > /文件.txt) |
>> | 追加到指定文件末尾(如 cat 文件1.txt >> 文件2.txt) |
ln -s 源文件或目录 软链接名 | 给源文件创建一软链接(快捷方式),可用rm删除 |
history | 查看执行过的历史命令 |
history 10 | 查看最近十条历史命令 |
!45 | 执行第45条历史命令 |
more和less操作详解
more操作 | 功能 |
空格 | 向下翻一页 |
Enter | 向下翻一行 |
= | 输出当前行号 |
:f | 输出文件名和当前行号 |
Ctrl+b | 返回上一屏 |
Ctrl+f | 向下滚动一屏 |
less操作 | 功能 |
空格 | 向下翻一页 |
Enter | 向下翻一行 |
/字符串 | 向下搜索字串,n向下查找,N向上查找 |
?字符串 | 向上搜索字串,n向下查找,N向上查找 |
PgUp | 返回上一屏 |
PgDn | 向下滚动一屏 |
五.时间日期类
指令 | 功能 |
date | 显示当前时间 |
date +%Y | 只显示年 |
date +%m | 只显示月 |
date +%d | 只显示日 |
date "+%Y-%m-%d %H:%M:%S" | 按指定格式显示日期 |
date -s 字符串时间 | 修改时间(如 date -s 2022/9/5 18:17:22) |
cal | 显示当月日历 |
cal 2020 | 显示2020年正年的日历 |
六.查找和检索
指令 | 功能 |
find 目录 -name 文件名 | 在指定目录下按文件名查找文件 |
find 目录 -size +220M | 按文件大小查找文件(+大于,-小于,不写等于) |
locate 文件名 | 根据数据库查找文件,先用 updatedb 更新数据库 |
which 指令 | 查找指令在哪个目录下 |
grep -选项 查找内容 源文件 | 过滤查找,-n显示行号,-i不分大小写 |
cat 文件名 | grep -n "目标内容" | 只显示带目标内容的行,和上一条效果一样 |
七.解压缩
指令 | 功能 |
gzip 文件名 | 压缩文件(不能压缩文件夹) |
gunzip 文件.gz | 解压.gz文件 |
zip -r xxx.zip 目标内容 | 可以递归压缩文件夹,也可压缩文件到指定zip文件 |
unzip -d 目标路径 zip文件名 | 解压指定zip文件到指定目录 |
tar用法
选项 | 功能 |
-c | 产生.tar打包文件 |
-v | 显示详情 |
-f | 指定压缩后文件名,后面空格紧跟参数 |
-z | 用zip程序压缩或者解压 |
-x | 解包展开.tar文件 |
-C | 设置目标路径 |
选项 | 功能 |
tar -zcvf xxx.tar.gz 要打包的内容 | 产生.tar打包文件 |
tar -zxvf xxx.tar.gz | 解包 |
tar -zxvf xxx.tar.gz -C 要解压到的目录 | 解压到指定的目录 |
八.权限和组管理
指令 | 功能 |
ls -ahl | 用人类列表的方式查看所有文件 |
chown 用户名 文件名 | 修改文件所有者 |
chown -R 用户名:组名 文件夹 | 修改文件夹包括里面所有内容的所有者和组 |
groupadd 组名 | 添加组 |
chgrp 组名 文件名 | 修改文件所在组 |
usermod -g 新组名 用户名 | 改变用户所在组 |
usermod -d 目录名 用户名 | 改变用户登录的初始目录 |
chmod u=rwx,g=rw,o=x 文件/目录名 | 修改文件或文件夹权限 |
九.定时任务调度
crond任务调度
指令 | 功能 |
crontab -e | 编辑crontab定时任务 |
crontab -l | 查询crontab任务 |
crontab -r | 删除当前用户的crontab任务 |
进入crontab编辑模式后,输入命令,格式为 * * * * * 命令
参数解释:
参数 | 功能 |
第一个* | 一小时当中的第几分 |
第二个* | 一天当中的第几小时 |
第三个* | 一个月当中的第几天 |
第四个* | 一年当中的第几月 |
第五个* | 一周当中的星期几 |
特殊符号:
- 表示任何时间 , | 连接不连续的时间
- 表示连续的时间范围 */n | 代表每隔多久运行一次
命令举例:
参数 | 功能 |
0 5,8,14 * * * | 每天的5,8,14点0分执行一次 |
*/10 4 * * * | 每天的凌晨四点,每十分钟运行一次 |
40 4 * * 1-5 | 每周一到周五凌晨四点四十执行一次 |
at 定时任务
指令 | 功能 |
ps -ef | grep atd | 查看at服务是否启动 |
at -选项 时间 | 输入后输入命令 |
Ctrl+d | 第一次停止编辑,第二次退出at |
atq | 查看作业列表 |
atrm 序号 | 删除指定作业 |
时间格式:
- hh:mm 小时:分钟
- midnight(深夜) noon(中午) teatime(下午四点左右)
- 4pm 下午四点 6am 上午六点
04:00 2020/9/19
04:00 2020.9.19
04:00 2020-9-19
- now + 时间 单位
now + 2days
现在起两天后
- today 和 tomorrow
十.磁盘管理
指令 | 功能 |
lsblk -f | 查看设备挂在情况 |
fdisk /dev/对应磁盘 | 为磁盘分区,n新增,d删除,p显示,w写入退出 |
mkfs -t ext4 /dev/对应分区 | 格式化分区 |
mount 设备名 目录名 | 将目录挂在到对应磁盘(临时,重启失效) |
df -h | 查询系统整体磁盘使用情况 |
du -h 目录名 | 查询指定目录磁盘占用情况,默认为当前目录 |
du -hac --max-depth=1 /opt | 查询该目录所有内容磁盘情况,带单位,有汇总,深度为1 |
du -s 目录名 | 显示磁盘总用量 |
ls -l \| grep "^-" \| wc -l 目录名 | 统计指定目录下文件的个数 |
ls -l \| grep "^d" \| wc -l 目录名 | 统计指定目录下目录的个数 |
ls -lR \| grep "^-" \| wc -l 目录名 | 同上,包括子文件夹 |
tree 目录名 | 树状展开目录(需先安装tree命令) |
十一.网络配置
指令 | 功能 |
ifconfig | 查看网络配置 |
ping 目的主机 | 测试主机之间的连通性 |
service network restart | 重启网络服务 |
hostname | 查看主机名 |
修改/etc/hosts | 设置映射 |
修改/etc/sysconfig/network-script/ifcfg-ens33 | 自定义ip地址,是否开机自启网络服务等 |
十二.进程管理
指令 | 功能 |
ps | 查看当前正在执行的进程状况 |
ps -aux | 所有进程,用户的格式,后台进程运行的参数 |
ps -ef | 以全格式显示当前所有进程 |
kill 进程号 | 通过进程号杀死进程 |
killall 进程名称 | 通过进程名称杀死进程包括子进程 |
killall -9 进程名 | -9强制杀死进程 |
pstree | 查看进程树 |
setup | 查看全部的服务名 |
chkconfig --list | 查看服务各个层级的自启动状态 |
chkconfig 服务名 --list | 查看指定服务各个层级的自启动状态 |
chkconfig --level3 服务名 off | 关闭该服务在3级别的自启动 |
chkconfig --level3 服务名 on | 开启该服务在3级别的自启动 |
chkconfig | 该指令能够管理的服务在/etc/init.d中 |
systemctl | 该指令管理的服务在/usr/lib/systemd/system |
service 服务名 start\|stop\|restart\|reload\|status | 开始|停止|重启|重载|查看状态 对该服务 其管理的服务可以在/etc/init.d中查看 |
systemctl get-default | 查看默认开机运行级别 |
systemctl set-default multi-user.target | 设置为开机进入运行级别3 |
systemctl set-default graphical.target | 设置为开机进入运行级别5 |
` | u显示用户,p显示pid systemctl
list-unit-files| 查看服务开机自启动状态 systemctl enable
服务名| 设置该服务开机自启 systemctl disable
服务名| 关闭该服务开机自启 systemctl is-enable
服务名| 查看该服务是否开机自启 firewall-cmd –permanent
–add-port=端口号/协议| 打开端口 firewall-cmd –permanent
–remove-port=端口号/协议| 关闭端口 firewall-cmd
reload| 重新载入 firewall-cmd
–query-port=端口号/协议| 查看端口是否有效 firewall-cmd
–query-port=端口号/协议| 查看端口是否有效 firewall-cmd
–query-port=端口号/协议| 查看端口是否有效 firewall-cmd
–query-port=端口号/协议| 查看端口是否有效 firewall-cmd
–query-port=端口号/协议| 查看端口是否有效 firewall-cmd
–query-port=端口号/协议` | 查看端口是否有效 |
动态监控进程
指令 | 功能 |
top | 展示正在运行的服务,定时刷新 |
top -d 秒数 | 设置刷新间隔(默认3秒) |
top -i | 不显示任何限制或僵死进程 |
top -p | 指定id监视指定进程情况 |
top模式下交互操作
指令 | 功能 |
P | 按cpu占用排序 |
M | 以内存占用排序 |
N | 以pid排序 |
q | 退出top |
u | 按下后输入用户名,查看指定用户的进程 |
k | 按下后输入pid,然后输入参数如9,杀死指定进程 |
监控网络状况
指令 | 功能 |
netstat | 查看系统网络状况 |
netstat -anp | an按一定顺序输出所有,p显示谁在调用 |
十三.rpm包管理和yum
指令 | 功能 |
rpm -qa | 查询已安装的所有rpm包 |
rpm -q 软件包名 | 查询该软件包是否安装 |
rpm -qi 软件包名 | 查询该软件包信息 |
rpm -qf 文件全路径名 | 查询文件所属的软件包 |
rpm -e rpm包名称(可部分) | 卸载rpm包 |
rpm -e --nodeps rpm包名称 | 强制卸载rpm包无视依赖关系 |
rpm -ivh rpm包全路径名称 | 安装rpm包,i安装,v提示,h进度条 |
yum list | yum服务器上的软件列表 |
yum install 软件名称 | 安装该软件 |