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