linux常用命令及操作
汇总工作中在linux环境下常用到的命令,基本都是笔者实际使用过的
1. 文件和目录
序号 | 命令 | 作用 | 示例 | 示例说明 |
---|
1 | ls | 列出目录 | ls /home | 列出/home目录下的文件,ls -al 可列出详细信息,ll 是ls -l 的别名 |
2 | pwd | 显示当前目录 | pwd | 显示当前所在目录 |
3 | mkdir | 创建目录 | mkdir -p /app/docker | 在根目录下创建app/docker多级目录,-p用来创建多层目录 |
4 | mv | 移动或重命名 | mv a.txt /data/b.txt | 将当前目录下的a.txt移动到/data目录下,并重命名为b.txt,第二个参数为目标,加上目录可以移动并重命名 |
5 | cp | 复制文件 | cp -R data /app/ca/data | 将当前路径下的data目录移动到/app/ca/data下,最终结果为/app/ca/data/data,-R表示递归,复制单个文件不需要此参数 |
6 | scp | 复制到远程机器或从远程下载 | scp a.jar root@www.freej.top:/app/expcloud | 将当前目录下的app.jar复制到www.freej.top下的/app/expcloud路径,root为远程机器用户,稍后会提示输入密码,从远程复制到本机将远程地址写到前面即可,如scp root@www.freej.top:/app/expcloud/app.jar /app |
7 | chmod | 修改文件访问权限 | chmod -R 777 /data | 文件访问权限有4:读,2:写,1:执行,可以任意组合,如:6为读写(4+2),3为写和执行(2+1),777第一个7表示所有者权限,第二个7为用户组权限,第三个7为其他人的权限。另外chmod +/-也可以用来修改权限,如chmod +x /usr/bin/addport 表示给addport加上执行权限,去除用- |
8 | chown | 修改文件所有者 | chown -R jinfanx:jinfanx /data | 将/data及其所有下级文件所有者和所属组更该为jinfanx,该命令与chmod相似,主要解决权限问题 |
9 | cd | 目录切换 | cd /etc | 切到/etc目录下 |
10 | rm | 删除文件或目录 | rm -rf /data | 删除/data下的所有文件和目录,删除目录需要加-r,此命令要慎用,防止误删 |
11 | touch | 创建文件 | touch /usr/bin/addport | 在/usr/bin/目录下创建addport文件 |
12 | ln | 创建链接 | ln -s /app/ide/android-studio/bin/studio.sh /usr/bin/studio | 为android-studio创建软连接到path路径下,相当于windows创建快捷方式 |
2. 系统信息
序号 | 命令 | 作用 | 实例 | 实例说明 |
---|
1 | df | 查看磁盘使用情况 | df -h | 列出所有挂载点的使用情况,包括已使用、可用等,不加-h会以byte为单位显示容量 |
2 | du | 查看已占用空间,可用来查看目录大小 | du -sh eureka | 查看当前目录下的eureka目录大小,不加-s会显示所有子目录大小,此命令不会显示文件大小,只显示目录,查看文件大小可用ls -alh |
3 | whoami | 查看当前用户 | whoami | 显示当前登录用户,很少使用 |
4 | free | 查看内存占用 | free -m | 以mb为单位显示内存使用情况,当机器很卡或进程自动结束时很可能是内存不足导致的,如阿里云、百度云等通常内存都比较小,在上面部署应用时需要关注内存等资源 |
5 | top | 查看进程资源占用 | top | 查看进程所占用资源,进去后操作与vi类似,按m表示按内存占用排序,t表示按cpu使用时间排序,q退出 |
6 | uname | 查看系统信息 | echo app_1.0_`uname`_`uname -m`.tar.gz | 此命令在不同的平台上执行结果不同,常用在文件下载上,不同的平台运行此命令可下载不同的包 |
7 | lsb_release | 查看linux发行版 | lsb_release -a | 查看linux发行版本 |
3. 运维
序号 | 命令 | 作用 | 实例 | 实例说明 |
---|
1 | ps | 查看进程 | ps -ef | grep java | 查看所有java进程 |
2 | netstat | 查看端口占用 | netstat -anp|grep 8080 | 查看8080端口占用情况 |
3 | kill/pkill | 结束进程 | kill -9 23345 或pkill -f 23345 | 强制结束23345进程 |
4 | service | 服务管理,正在被systemctl取代 | service docker status | 查看docker daemon运行状态 |
5 | systemctl | 服务管理 | systemctl restart docker | 重启docker服务 |
6 | firewall-cmd | firewalld防火墙操作 | firewall-cmd --zone=public --add-port 80/tcp | 开放80端口 |
7 | grep | 过滤 | cat /etc/passwd | grep root | 输出/etc/passwd文件中包含root的行 |
8 | find | 查找 | find /app -name *compose* | 在/app目录下查找名称包含compse的文件 |
9 | locate | 查找文件 | locate a.txt | 第三方工具,像查库一样查找本机文件,apt install mlocate 或yum install mlocate 安装,安装成功后执行updatedb后即可用locate或mlocate进行查找 |
10 | ssh | 远程登录 | ssh root@www.freej.top | 以root用户登录到www.freej.top |
11 | awk | 逐行按列处理 | ps -ef | grep java | awk '{print $1}' | xargs kill -9 | 结束本机所有java进程 |
12 | ifconfig/ip address | 查看ip | ifconfig -a 或ip address | 查看ip,包括网关、子网掩码等 |
4. 文本编辑
序号 | 命令 | 说明 | 实例 | 实例说明 |
---|
1 | vi | 用vi编辑文件 | vi doker-compose.yaml | 用vi编辑docker-compse.yaml |
2 | tail | 监视文件末尾 | tail -n 200 -f error.log | 监听error.log后200行,此命令不会挂断,默认一直输出到命令行 |
3 | cat | 查看文件,通常用来查看小文件 | cat /etc/passwd | 输出/etc/passwd到命令行 |
4 | sed | 直接编辑文件 | | 此命令可直接编辑文件,当vi不可用时可用此命令 |
5 | more | 查看文件,通常用来查看大文件,不支持向前翻页 | more error.log | 空格下一页,回车下一行 |
6 | less | 查看文件,通常用来查看大文件,支持向前翻页 | less error.log | u上一页,空格下一页,回车下一行 |
5. vi常用操作
序号 | 操作 | 快捷键 |
---|
1 | 当前位置编辑 | i |
2 | 下一行开始编辑 | o |
3 | 跳转到行首 | 0 |
4 | 跳转到行尾 | $ |
5 | 跳转到指定行,如开头 | :n ,如跳转到开头:1 |
6 | 跳转到文件末尾 | G |
7 | 查找 | /字符 ,如查找java:/java ,按n查找下一个 |
8 | 显示行号 | :set nu |
9 | 删除一行 | dd |
10 | 撤销 | ‘u’,注意:此处撤销是指连续的一类操作,如插入多行,期间没有其他操作则会全部撤销,插入后退出按dd删除一样,按u会撤销dd操作,还原被删除的一样 |
11 | 退出编辑 | esc |
12 | 退出并保存 | :wq |
13 | 退出不保存 | :q! |
14 | 未修改直接退出 | :q |
6. 其他常用操作
序号 | 操作 | 具体操作 |
---|
1 | 添加和修改环境变量 | 编辑/etc/profile或~/.bashrc, 添加export JAVA_HOME=/usr/lib/java/11,source /etc/profile 使其生效 |
2 | 查看环境变量 | env |
3 | 关机 | shutdown now |
4 | 重启 | reboot now |