man [命令或配置文件]
:获得帮助信息
按键 | 功能 |
---|---|
方向键下 | 向下翻页 |
空格或PgDn或f | 向下翻页 |
PgUp或b | 向上翻页 |
q | 退出手册 |
man 命令
无法查看命令说明,只能查看到bash的说明,此类命令被称为内置命令(built-in)命令。其他的命令则被称为外部命令。type 命令
来对命令的类型进行判断,内置命令直接显示内置命令,外部命令则显示其他说明。man
指令查看信息,则需要加上参数f
,即man -f 命令
。man 编号 命令
来查看该命令在指定版本下的解释信息help 内置命令
:获得shell内置命令的帮助信息
外部命令 --help
获取。按键 | 功能 |
---|---|
ctrl + c | 停止进程 |
ctrl+l | 清屏,等同于clear,彻底清屏是reset |
tab | 自动补全 |
上下键 | 查找执行过的命令 |
pwd
:显示当前工作目录的绝对路径,即print working directory,打印工作目录
cd 路径
:进入相对应的文件夹
按键 | 功能 |
---|---|
cd | 进入当前用户的主目录 |
cd . | 进入当前文件夹 |
cd .. | 进入当前文件夹的上一层文件夹 |
cd - | 进入上次所在的文件夹 |
注意事项:
①绝对路径:文件在文件系统中的唯一路径,以/
开头。
②相对路径:文件以当前所在文件夹为基础的路径,根据当前所在文件夹的不同有无穷多个,笼统来讲,不以/
开头的路径都是相对路径
ls [选项] [目录或文件]
:列出目录内容
按键 | 功能 |
---|---|
-a | 列出全部文件,包括隐藏文件(开头为. 的文件)一起列出来 |
-l | 长数据串列出,包含文件的属性权限等数据,ls -l 等价于ll |
注意事项:ll
指令列出的内容依次为:文件类型与权限 硬链接数 文件属主 文件属组 文件大小(byte) 建立或最近修改时间 名字
mkdir [选项] 要创建的目录(可以多个,用空格隔开)
:创建相应文件夹
选项 | 功能 |
---|---|
-p | 允许嵌套的创建目录,即当创建嵌套目录时,父目录会一起创建 |
rmdir [选项] 要删除的目录(可以多个,用空格隔开)
:删除相应文件夹
选项 | 功能 |
---|---|
-p | 删除最深层目录,且如果删除后当前文件夹为空,则继续删除本目录,递归删除 |
touch 文件名称
:创建空文件
cp [选项] src dest
:复制文件到指定目录或文件
选项 | 功能 |
---|---|
-r | 递归复制整个文件夹的内容 |
注意事项:
①若命令中的dest为文件,则该命令为把src文件内容复制到dest文件内部,会对原文件内容进行覆盖。
②若dest为目录,且src中的文件已经存在于dest的目录中,则依然会对dest中的同名文件进行覆盖。
③以上情况,在输入命令后提示是否继续进行覆盖操作,输入y继续,输入n停止。
④如果不想显示提示,则将cp
替换为/cp
,表示启用原生的cp
命令,不会存在提示信息。通常情况下,我们使用的cp
实际上是cp -i
,i
表示交互式。输入指令alias
可以查看存在别名的所有指令。
rm [选项] 要删除的文件或文件夹
:删除指定的文件或文件夹
选项 | 功能 |
---|---|
-r | 递归删除整个目录的内容 |
-f | 强制执行删除操作,且不给提示用于确认 |
-v | 显示指令的详细执行过程 |
mv oldNameFile newNameFile
:重命名
mv oldNameFile /targetFolder
:移动文件到指定文件夹
mv oldNameFile /targetFolder/newNameFile
:移动文件到指定文件夹并进行重命名
cat [选项] 文件
:查看文件的内容
选项 | 功能 |
---|---|
-n | 显示所有行的行号 |
more 文件
:分屏查看文件内容,more
指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。该指令中内置了若干快捷键以便操作
快捷键 | 功能 |
---|---|
空格 | 向下翻一页 |
Enter | 向下翻一行 |
b | 向上翻一页 |
f | 向下翻一页 |
= | 输出当前行号 |
:f | 输出文件名和当前行号 |
q | 退出more,不再显示文件内容 |
less 文件
:分屏查看文件内容,功能类似于more
,但更加强大,支持各种终端显示。less
指令在显示文件内容是,并不是一次将整个文件加载后才显示,而是根据显示需要加载内容,对显示大型文件具有很高的效率。
快捷键 | 功能 |
---|---|
空格 | 向下翻一页 |
b | 向上翻一页 |
f | 向下翻一页 |
pagedown | 向下翻一页 |
pageup | 向上翻一页 |
g | 到文件顶部 |
G | 到文件底部 |
/字串 | 向下搜寻字串,n查找下一个,N查找上一个 |
?字串 | 向上搜寻字串,n查找上一个,N查找下一个 |
= | 输出当前行号等更详细的信息 |
q | 退出less,不再显示文件内容 |
head [选项] 文件
:显示文件开头部分的内容,默认情况下head
指令显示文件的前10行内容
选项 | 功能 |
---|---|
-n 行数 | 指定显示头部内容的具体行数 |
tail [选项] 文件
:显示文件尾部的内容,默认情况下tail
指令显示文件的尾10行内容
选项 | 功能 |
---|---|
-n 行数 | 指定显示头部内容的具体行数 |
-f | 显示文件最新追加的内容,监视文件变化,适用于监控只追加而不修改之前内容的文件 |
注意事项:利用vim
指令追加内容后的文件不会被tail -f
追踪到,这是由于所有文件系统底层的文件都会被分配一个编号称为索引节点号index,tail -f
正是根据index进行追踪,但vim
指令会改变文件的index,所以无法追踪到。ls -i 文件
可以查看到文件的索引号。
echo [选项] [输出内容]
:将输出内容输出到控制台
echo $
:将系统全部环境变量名输出到控制台
echo $环境变量名
:将系统指定环境变量的内容输出到控制台
快捷键 | 功能 |
---|---|
-e | 支持反斜线控制字符的转换(不加则不识别,都视为字符串输出) |
注意事项:echo [选项] [输出内容]
的输出内容中不加""
时,多个空格只会识别为一个空格输出,加了""
以后,多个空格才会被识别为多个空格输出
ls -s 原文件或目录 软链接名
:为文件或目录创建一个软链接,软链接又称为符号链接,类似于windows里面的快捷方式,有自己的数据块,主要存放了链接其他文件的路径,-s
参数是software的意思,表示软链接,不加则创建的是硬链接。pwd
:软链接指向某个文件夹时,如果在软链接文件夹内使用 pwd
,会显示当前软链接文件夹的路径。如果在软链接文件夹内使用 pwd -P
,会显示当前真实的文件夹路径。-P
参数存在于很多命令中,作用是抛开其他任何影响,直接考察真正的物理路径,比如cd 软链接文件夹
为进入软链接的文件夹内部,而 cd - P 软链接文件夹
为进入软链接所对应真实文件夹内部。rm -rf 软链接名
删除软链接,而不能使用rm -rf 软链接名/
,rm -rf 软链接名/
命令不会删除软链接,而会把软链接对应的真实目录下的内容删除,而不会删除该软链接。通过ll
指令查看文件信息时,文件属性第一位为l
即为软链接,该文件尾部会存在指向,指向文件原本的位置。删除软链接不会影响到原始文件,而删除原始文件会影响到软链接。软链接文件名---->软链接inode---->软链接数据区域---->真实文件的文件名(其实就是硬链接名)---->真实数据的inode信息---->真实数据区域
文件名(其实就是硬链接名)---->真实数据的inode信息---->真实数据区域
history 数目
:查看最近执行过的指定数目的历史命令,不输入数目则查看所有历史命令
!历史命令编号
:快速查看执行指定历史编号的历史命令
histroy -c
:清除全部历史命令
>
:覆写,比如ls -l > 文件名
表示将列表内容覆盖写入文件,cat 文件1 > 文件2
表示将文件1内容覆盖写到文件2。
>>
:追加,比如ls -l > 文件名
表示将列表内容追加在文件最后,echo 内容 > 文件
表示将内容追加写到文件末尾。
date [选项] [参数]
:不加选项参数则显示当前时间
选项 | 功能 |
---|---|
-d | 指定显示的时间,比如-d '1 days ago’显示一天前当前时间,-d '-1 days ago’显示一天后当前时间 |
-s | 设置时间,比如-s “2017-06-09 12:11:05” ,如果想联网同步现在时间,输入命令ntpdate 同步时钟服务器名称 |
参数 | 功能 |
---|---|
+%Y | 显示当前年份 |
+%y | 显示当前年份后两位 |
+%m | 显示当前月份 |
+%d | 显示当前是哪一天 |
+%H | 显示当前小时 |
+%M | 显示当前分钟 |
+%S | 显示当前秒数 |
+%s | 显示当前时间戳(UTC标准时间从1970年1月1日到当前时间所有秒的计数) |
“+%Y-%m-%d %H:%M:%S” | 显示当前年月日时分秒,如果格式中间没有空格分隔可以不加双引号 |
cal [选项]
:不加选项则显示本月日历
选项 | 功能 |
---|---|
-数字 | 查看指定个数字月份的日历,比如-3显示本月、上月、下月的日历信息 |
-m | m代表Monday,表示周一在最前面显示 |
-y | 查看本年度所有月份日历信息 |
如果cal 年份
则表示查看指定年份的每月日历信息
useradd [选项] 用户名
:添加新用户
选项 | 功能 |
---|---|
-d | 指定新用户主文件夹的位置和名称 |
-g | 添加新用户到某个组 |
passwd 用户名
:为用户设置密码,密码随意输入,如果显示无效,直接继续重新输入相同密码就可以
id 用户
:查看某个用户是否存在
cat /etc/passwd
tony:x:1000:1000::/home/tony:/bin/bash
,tony用户:x:用户id:组id::目录位置:tony用户登录系统并与系统进行交互的方式
,交互方式如果为nologin则表示不用登陆,默认是运行系统服务的。su 用户
:切换用户身份,su即switch user
用户的切换跳转其实是层层嵌套,如果在用户1中利用su 用户2
切换到用户2,如果此时想退回到用户1,只需要输入exit
即可。
who am i
:查看最根本的用户信息,即5小节中的用户1
whoami
:查看当前正登陆的用户信息,即5小节中的用户2
sudo 命令
:使普通用户在执行命令时具有不一样的权限
用户 ALL=(ALL) ALL
%用户组 ALL=(ALL) ALL
xx ALL=(ALL) NOPASSWORD: ALL
userdel [选项] 用户
:删除用户,但不会删除用户的目录
选项 | 功能 |
---|---|
-r | 删除用户的同时删除该用户对应的目录 |
usermod [选项] 用户
:修改用户相关信息
选项 | 功能 |
---|---|
-g | 修改用户的主组 |
-G | 修改用户的附加组 |
groupadd 组名
:新增用户组,通常创建新用户时,会默认为该用户创建一个同名的用户组,并让该新用户属于该组。注意,一个用户可以属于多个不同的组。
cat /etc/group
tony:x:1001
,tony用户:x:组id
groupmod [选项] 用户
:修改用户组相关信息
选项 | 功能 |
---|---|
-n | 修改用户组名称,比如groupmod -n 新组名 原组名 |
groupdel 用户组
:删除指定的用户组
chmod [选项] [{ugoa}{+-=}{rwx}] 文件或目录
:u、g、o、a分别表示对属主、属组、其他和所有用户的权限更改,可同时选多个;+、=、-分别表示权限增加、指定、减少;r、w、x表示针对读权限、写权限、执行权限,可同时选多个。
chmod [选项] [mode] 文件或目录
:mode为三位在0到7之间的数字,从前到后分别表示属主、属组、其他用户的具有的权限。该数字根据该类用户是否具有相应的权限,由r、w、x分别对应二进制数4、2、1相加而成。若数字为7则表示r+w+x,具有全部权限,若数字为3则表示w+x,具有写和执行权限。
选项 | 功能 |
---|---|
-R | 一般为-R 文件夹 ,表示将文件夹及其内部所有子文件夹和文件都指定为特定权限 |
chown [选项] 最终用户 文件或目录
:改变文件或目录所有者
选项 | 功能 |
---|---|
-R | 一般为-R 文件夹 ,表示将文件夹及其内部所有子文件夹和文件的所有者都指定为特定用户 |
chgrp [选项] 最终用户组 文件或目录
:改变文件或目录所属组
选项 | 功能 |
---|---|
-R | 一般为-R 文件夹 ,表示将文件夹及其内部所有子文件夹和文件的所有者都指定为特定用户 |
find [搜索范围] [选项]
:从指定的目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端,不指定则默认在当前目录下找找
选项 | 功能 |
---|---|
-name 查询方式 | 按照指定的文件名查找模式查找文件 |
-user 用户名 | 查找属于指定用户的所有文件 |
-size 文件大小 | 一按照自订的文件大小查找文件,单位包括块(512字节,b)、字节(c)、w(2字节,字)、k(千字节)、M(兆字节)、G(吉字节;+表示大于等于,例如find /root -size +10M 表示筛选root目录下大于等于10M的文件 |
locate 搜索文件名字内容
:快速定位文件名字包含指定内容的-文件的文件路径
locate
指令利用事先建立的系统中所有文件名称以及路径的locate数据库实现快速定位给定的文件,该指令无需遍历整个文件系统,查询速度快。为了确保查询结果的准确性,管理员必须定期更新locate时刻locate
指令基于数据库进行查询,所以第一次运行前,需要使用updatedb
指令创建locate数据库,该数据库默认每天更新一次which 命令
或whereis 命令
:可以查看指定命令的文件路径grep [选项] 查找内容 源文件
:在源文件中查找指定的内容
选项 | 功能 |
---|---|
-n | 显示匹配行行号 |
管道符|
:将前一个命令的处理结果输出传递给后面的命令处理,通常和grep
命令一起使用
gzip 文件
:压缩文件,只能将文件压缩为*.gz文件
gunzip 文件.gz
:解压压缩包
zip [选项] xxx.zip 要压缩的文件内容
:压缩文件和目录
unzip [选项] xxx.zip
:解压压缩包
zip选项 | 功能 |
---|---|
-r | 递归压缩文件夹 |
unzip选项 | 功能 |
---|---|
-d 目录 | 指定压缩后的文件的存放目录 |
该命令可以压缩目录并保留源文件
tar [选项] xxx.tar 将要进行打包的内容
:打包命令,将指定文件夹进行打包。可以根据选项决定是否进行压缩,如果仅进行打包,打包后文件以.tar
结尾,如果同时进行压缩,打包后文件以.tar.gz
结尾
tar [选项] xxx.tar
:解包命令,将指定包进行解包。可以搭配参数对.tar.gz
的文件进行解压
选项 | 功能 |
---|---|
-c | 产生tar打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包.tar文件 |
-C | 解压到指定文件夹 |
du [选项] 目录/文件
:查看目录下每个文件和子目录的磁盘使用情况,du即disk usage,磁盘使用情况
选项 | 功能 |
---|---|
-h | 以人们容易阅读的GBytes、MBytes、KBytes显示 |
-a | 不仅查看子目录大小,还要包含子目录内的文件 |
-c | 显示所有文件和子目录大小后,显示总和 |
-s | 只显示总和 |
–max-depth 层级 | 指定统计子目录的深度为指定层级,层级为0相当于只显示总和 |
ls -lh
统计大小时,不嵌套把子目录的内容一同计算,只是计算当前目录本身的大小,所以统计的目录大小并不准确df [选项]
:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况,df即disk free,空余磁盘
选项 | 功能 |
---|---|
-h | 以人们容易阅读的GBytes、MBytes、KBytes显示 |
查看当前内存使用情况的指令:free -h
,-h
选项和df
中的该选项作用相同
lsblk
:查看设备挂载情况
选项 | 功能 |
---|---|
-f | 查看详细的设备挂载情况,显示文件系统信息 |
mount [选项] 设备 目录
:挂载设备,(接入Linux系统的设备都在dev目录下,去dev目录下找相应的设备作为参数)
umount 设备文件名或挂载点
:卸载设备
选项 | 功能 |
---|---|
-t | 指定文件类型,通常不用指定,mount会自动选择正确的类 |
-o | 指定设备或档案的挂载方式 |
进入文件/etc/fstab
,该目录中存放当前系统的所有挂载信息,将当前挂载信息写入该文件即可,UUID部分填写设备名,写好挂载点信息,保存即可
fdisk -l
:查看磁盘分区详情
fdisk 硬盘设备名称
:对硬盘进行分区操作
m
:获取分区操作帮助信息n
:添加一个新的分区p
:打印当前分区表信息q
:不保存任何更改退出w
:保存更改后退出mkfs -t 文件系统类型 设备
:格式化设备并创建文件系统ps aux | grep xxx
:查看系统中所有进程,ps即process status
ps -ef | grep xxx
:查看系统中所有进程,可以查看父子进程间的关系
选项 | 功能 |
---|---|
a | 列出带有终端的所有用户的进程 |
x | 列出当前用户的所有进程,包括没有终端的进程 |
u | 指面向用户友好的显示风格 |
-e | 列出所有进程 |
-u | 列出某个用户关联的所有进程 |
-f | 指显示完整格式的进程列表 |
ps -aux
:?
表示没有终端,tty1
是图形化终端,tty2到tty6
是字符界面终端,pts/0-255
代表虚拟终端 即远程登陆和在当前计算机中打开的终端R
表示运行状态,S
表示睡眠状态,T
表示暂停状态,Z
表示僵尸状态(进程马上要结束但父进程需要其部分信息未完全删干净的状态,等到父进程结束退出会彻底清掉该进程),s
表示包含子进程,l
表示多线程,+
表示前台显示 ,<
表示高优先级,N
表示低优先级ps -ef
:systemd
命令,是Centos7执行的第一个初始用户进程,Centos6及以前的1号进程执行命令是init
命令,大部分用户进程的父进程都是1号进程。kill [选项] 进程号
:通过进程号杀死进程,不加选项- 9
不能杀死正在运行的进程
killall 进程名称
:通过进程名称杀死进程,也支持通配符
选项 | 功能 |
---|---|
9 | 表示强迫进程立即停止 |
pstree [选项]
:查看当前进程数
选项 | 功能 |
---|---|
-p | 显示进程的PID |
-u | 显示进程的所属用户 |
top [选项]
选项 | 功能 |
---|---|
-d 秒数 | 指定top命令每几秒更新,默认是3秒 |
-i | 不显示任何闲置或僵尸进程 |
-p | 通过指定监控进程ID来监控某个进程的状态 |
操作 | 功能 |
---|---|
P | 以CPU使用率排序,默认为此项 |
M | 以内存的使用率排序 |
N | 以PID排序 |
u | 选择需要监控的用户,空格则表示所有 |
k | 输入相应进程的pid再输入9,即可清除该进程 |
q | 退出top |
netstat -anp | grep 进程号
:查看进程网络信息
netstat -nlp | grep 端口号
:查看网络端口号占用情况
选项 | 功能 |
---|---|
-a | 显示所有正在监听和未监听的套接字 |
-n | 拒绝显示别名,能显示数字的全部抓化成数字 |
-l | 仅列出在监听的服务状态 |
-p | 显示哪个进程在调用 |
crontab [选项]
选项 | 功能 |
---|---|
-e | 编辑定时任务 |
-l | 查询定时任务 |
-r | 删除当前用户所有的定时任务 |
systemctl restart crond
:重启定时任务,此外还可以用systemctl
进行该服务的状态查看和开启关闭
* * * * * 命令
*
从前往后意义与取值依次为① 分钟(0-59)② 小时(0-23)③ 日(1-31)④ 月份(1-12)⑤ 星期(0-7,0和7都代表周日)*
表示任何时刻,第一个为*
则表示一小时中的每一分钟都执行一次,
代表不连续的时间,比如0 8,12,16 * * * 命令
表示每天的8点0分,12点0分,16点0分都执行一次命令-
代表连续的时间范围,比如0 5 * * 1-6 命令
表示在周一到周六的凌晨5点0分执行命令*/数字
代表每隔多久执行一次,比如*/10 * * * * 命令
表示每隔10分钟就执行一次命令一般每周星期几不和每月第几天同时用,容易混乱