前言
本文意在记录平时在linux
系统中的常用命令,还有一些常用软件(比如:nginx、redis、mysql等)的常用命令。以提高自己平常开发效率,因为有的时候会突然忘记。😎
文件目录类
命令 | 功能 |
pwd | 显示当前工作目录的绝对路径 |
ls | 列出目录内容 |
ls -l | 列出全部文件,包括文件属性和权限等 |
cd | 回到根目录 |
cd .. | 回到当前目录的上一级目录 |
mkdir | 创建一个新的目录 |
mkdir -p | 创建多层目录 |
rmdir | 加要删除的空目录来删除一个空的目录 |
touch | 加文件名来创建空文件 |
cp | 加源文件和目标文件来复制文件或目录 |
cp -r | 加源文件和目标文件来递归复制整个文件夹 |
rm | 删除指定的文件 |
rm -i | 是否确认删除指定的文件, |
rm -f | 删除指定的文件而不提示确认 |
rm -rf | 递归删除目录中的所有内容,强制执行不提示确认(少用) |
rm -rfv | 递归删除目录中的所有内容,强制执行不提示确认同时显示执行过程 |
mv | 重命名或移动文件 |
echo | 输出内容到控制台 |
echo | 输出内容到控制台,支持反斜线字符转换\n\t,输出内容中有\\ 为输出\本身 |
echo "内容" >>文件名 | 采用echo将内容追加到文件中 |
ll>文件名 | 列表的内容写入(覆盖写入)文件中 |
ll>>文件名 | 列表的内容追加到文件的末尾 |
cat 文件名1>文件名2 | 将文件1的内容覆盖到文件2,cat可以用less或more替换 |
history | 查看已经执行过的历史命令 |
文件权限类
命令 | 功能 |
chmod 744 /usr/bin/chattr | 文件所有者可读可写可执行,其余身份只可读 |
chmod 777 /usr/bin/chattr | 给予文件或目录(可读可写可执行)最高权限 |
vim编辑器的使用
一般模式
命令 | 功能 |
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 | 关闭行号 |
进程线程类
命令 | 功能 |
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 -nplt | 查看所有端口 |
netstat -nplt | grep 6379 | 查看指定端口 |
系统定时任务
命令 | 功能 |
restart crond | 重启crond服务 |
crontab -e | 编辑crontab定时任务 |
yum
yum是软件包管理器,能从指定的服务器自动下载RPM包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
命令 | 功能 |
yum -y install 软件包全名 | 安装rpm软件包并对所有提问自动选择yes |
yum update 软件包 | 更新软件包 |
yum check-update 软件包 | 检查是否有可用的更新软件包 |
yum remove 软件包 | 删除指定的软件包 |
压缩解压类
命令 | 功能 |
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打包和解压后原文件或原目录还存在) |
搜索查找类
命令 | 功能 |
find 搜索范围 -name 指定的文件名 | 根据名称查找搜索范围下指定格式的文件 |
find 搜索范围 -user 用户名 | 根据用户名查找搜索范围下用户名为指定用户名的文件 |
find 搜索范围 -size +n | 根据文件大小查找搜索范围下文件大小大于n的文件(+n:大于,-n:小于,n:等于) |
ls | grep -n 原文件 | 查找某文件在第几行。用ls查找看的时候也要用ls,即两个要匹配否则行号会出错 |
grep | 过滤查找 |
grep -n 查找内容 原文件 | |
which 命令 | 查找命令在哪个目录下 |
jar包常用命令
命令 | 功能 |
nohup java -jar oauth2.jar >> oauth2.log 2>&1 & | 后台启动jar包并将日志内容输出到oauth2.long 日志中 |
ctrl + c | 挂起 |
netstat -nplt | 查看所有端口 |
netstat -nplt | grep 6379 | 查看指定端口 |
ps -ef |grep oauth2.jar | 查看进程名 |
kill -9 3977 | 杀死进程 |
redis常用命令
命令 | 功能 |
redis-server | 前台启动redis |
redis-server | 后台启动redis |
redis-server redis.conf & | 启动redis服务时,指定配置文件 |
redis-cli shutdown | 关闭Redis |
redis-cli info clients | 查看连接数 |
redis-cli config get timeout | 查看连接数超时时间 |
mysql常用命令
命令 | 功能 |
mysql -u root -p 密码 | 开启mysql客户端 |
use mysql | 使用库名为mysql 的数据库 |
SELECT User, Host FROM mysql.user; | 查询用户 |
update user set host = 'ip' where user = 'root' and host='ip'; | 修改root用户指定ip |
flush privileges; | 刷新权限 |
nginx常用命令
命令 | 功能 |
nginx -s reload | 重启nginx |
systemctl restart nginx | systemctl restart nginx |
防火墙相关命令
命令 | 功能 |
systemctl status firewalld | 查看防火墙状态 |
systemctl start firewalld | 开启防火墙 |
systemctl stop firewalld | 关闭防火墙 |
firewall-cmd --list-ports | 查看所有开启的端口 |
firewall-cmd --zone=public --add-port=6379/tcp --permanent | 防火墙新增端口访问 |
firewall-cmd --zone=public --remove-port=6379/tcp --permanent | 防火墙删除端口访问 |
firewall-cmd --reload | 重启防火墙 |
参考资料
评论区