linux常用命令解析(持续更新)

前言

本篇文章是基于博主学习过程中积累的命令整理,会在职业生涯中持续更新,差不多都是常用命令,方便查阅备忘之用。

本篇教程常用命令分类如下

  1. 系统信息;
  2. 系统性能;
  3. 文件和目录;
  4. 文件权限;
  5. 文件查找;
  6. 查看文件内容;
  7. 文件处理;
  8. 用户与权限;
  9. 磁盘管理;
  10. 压缩与解压;
  11. 其他常用命令。

一、系统信息

命令 命令含义
uname 显示系统信息
cat /proc/version 查看linux版本信息
hostnamectl 查看系统内核、系统版本信息
cal 2019 显示2019年日历
ifconfig 查看网卡信息
cat /proc/cpuinfo 显示CPU的信息
cat /proc/cpuinfo | grep 'physical id'| sort | uniq | wc -l 查看物理CPU个数
cat /proc/cpuinfo|grep 'cpu cores'|uniq 查看每个物理CPU的核心数
cat /proc/cpuinfo|grep 'processor'|wc -l 查看逻辑CPU个数(CPU线程数)
ping 测试连接情况

二、系统性能

命令 命令含义 示例 示例说明 备注
top 实时的显示cpu、内存、进程等使用情况(类似于windows下的任务管理器) top -d 3 -p 8243 -u mysql -d为界面刷新间隔时间,默认为5秒,-p指定进程id,-u指定用户名 top命令的交互以及top各输出参数含义
free 查看系统内存及虚拟内存使用情况 free -h 以人类可读的方式显示内存信息
iostat 查看系统磁盘io负载分析、cpu使用情况 iostat 2 5 每2秒显示一次统计情况,一共显示5次
du 计算文件大小 du -h /usr/local/nginx/ 显示指定路径下的各个文件的大小并汇总
df 显示磁盘的空间使用情况 df -h 人类可读的方式显示磁盘空间信息
systemctl 查看正在运行的服务

三、文件和目录

命令 命令含义
cd 进入当前登录用的的家目录(Change Directory的缩写)
cd .. 返回上一级目录
cd - 返回上次所在的目录
cd / 返回到根目录
cd ./a/b 进入当前a目录下的b目录(相对路径)
cd /usr/local 进入指定目录(绝对路径)
pwd 显示工作路径(Print Working Directory的缩写)
ls -a 列出目录下所有的文件(包括隐藏文件、文件夹)
file 文件或目录 显示文件类型
mkdir abc 在当前目录下创建目录abc,mkdir是make directory的缩写
mkdir -p /a/b/c 递归创建目录,-p表示父目录不存在时,先创建父目录
touch abc.txt 创建文件abc.txt
rm 文件 删除文件
rm -r 文件或目录 删除目录及目录下所有的文件
rm -rf 文件或目录 强制删除!不询问
mv /usr/local/a /var/b 移动a到var目录下并且改名为b
cp -ai /usr/local/abc /var/ 复制abc目录或者文件到var目录下(-a表示文件的属性也复制,目录下所有文件都复制,-i表示覆盖前询问)
scp -r /usr/local/abc.txt root@192.168.0.121:/root/ 远程传输文件:将本机的abc.txt传输到121服务器下的root目录下
ln -s /usr/local/abc.txt /usr/local/ 创建文件的软连接,快捷方式名字不变
ln -s /usr/local/abc.txt /usr/local/def.txt 创建文件的软连接,快捷方式名字变为def.txt
ln -s /usr/local /var/ 对目录创建软连接
ln /usr/local/abc.txt /usr/local/ 创建文件的硬连接

