Linux常用命令手册,应付Linux面试题足够用!

今天总结下常用的Linux命令,面试中经常会问到其中一些常用的命令,最好自己去尝试在Linux系统中敲一下加深印象。

vim编辑器的使用

一般模式

语法 功能描述
yy 复制光标当前一行
y数字y 复制一段(从第几行到第几行)
p 箭头移动到目的行粘贴
u 撤销上一步
dd 删除光标当前行
d数字d 删除光标(含)后多少行
x 删除一个字母,相当于del,向后删
X 删除一个字母,相当于Backspace,向前删
yw 复制一个词
dw 删除一个词
^ 移动到行头
$ 移动到行尾
gg或者1+G 移动到页头
G 移动到页尾
数字+G(先输入数字,在按G) 移动到目标行

编辑模式

按键 功能
i 当前光标前
a 当前光标后
o 当前光标行的下一行
I 光标所在行最前
A 光标所在行最后
O 当前光标行的上一行

命令模式

命令 功能
:w 保存
:q 退出
:! 强制执行
: %s/旧字符/新字符 批量替换
/ 要查找的词 n 查找下一个,N 往上查找
? 要查找的词 n是查找上一个,N是往下查找
:set nu 显示行号
:set nonu 关闭行号
ZZ(shift+zz) :nohl 没有修改文件直接退出,如果修改了文件保存后退 去除高亮显示

文件目录类

man         # 获得命令帮助信息
help        # 获得shell内置命令的帮助信息
pwd         # 显示当前工作目录的绝对路径
ls          # 列出目录内容
ls -a       # 列出全部文件,包括隐藏文件
ls -l       # 列出全部文件,包括文件属性和权限等
cd          # 来切换目录
cd ~/cd     # 回到自己的家目录
cd -        # 回到上一次所在目录
cd ..       # 回到当前目录的上一级目录
cd -P       # 加软链接名跳到实际物理路径,而非软链接(快捷方式)路径
mkdir       # 创建一个新的目录
mkdir -p    # 创建多层目录
rmdir       # 加要删除的空目录来删除一个空的目录
touch       # 加文件名来创建空文件
cp          # 加源文件和目标文件来复制文件或目录
cp -r       # 加源文件和目标文件来递归复制整个文件夹
rm          # 删除指定的文件
rm -f       # 删除指定的文件而不提示确认
rm -rf      # 递归删除目录中的所有内容,强制执行不提示确认(少用)
rm -rfv     # 递归删除目录中的所有内容,强制执行不提示确认同时显示执行过程
mv          # 重命名或移动文件
cat         # 查看文件内容,从第一行开始显示,适合查看小文件
cat -n      # 查看文件内容同时显示所有的行号,包括空行
more        # 分屏查看文件内容。空格向下翻一页,回车向下翻一行,Ctrl+F向下滚一屏,Ctrl+B返回上一屏,=输出当前行号,:f输出文件名和当前行号,q离开more不再显示
less        # 分屏显示文件内容,根据显示需要加载内容,适合查看大型文件。空格向下翻一页,pgup向下翻一页,pgdn向上翻一页,/字串向下搜寻字串n向下找N向上找,?字串向上搜寻字串n向上找N向下找,q离开
echo        # 输出内容到控制台
echo -e     # 输出内容到控制台,支持反斜线字符转换\n\t,输出内容中有`\\`为输出\本身
head        # 查看文件头部内容,默认显示头10行内容
head -n     # 查看文件头数行内容
tail        # 查看文件尾部内容,默认显示后10行内容
tail -n     # 查看文件尾部数行内容
tail -f     # 实时追踪该文档的所有更新
ll>文件名    # 列表的内容写入(覆盖写入)文件中
ll>>文件名   # 列表的内容追加到文件的末尾
cat 文件名1>文件名2 # 将文件1的内容覆盖到文件2,cat可以用less或more替换
echo "内容" >>文件名 # 采用echo将内容追加到文件中
ln -s 原文件或目录 软链接名 # 给原文件创建一个软链接(若软链接和原文件不在同一目录下,则写原文件时不能直接写文件名,应该写路径加文件名)
history     # 查看已经执行过的历史命令

文件权限类

chmod {u/g/o/a}{+/-/=}{r/w/x} 文件或目录 # 变更权限的语法
chmod {mode=421} 文件或目录              # 变更权限的具体例子
chown 最终用户 文件                      # 修改文件的所有者
chown -R 最终用户:最终用户组 文件或目录   # 递归改变文件所有者和所有组
chgrp 最终用户组 文件或目录               # 改变文件或目录的所属组

第一列第一个字段是文件的类型,后面9个字符是模式,其中分为三组,每一组三个字段。第一组为所属用户权限,第二组为所属组的权限,第三组为其他用户所属权限。其中r(read)代表可读,w(write)代表可写,e(execute)代表可执行。

例如:-rw-r-r--
表示为普通文件,对于所属用户为可读可写不能执行,对于所属组仅仅可读,对于其他用户仅为可读。

进程线程类

