前言
本文意在记录平时在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 |
重启防火墙 |
参考资料