本文原址:靠谱网
前言
本篇文章是基于博主学习过程中积累的命令整理,会在职业生涯中持续更新,差不多都是常用命令,方便查阅备忘之用。
本篇教程常用命令分类如下
系统信息;
系统性能;
文件和目录;
文件权限;
文件查找;
查看文件内容;
文件处理;
用户与权限;
磁盘管理;
压缩与解压;
其他常用命令。
一、系统信息
命令 命令含义
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只有当该文件是个子目录或者该文件以及被设定过为可执行
数字参数时权限含义:
权限数值 权限 二进制 具体作用
4r00000100read,读取。当前用户可以读取文件内容,当前用户可以浏览目录。
2w00000010write,写入。当前用户可以新增或修改文件内容,当前用户可以删除、移动目录或目录内文件。
1x00000001execute,执行。当前用户可以执行文件,当前用户可以进入目录。
示例:
示例 示例说明
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 软件安装软件