前言
本篇文章是基于博主学习过程中积累的命令整理,会在职业生涯中持续更新,差不多都是常用命令,方便查阅备忘之用。
本篇教程常用命令分类如下
- 系统信息;
- 系统性能;
- 文件和目录;
- 文件权限;
- 文件查找;
- 查看文件内容;
- 文件处理;
- 用户与权限;
- 磁盘管理;
- 压缩与解压;
- 其他常用命令。
一、系统信息
命令 | 命令含义 |
---|---|
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/ | 创建文件的硬连接 |
四、文件权限
命令:chmod
命令含义:change mode的缩写,变更文件或目录的权限。
语法1:chmod [-cfvR] [{ugoa}{+-=}{rwx}] 文件或目录
语法2:chmod [-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文件所有者设置读写的权限,其他所有人和组都无任何权限 命令: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
五、文件查找
命令: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 查找时不区分大小写 命令: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 | 查看编辑文件 |
八、用户与权限
命令:useradd
命令含义:添加用户
语法:useradd [options] LOGIN
参数说明:参数 参数含义 -c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。 -d<登入目录> 指定用户登入时的启始目录。 -D 变更预设值. -e<有效期限> 指定帐号的有效期限。 -f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。 -g<群组> 指定用户所属的群组。 -G<群组> 指定用户所属的附加群组。 -m 自动建立用户的登入目录。 -M 不要自动建立用户的登入目录。 -n 取消建立以用户名称为名的群组. -r 建立系统帐号。 -s 指定用户登入后所使用的shell。 -u 指定用户ID。 命令:userdel
命令含义:删除用户
语法:userdel [options] LOGIN
参数说明:参数 参数含义 -f 强制删除用户,即使用户当前已登录; -r 删除用户的同时,删除与用户相关的所有文件。 命令: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 解锁用户的密码 命令:groupadd
命令含义:添加组
语法:groupadd [options] GROUP
参数说明:参数 参数含义 -g gid 指定组id -r 创建系统组 -f 如果组已经存在,则成功退出;如果已经使用GID,则取消-g。 命令:groupdel
命令含义:删除组
语法:groupdel [options] GROUP命令:groupmod
命令含义:用于修改组信息
语法:groupmod [options] GROUP
参数说明:参数 参数含义 -g GID 修改组 ID; -n 新组名 修改组名 命令: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 装置文件名或挂载点) |
十、解压、缩压与打包、解包
命令:tar
命令含义:文件、目录打包、解包,并且支持将多个文件包成一个文件,同时还可通过gzip/bzip将该文件压缩。
语法1:tar [-czvf] 打包后文件名 文件或目录
语法2:tar [-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仅为打包解包命令,需要解压缩则需要跟上相应参数或指定包后缀格式
命令:zip/unzip
命令含义:压缩(解压)文件,压缩文件后缀为.zip
语法1:zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
语法2:unzip [-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里面的所有文件解压到第一级目录
十一、其他常用命令
- 通用命令:
命令 命令含义 ls -l|grep "^-"| wc -l 查看当前目录下的文件数量(不包含子目录中的文件) last 显示近期用户或终端的成功登录情况。 echo > /var/log/wtmp 清除登陆系统成功的记录(此文件默认打开时乱码) lastb 记录失败的登录尝试 echo > /var/log/btmp 清除登陆系统失败的记录 history -c 清除历史执行命令 echo 3 > /proc/sys/vm/drop_caches 释放缓存空间
- 适用于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安装软件可自动下载依赖包)
- 适用于适用于Ubuntu、Debian系统系统
命令 命令含义 apt-get install 软件 安装软件