ps -aux | grep XXX  # 查看系统中所有进程
ps -ef | grep XXX   # 可以查看子父进程之间的关系
kill -9 进程号       # 通过进程号杀死进程
killall 进程名称     # 通过进程名称杀死进程
pstree -p           # 显示进程的PID
pstree -u           # 显示进程的所属用户
top -d 数           # 查看系统健康状态,每隔数秒更新
top -i              # 使top不显示任何闲置或僵死进程
top -p              # 通过指定进程ID来监控某个进程的状态,P:按CPU使用率排序。M:按内存使用率排序。N:按PID排序
netstat -anp | grep 指定的进程号 # 查看指定进程号的网络信息
netstat -nlp | grep 指定的端口号 # 查看指定端口号的占用情况
# 系统定时任务
restart crond       # 重启crond服务
crontab -e          # 编辑crontab定时任务

rpm软件包管理器

rpm -qa                # 查询所安装的所有rpm软件包(软件包过多可采取过滤))
rpm -e RPM软件包       # 卸载软件包
rpm -e --nodeps 软件包 # 卸载软件时不检查依赖,但使用该软件包的软件之后可能不能正常工作
rpm -ivh RPM包全名     # 安装软件包

yum

yum是软件包管理器,能从指定的服务器自动下载RPM包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

yum -y install 软件包全名 # 安装rpm软件包并对所有提问自动选择yes
yum update 软件包         # 更新软件包
yum check-update 软件包   # 检查是否有可用的更新软件包
yum remove 软件包         # 删除指定的软件包

用户管理命令

useradd               # 添加新用户
useradd -g 组名 用户名 # 添加新用户到某个组
passwd 用户名          # 设置用户密码
id 用户名              # 查看用户是否存在
cat /etc/passwd        # 查看创建了哪些用户
su 用户名               # 切换用户,只能获得用户的执行权限,不能获得环境变量
su - 用户名             # 切换到用户并获得该用户的环境变量及执行权限
userdel                # 删除用户但保存用户主目录
userdel -r 用户名      # 删除用户的同时删除与用户相关的所有文件
whoami                 # 显示当前用户名
who am i                # 显示登录用户的用户名
# 设置普通用户具有root权限
①修改配置文件/etc/sudoers,在root下面添加一行"用户名 ALL=(ALL)  ALL"
②用修改过的用户名登录,使用sudo即可获得root权限
usermod -g 用户组 用户名  # 修改用户

用户组管理命令

groupadd                 # 新增组
groupdel                 # 删除组
groupmod -n 新组名 老组名 # 修改组
cat /etc/group           # 查看创建了哪些组

搜索查找类

find 搜索范围 -name 指定的文件名 # 根据名称查找搜索范围下指定格式的文件
find 搜索范围 -user 用户名       # 根据用户名查找搜索范围下用户名为指定用户名的文件
find 搜索范围 -size +n   # 根据文件大小查找搜索范围下文件大小大于n的文件(+n:大于,-n:小于,n:等于)
ls | grep -n 原文件      # 查找某文件在第几行。用ls查找看的时候也要用ls,即两个要匹配否则行号会出错
grep                     # 过滤查找
grep -n 查找内容 原文件   # |管道符表示将前一个处理的结果输出给后面处理
which 命令               # 查找命令在哪个目录下

压缩解压类

gzip 文件 # 压缩文件只能将文件压缩为*.gz文件。(只能压缩文件不能压缩目录,且不保留原来的文件)
gunzip 文件.gz               # 解压缩文件
zip XXX.zip 将要压缩的内容    # 压缩文件并命名为XXX.zip
zip -r XXX.zip 将要压缩的内容 # 压缩目录并命名为XXX.zip(若压缩目录时不用-r则目录被当成文件压缩,目录中的文件将丢失)
unzip 待解压文件       # 在本目录解压文件。(zip可以压缩目录,保留原来的文件)
unzip 待解压文件 -d 指定目录   # 解压文件到指定目录
tar -zcvf XXX.tar.gz 将要打包进去的内容 # 打包目录或多个文件为XXX.tar.gz,压缩后文件格式为.tar.gz
tar -zxvf 解压的内容           # 解压内容到当前目录
tar -zxvf 解压的内容 -C 指定目录 # 解压内容到指定目录。(tar打包和解压后原文件或原目录还存在)

时间日期类

date                      # 显示当前时间
date +%Y                  # 显示当前年份
date +%m                  # 显示当前月份
date +%d                  # 显示当前是哪一天
date "+%Y-%m-%d %H:%M:%S" # 显示年月日时分秒
date -d '1 days ago'      # 显示前一天
date -d '-1 days ago'     # 显示明天
date -s 字符串时间         # 设置系统当前时间
cal                       # 显示本月日历
cal 某年                   # 显示这一年的日历

磁盘分区类

df                    # 列出文件系统的整体磁盘使用量,检查磁盘空间占用情况
df -h                 # 以较易阅读的格式显示磁盘使用量和占用情况
fdisk -l              # 显示所有磁盘的分区列表
mount/umount 挂载/卸载 # 很少用

由于时间仓促和个人精力有限,难免会有疏漏和不当的地方,望多多谅解。

posted @ 2023-03-09 13:15  码农高飞  阅读(1)  评论(0编辑  收藏  举报