【概述】开发过程中,web后端一般部署在linux 中,所以linux 的基本常用命令是需要会的,在这里整理了一下开发过程中的一些常用命令,后面有其他的也会整理进来,方便以后的查找。
一、常用命令
1.1 文件处理命令
- ls 显示文件目录
- 语法:ls [-选项] [文件或目录]
- 选项:
- a 显示所有文件,包括隐藏文件
- l(小写l)显示详细信息
- i 显示 i节点(可以通过find 命令查找)
- touch 创建一个空文件
- mkdir 创建一个文件夹
1.2 权限处理命令
- chmod 改变文件或目录的权限
- 语法:
- chmod [{ugo}{+-=}{rwx}] [文件或目录]
- chmod [777] [文件或目录]
- 说明
- 文件 的 w 写权限,不代表可以删除文件,只有修改文件的权限
- 目录 的 w 表示,可以在目录下创建和修改文件
- 注意:由文件的w 权限,无目录的w 权限,是不允许删除的
- 语法:
- chown 改变文件的所有者
- chgrp 改变文件的所属组
- umask -S 查看系统默认的权限
1.3 文件搜索命令
- find 查找任何文件或目录(所有)
- 语法
- find [搜索范围路径] -name [文件名]
- find [搜索范围路径] -size [+-,按照文件大小查找,+:大于;-:小于]
- find [搜索范围路径] -user [文件的所有者]
- find [搜索范围路径] -type [d(目录)/f(文件)/l(软连接)]
- find -[时间查找] (以天、分钟为单位)[+-]
- [以天为单位] 1 ctime、atime、mtime
- [以分钟为单位] 1 cmin、amin、mmin
- c:change 改变文件属性的意思;a:access 被访问;m:modify 被修改内容;
- +:之外;-:之内;
- find ... -exec/ok [执行命令] {} \; 文件结果执行命令(例如找到文件并删除)
- ... 代表文件搜索选项
- {} 代表 前一步 的结果集
- exec和ok的区别是,ok 有询问确认的意思;
- find -inum [inode seq] i节点标识
- 连接符:-a (and,逻辑与);-o(or,逻辑或)
- 语法
- which 查看命令所在的目录位置
- 语法:which [命令名称]
- locate 查找文件,根据linux数据库内部索引查找
- 【优点】查找速度很快,比find快
- 【缺点】有时新创建的文件找不到,需要配合updatedb命令,更新数据库;
- man 帮助命令,获得命令的帮助文档
- 语法:man [命令或配置文件]
- whatis 查看命令的描述
- --help 查看命令的选项
1.4 压缩解压缩命令
- tar 打包目录,生成后缀名.tar.gz,或者进行解压
- 语法:tar [zcvf] [zxvf] [打包文件.tar.gz] [源文件]
- -c 文件打包
- -x 文件解压缩
- -v 详细信息
- -f 指定压缩后的文件名
- -z 打包同时压缩
- -C 指定解压后存放的路径
- 语法:tar [zcvf] [zxvf] [打包文件.tar.gz] [源文件]
- zip 生成win和linux通用.zip 文件
- 语法:zip [选项 -r] [压缩后文件] [源文件]
- unzip 进行解压缩
- 选项:最后配置加 -d,指定文件解压后存放的位置
1.5 其他命令
- ping (ping 不同对方网络的原因很多,需要一一排查)
- ping 127.0.0.1 ping 自己的回环地址,判断网络协议是否正确
- ping 自己的网络ip,判断网络地址是否正确
- 检查对方的网络配置、防火墙、插件等
- 如果发现丢包率里有丢失数据包,可能网线、网络问题
- -c 指定ping的次数
- -s 指定ping 时长
- grep 过滤,可以将指定内容进行过滤输出
- | 管道,将一个命令的输出传送给另一个命令的输入,可以连接N 个命令
- 例子:ls -l /etc | grep init | wc -l(最后进行统计显示的个数)
- && 逻辑与(ls && pwd,第一条成功,第二条才会执行)
- || 逻辑或(ls || pwd,第一条成功,第二条不执行;第一条失败,第二条才执行)
- 重定向
- > 标准输出重定向(如果是追加,使用>>)
- < 标准输入重定向
- 2> 错误重定向
二、vi/vim
- 工作模式:命令模式、插入模式、编辑模式;
- 插入模式:aio
- a 光标后插入;A 行末插入
- i 光标前插入;I 行首插入;
- o 光标下插入新行;O 光标上一行插入;
- 插入模式:aio
- 定位命令
- 编辑模式
- 跳转行号,直接输入行号+回车
- set number(nu) 设置行号
- set nonu 取消行号
- 命令模式
- j 下移一行;k 上移一行;h 左移一个字符;l 右移一个字符;
- $ 行尾;0 行首;
- 编辑模式
- 删除命令
- 命令模式
- x 删除光标所在处字符;dd 删除所在行;ndd 删除光标后n行
- 编辑模式
- n1,n2d 删除指定范围内的行
- 命令模式
- 复制和粘贴
- 命令模式
- yy/Y 复制当前行
- nyy/nY 复制当前以下n行
- dd 剪切当前行;ndd 当前以下n行;
- p、P 粘贴在光标所在行上、行下;
- 命令模式
- 替换、搜索
- 命令模式
- r 取代光标所在字符;R 从光标所在开始替换字符,esc 结束
- u 取消上一步操作(类似 win ctl+z)
- /string 向前搜索指定字符串(忽略大小写,:set ic)
- :%s/old/new/g 全文替换指定字符串
- :n1,n2/old/new/g 在行1,行2之间替换字符串
- 命令模式
三、用户管理
- 配置文件
- /etc/passwd 用户信息文件
- 用户名:密码:用户标志号:缺省组标志号:注释性描述:宿主目录:命令解释器
- /etc/shadow 密码文件
- 用户名:密码:最后一次修改的天数;两次修改密码之间最小天数;密码有效天数;系统警告到密码失效的天数;帐号闲置时间:密码失效的绝对天数;标志(不使用)
- /etc/login.defs /etc/default/useradd 用户配置文件
- /etc/skel 新用户信息文件
- /etc/group 用户组文件
- /etc/gshadow 用户组密码文件
- /etc/passwd 用户信息文件
- 用户管理命令、用户组命令、组授权
- 用户管理
- useradd [username] 添加用户
- passwd [username] 设置密码
- usermod -l [new] [old] 修改用户
- 用户组管理
- groupadd 添加组
- groupdel 删除组
- groupmod 修改组
- groups [用户名] 用户所属组
- gpasswd 管理组内成员
- -a 添加用户
- -d 删除用户
- -A 设置管理员
- 用户管理
四、进程管理
- w(who) 查看用户信息
- ps 进程查看命令
- 选项
- -a 显示所有用户进程
- -l 长格式显示
- -u 显示用户和启动时间
- -x 显示没有控制终端的进程
- -e 显示所有进程,包括没有控制终端的进程
- -w 宽行显示
- --sort 排序
- 显示参数
- STAT 当前状态,S休眠 D 不可中断休眠 R 运行状态 Z 僵死状态 T 停止
- UID 当前启动进程的用户
- PID 进程号
- PPID 父进程ID
- TTY 进程启动的终端
- NI 进程优先级
- TIME 占用的时间
- 常用
- ps -el 查看所有进程
- ps -aux 显示当前进程占用CPU和内存百分比
- ps -aux|grep tomcat 过滤
- 选项
- nohup 使进程在用户退出登陆后仍旧继续执行
- & 后台进程
- ctrl + z 挂起
- jobs 查看后台进程
- fg [任务编号] 任务恢复到前台执行;bg [任务编号] 任务恢复到后台执行;
- top 进程状态显示和进程控制(动态显示)
- d 指定刷新时间间隔
- c 显示命令行参数信息
- u 查看用户的进程
- k 终止正在执行的进程
- 任务计划
- at 在某一时刻进行
- at [HH:MM YYYY-MM-DD] 或 now + n (minutes、hours、days)
- crontab {-l、-r、-e} 周期性作业,用于生成cron进程所需要的crontab文件
- 选项
- -l 显示当前crontab
- -r 删除
- -e 编辑
- 计划命令的时间格式
- 分钟|小时|天|月|星期|命令or脚本
- 启动
- /etc/rc.d/init.d/crond start
- 选项
- at 在某一时刻进行