四、文件权限

  1. 命令:chmod
    命令含义:change mode的缩写,变更文件或目录的权限。
    语法1chmod [-cfvR] [{ugoa}{+-=}{rwx}] 文件或目录
    语法2chmod [-cfvR] [421] 文件或目录
    参数说明

    参数 参数含义
    -c 若该文件权限确实已经更改,才显示其更改动作
    -f 若该文件权限法务被更改也不要显示错误讯息
    -v 显示权限变更的详细信息
    -R 对当前目录下的所有文件和子目录进行相同权限的变更

    mode参数格式:[ugoa][+-=][rwxX][数字]

    参数 参数含义
    u 表示该文件的拥有者
    g 表示与该文件的拥有者属于同一个group中
    o 表示其他以外的人
    a 所有
    + 增加权限
    - 取消全校
    = 唯一设定权限
    r 可读取
    w 可写入
    x 可执行
    X 只有当该文件是个子目录或者该文件以及被设定过为可执行

    数字参数时权限含义

    权限数值 权限 二进制 具体作用
    4 r 00000100 read,读取。当前用户可以读取文件内容,当前用户可以浏览目录。
    2 w 00000010 write,写入。当前用户可以新增或修改文件内容,当前用户可以删除、移动目录或目录内文件。
    1 x 00000001 execute,执行。当前用户可以执行文件,当前用户可以进入目录。

    示例

    示例 示例说明
    chmod u=rwx,g=rw,o=r test.txt 给test.txt文件所有者设置读写执行的权限,给所在组设置读写权限,给其它组设置只读权限
    chmod -v u-x,g+x test.txt 为test.txt文件所有者去除执行权限,为所在组增加执行权限,并打印变更权限详细信息
    chmod +x test.txt 为test.txt文件的所有者、所在组、其他组都增加执行权限
    chmod 764 test.txt 第一个数字7表示变更文件所有者权限为读写执行,第二个数字6表示变更文件所在组权限为读写,第三个数字4表示变更其他组权限为只读
    chmod 600 test.txt 给test.txt文件所有者设置读写的权限,其他所有人和组都无任何权限
  2. 命令:chown
    命令含义:change owner的缩写,更改所有者和所属组。
    语法chown [-cfvR] user[:group] 文件或目录
    user : 表示新的文件拥有者的使用者 ID
    group : 表示新的文件拥有者的使用者组(group)

    示例

    示例 示例说明
    chown tom test.txt 更改所属用户为tom
    chown :people test.txt 更改所属组为people
    chown -R tom:people /usr/a目录 更改a目录及子目录的所有者为tom、所属组为people

五、文件查找

  1. 命令:locate
    命令含义:在mlocate数据库中搜索条目.
    语法locate [OPTION]… [PATTERN]…
    特点
    ①.非实时,模糊匹配,查找是根据全系统文件数据库进行的;
    ②.如果文件数据库不存在,则不能查找;
    ③.updatedb,手动生成文件数据库;
    ④.基于索引查找,查找速度快;
    参数说明

    参数 参数含义
    -A, –all 只显示匹配所有模式的条目
    -b, –basename 只匹配路径名的基本名称
    -c, –count 只显示找到的条目的数目
    -d, –database DBPATH 使用 DBPATH,而非默认数据(即:/var/lib/mlocate/mlocate.db)
    -e, –existing 只显示当前存在的文件条目
    -L, –follow 当文件存在时跟随蔓延的符号链接(默认)
    -h, –help 显示帮助信息
    -i, –ignore-case 匹配模式时忽略大小写区别
    -l, –limit, -n LIMIT 限制为 LIMIT项目的输出(或 计数)
    -m, –mmap 被忽略,用于向后兼容
    -P, –nofollow, -H 当检查文件时不跟随蔓延的符号链接
    -0, –null 输出时以 NUL 分隔项目
    -S, –statistics 不搜索项目,显示有关每个已用数据库的统计信息
    -q, –quiet 不报告关于读取数据库的错误消息
    -r, –regexp REGEXP 搜索基本正则表达式 REGEXP 而不是模式
    –regex 模式是扩展正则表达式
    -s, –stdio 被忽略,用于向后兼容
    -V, –version 显示版本信息
    -w, –wholename 匹配完整路径名(默认)

    示例

    示例 示例说明
    locate /etc/sh 搜索目录下所有以 sh 开头的文件
    locate passwd 查找包含某个字符串的相关文件
    locate -n 5 passwd 限定显示数量
    locate -i -n 5 passwd 查找时不区分大小写
  2. 命令:find
    命令含义:功能强大的系统查找命令.
    语法find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]
    常用参数说明

    常用参数 参数含义
    -name 按名称查找
    -size 按大小查找
    -user 按属性查找
    -type 按类型查找
    -iname 忽略大小写

    示例

    示例 示例说明
    find /home -name "*.txt" 在/home目录下查找以.txt结尾的文件名
    find /home -iname "*.txt" 在/home目录下查找以.txt结尾的文件名并忽略大小写
    find . -name ".txt" -o -name ".pdf" 当前目录及子目录下查找所有以.txt或者以.pdf结尾的文件
    find . -type f -atime -7 当前目录下搜索最近七天内被访问过的所有文件
    find . -type f -atime +7 当前目录下搜索超过七天内被访问过的所有文件
    find . -type f -amin +10 当前目录下搜索访问时间超过10分钟的所有文件
    find . -type f -size +10k 当前目录下搜索大于10KB的文件
    find . -type f -size 10M 当前目录下搜索等于10MB的文件
    find . -type f -name "*.txt" -delete 删除当前目录下所有.txt文件
    find . -name "*.java" ! -perm 644 找出当前目录下权限不是644的java文件
    find . -perm 777 当前目录下搜索出权限为777的文件和目录
    find . -user tom 找出当前目录用户tom拥有的所有文件和目录
    find . -empty 要列出所有长度为零的文件
    find /etc -maxdepth 4 -mindepth 2 -name passwd 查找etc目录下,查找子目录最大深度为4层、最小深度为2层,并且文件名为passwd的文件或目录
    find . -type f -name ‘*.mp3’ -exec cp {} /tmp ‘;’ 查找当前目录下所有的MP3文件,并且复制到tmp目录

    说明:find命令的功能和参数及其强大和复杂,这里只列出了比较常用的参数、语法和示例。详情可查阅:find

