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