六、查看文件内容

命令 命令含义
cat [-n] 文件名 显示文件内容,-n表示连行号一起显示
less 文件名 一页一页的显示文件内容(按q退出浏览)
head [-n] 文件名 显示文件头n行内容,n指定显示多少行
tail -n 3 -f 文件名 显示文件尾3行内容,并在文件更新时实时追加显示,没有-n默认10行
sed -n ‘/tomcat/p’ 文件名 显示包括关键词所在行
less 文件名 grep tomcat

七、文件处理

命令 命令含义
echo "test" > abc.txt 将字符串”test”写入(覆盖)到abc.txt文件中,原有文本内容会被覆盖,没有abc.txt文件则会创建
echo "test" >> abc.txt 将字符串”test”追加到abc.txt文本中
wc -lwcm abc.txt 统计文本信息:-l表示统计行数,-w统计单词,-c统计字节数,-m统计字符数
vim abc.txt 查看编辑文件

八、用户与权限

  1. 命令:useradd
    命令含义:添加用户
    语法useradd [options] LOGIN
    参数说明

    参数 参数含义
    -c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
    -d<登入目录> 指定用户登入时的启始目录。
    -D 变更预设值.
    -e<有效期限> 指定帐号的有效期限。
    -f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。
    -g<群组> 指定用户所属的群组。
    -G<群组> 指定用户所属的附加群组。
    -m 自动建立用户的登入目录。
    -M 不要自动建立用户的登入目录。
    -n 取消建立以用户名称为名的群组.
    -r 建立系统帐号。
    -s 指定用户登入后所使用的shell。
    -u 指定用户ID。
  2. 命令:userdel
    命令含义:删除用户
    语法userdel [options] LOGIN
    参数说明

    参数 参数含义
    -f 强制删除用户,即使用户当前已登录;
    -r 删除用户的同时,删除与用户相关的所有文件。
  3. 命令:usermod
    命令含义:用于修改用户账号
    语法usermod [options] LOGIN
    参数说明

    参数 参数含义
    -a|–append 把用户追加到某些组中,仅与-G选项一起使用
    -c|–comment 修改/etc/passwd文件第五段comment
    -d|–home 修改用户的家目录通常和-m选项一起使用
    -e|–expiredate 指定用户帐号禁用的日期,格式YY-MM-DD
    -f|–inactive 密码过期多少天后禁用该帐号,0:密码过期就禁用帐号,-1:禁用此功能,默认值是-1
    -g|–gid 修改用户的gid,改组一定存在
    -G|–groups 把用户追加到某些组中,仅与-a选项一起使用
    -l|–login 修改用户的登录名称
    -L|–lock 锁定用户的密码
    -m|–move-home 修改用户的家目录通常和-d选项一起使用
    -s|–shell 修改用户的shell
    -u|–uid 修改用户的uid,该uid必须唯一
    -U|–unlock 解锁用户的密码
  4. 命令:groupadd
    命令含义:添加组
    语法groupadd [options] GROUP
    参数说明

    参数 参数含义
    -g gid 指定组id
    -r 创建系统组
    -f 如果组已经存在,则成功退出;如果已经使用GID,则取消-g。
  5. 命令:groupdel
    命令含义:删除组
    语法groupdel [options] GROUP

  6. 命令:groupmod
    命令含义:用于修改组信息
    语法groupmod [options] GROUP
    参数说明

    参数 参数含义
    -g GID 修改组 ID;
    -n 新组名 修改组名
  7. 命令:passwd
    命令含义:用来更改用户的密码
    语法passwd [OPTION…] <accountName>

    参数 参数含义
    -k, –keep-tokens 保留即将过期的用户在期满后能仍能使用;
    -d, –delete 删除用户密码,仅能以root权限操作;
    -l, –lock 锁住用户无权更改其密码,仅能通过root权限操作;
    -u, –unlock 解除锁定;
    -f, –force 强制操作;仅root权限才能操作;
    -x, –maximum=DAYS 两次密码修正的最大天数,后面接数字;仅能root权限操作;
    -n, –minimum=DAYS 两次密码修改的最小天数,后面接数字,仅能root权限操作;
    -w, –warning=DAYS 在距多少天提醒用户修改密码;仅能root权限操作;
    -i, –inactive=DAYS 在密码过期后多少天,用户被禁掉,仅能以root操作;
    -S, –status 查询用户的密码状态,仅能root用户操作;

九、磁盘管理

命令 命令含义
df -h 显示磁盘的空间使用情况 及挂载点
df -h /var/log (显示log所在分区(挂载点)、目录所在磁盘及可用的磁盘容量)
du -sm /var/log/* | sort -rn 根据占用磁盘空间大小排序(MB)某目录下文件和目录大小
fdisk -l 查所有分区及总容量,加/dev/sda为查硬盘a的分区)
fdisk /dev/sdb 对硬盘sdb进行分区
mount /dev/sda1 /mnt 硬盘sda1挂载到/mnt目录(mount 装置文件名 挂载点)
mount -o loop /opt/soft/CentOS-7-x86_64-DVD-1708.iso /media/CentOS 挂载iso文件
umount /dev/sda1 取消挂载(umount 装置文件名或挂载点)

十、解压、缩压与打包、解包

  1. 命令:tar
    命令含义:文件、目录打包、解包,并且支持将多个文件包成一个文件,同时还可通过gzip/bzip将该文件压缩。
    语法1tar [-czvf] 打包后文件名 文件或目录
    语法2tar [-xzvf] 需要解包的文件名
    常用参数说明

    常用参数 参数含义
    -c 新建打包文件,同 -v 一起使用 查看过程中打包文件名
    -C 解压到对应的文件目录。
    -x 解包文件
    -f 后面接要处理的文件
    -j 通过bzip2方式压缩或解压,最后以.tar.br2 为后缀。压缩后大小小于.tar.gz
    -z 通过gzip方式压缩或解压,最后以.tar.gz 为后缀
    -v 压缩或解压过程中,显示出来过程
    -t 查看打包文件中内容,重点文件名
    -r 添加文件到已经压缩的文件
    -u 更新压缩文件中的内容。
    -p 保留绝对路径,即允许备份数据中含有根目录
    -P 保留数据原来权限及属性。

    示例

    示例 示例说明
    tar -czvf fileName.tar.gz . 压缩当前目录所有文件和目录到fileName.tar.gz包中
    tar -xzvf fileName.tar.gz 解压fileName.tar.gz
    tar -tf 压缩文件名 查看文件名
    tar -tvf 压缩文件 查看文件:所属权限、用户名用户组、日期等
    tar -zcvf bak.tar.gz bak.tar 使用gzip将打包文件bak.tar压缩为bak.tar.gz
    tar -jcvf bak.tar.bz2 bak.tar 使用bzip2将打包文件bak.tar压缩为bak.tar.bz2
    tar -rvf bak.tar /etc/password 将/etc/password追加文件到bak.tar中
    tar -cvf bak.tar . 将当前目录的文件打包为bak.tar
    tar -cvf log.tar log2012.log 仅打包,不压缩!
    tar -czvf log.tar.gz log2012.log 打包后,以 gzip 压缩
    tar -czvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩

    说明:tar仅为打包解包命令,需要解压缩则需要跟上相应参数或指定包后缀格式

  2. 命令:zip/unzip
    命令含义:压缩(解压)文件,压缩文件后缀为.zip
    语法1zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
    语法2unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
    常用参数说明

    常用参数 参数含义
    -q 不显示指令执行过程。
    -r 递归处理,将指定目录下的所有文件和子目录一并处理。
    -P 压缩时为压缩包添加密码
    -o 不必先询问用户,unzip执行后覆盖原有文件。
    -d 解压时指定解压文件存放目录
    -t 检查压缩文件是否正确。
    -j 不处理压缩文件中原有的目录路径。

    示例

    示例 示例说明
    zip -r fileName.zip a目录 把a目录以及子目录压缩为fileName.zip
    unzip fileName.zip -d a目录 fileName.zip解压到a目录里面
    zip -r abc123.zip abc 123.txt 把abc文件夹和123.txt压缩成为abc123.zip
    unzip fileName.zip 把fileName.zip直接解压到当前目录下
    unzip abc*.zip 把abc12.zip、abc23.zip、abc34.zip同时解压到当前目录
    unzip -v fileName.zip 查看把/home目录下面的fileName.zip里面的内容
    unzip -t fileName.zip 验证fileName.zip是否完整
    unzip -j fileName.zip 把fileName.zip里面的所有文件解压到第一级目录

十一、其他常用命令

  1. 通用命令
    命令 命令含义
    ls -l|grep "^-"| wc -l 查看当前目录下的文件数量(不包含子目录中的文件)
    last 显示近期用户或终端的成功登录情况。
    echo > /var/log/wtmp 清除登陆系统成功的记录(此文件默认打开时乱码)
    lastb 记录失败的登录尝试
    echo > /var/log/btmp 清除登陆系统失败的记录
    history -c 清除历史执行命令
    echo 3 > /proc/sys/vm/drop_caches 释放缓存空间
  1. 适用于CentOS、RedHat系统
    命令 命令含义
    yum install 软件 安装软件
    yum list installed |grep java 列出已安装的java软件
    yum remove java-1.8.0-openjdk.x86_64 卸载软件(卸载JDK)
    yum update [软件] 更新软件、软件库
    wget -P /usr/local https://网址 下载文件到指定目录
    rpm -ivh wps-office-版本.x86_64.rpm 安装rpm包(包要先下载并且要先装依赖包,这里推荐使用yum安装软件可自动下载依赖包)
  1. 适用于适用于Ubuntu、Debian系统系统
    命令 命令含义
    apt-get install 软件 安装软件

评论
 上一篇
初探-搭建 ELK+Filebeat 分布式日志采集分析平台 初探-搭建 ELK+Filebeat 分布式日志采集分析平台
* 本篇教程侧重点导读 教程涉及到的软件,技术, ELK日志采集分析平台的技术框架介绍; elasticsearch的安装部署单机、集群环境; kibana的安装部署; logtash的安装部署; Filebeat日志采集的安装部署; 打通
2019-10-25
下一篇 
nginx配置浅谈-configure的参数配置说明 nginx配置浅谈-configure的参数配置说明
参数说明 序号 参数格式 参数含义 1 –prefix=path 定义安装目录 2 –sbin-path=path 设置nginx可执行文件的路径 3 –modules-path=path 定义将安装nginx动态模块的目
2019-09-20
  目录