命令优先级
- 别名-->内部命令-->外部命令
常见命令
a
-
alias name='command'
alias命令用来设置指令的别名
alias(选项)(参数)
-p:打印已经设置的命令别名。
别名设置写在文件里,有两个⽂件可以写,~/.bashrc⽂件仅当对当前⽤户,/etc/bashrc⽂件是对所有⽤户有效。
要删除一个别名,可以使用 unalias 命令
如果不想使用别名,在命令前使用 \ 就可以了
在命令行中定义的别名,仅对当前shell进程有效
如果想永久有效,要定义在配置文件中:1. 仅对当前用户有效:~/.bashrc
2. 对所有用户有效:/etc/bashrc
b
-
bc
Linux内置计算器
输出二进制 obase=2
输入二进制 ibase=2 -
basename
用于打印目录或者文件的基本名称
basename和dirname命令通常用于shell脚本中的命令替换来指定和指定的输入文件名称有所差异的输出文件名称
c
-
cd
切换工作目录
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. 返回上两级目录;
cd !$ 把上个命令的参数作为cd参数使用。 -
cp
将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
-i:覆盖前提示
-n:不覆盖,注意两者顺序
-r,-R:递归复制目录及内部的所有内容
-a:归档,相当于-dR --perserv=all
-d --no-dereference --preserv=link=:不复制原文件,只复制链接名
-p:保留源文件或目录的属性
-b:覆盖已存在的文件目标前将目标文件备份
-l:对源文件建立硬链接,而非复制文件 -
clock
调整内置硬件时间,执行这项指令获取当前的时间
clock -s和clock -w 实现系统时间和硬件时间的同步
-
cal
显示当前日历,或者指定日期的日历
cal(选项)(参数)
-y:显示当前年的日历 -
cat
显示文件的内容
-s 把多个空行压缩成一个显示
-n 显示行号
-A 显示特殊字符
-E 显示回车和Tab键
-b:和-n相似,只不过对于空白行不编号;
cat m1 (在屏幕上显示文件ml的内容)
cat m1 m2 (同时显示文件ml和m2的内容)
cat m1 m2 > file (将文件ml和m2合并后放入文件file中)
d
-
df
用于显示磁盘分区上的可使用的磁盘空间。
可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息。-a:包含全部的文件系统
-h:以可读性较高的方式来显示信息
-i:显示inode的信息
-k:指定区块大小的1024字节
-m:指定区块大小为1048576字节
--help:显示帮助 -
date
显示或设置系统时间与日期-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号
%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分钟(00~59)
%p 显示出AM或PM
%r 显示时间,12小时制(hh:mm:ss %p)
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 显示秒(00~59)
%T 显示时间,24小时制(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sun~Sat)
%A 星期的全称(Sunday~Saturday)
%h,%b 月的简称(Jan~Dec)
%B 月的全称(January~December)
%c 日期和时间(Tue Nov 20 14:12:58 2012)
%d 一个月的第几天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%y 年的最后两个数字(1999则是99)
[root@CentOS7 data]#date +%F
2019-03-07
-
dirname
去除文件名中的非目录部分,仅显示与目录有关的内容。
dirname命令读取指定路径名保留最后一个/及其后面的字符,删除其他部分,并写结果到标准输出。如果最后一个/后无字符,dirname 命令使用倒数第二个/,并忽略其后的所有字符。
e
-
exit
退出当前shell状态
-
enable
临时关闭或者激活指定的shell内部命令
-n:关闭指定的内部命令
-a:显示所有激活的内部命令
-f:从指定文件中读取内部命令 -
echo
输出指定的字符串
-n:不自动换行
-e:激活转义字符,启用字符解释功能
单引号'':六亲不认
双引号"":不识别命令,只识别变量
反引号``:命令识别 -
export
用于将shell变量输出为环境变量,或者将shell函数输出为环境变量
一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执 行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。
[root@CentOS7 ~]#echo $HISTSIZE
1000
[root@CentOS7 ~]#export HISTSIZE=2000
[root@CentOS7 ~]#echo $HISTSIZE
2000
f
-
free
显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区
-b:以Byte为单位显示内存使用情况;
-k:以KB为单位显示内存使用情况;
-m:以MB为单位显示内存使用情况;
-s<间隔秒数>:持续观察内存使用状况;
-t:显示内存总和列;
-V:显示版本信息。
h
-
history
单独使用时显示历史命令,在命令行中,可以使用!执行指定序号的历史命令。例如:要执行第n个历史命令,则输入!n
历史命令是被保存在内存中的,当退出或登陆shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制的。
-c:清空当前历史命令;
-a:将历史命令缓冲区中命令写入历史命令文件中;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
-w:将当前历史命令缓冲区命令写入历史命令文件中。
history n:打印最近的n条历史命令
-
hexdump
查看二进制文件的十六进制编码
-
help
显示shell内部命令的帮助信息
-
hash
哈希表:每当执行一条命令的时候,hash表会记录下这条命令的路径,相当于缓存。第一次执行命令,shell解释器会从PATH路径下寻找该命令的路径,当第二次使用该命令时,shell解释器首先会查看hash表,没有该命令才会去PATH路径下寻找,大大提高了命令的速率。
-d name:清空name缓存
-r:清空所有缓存 -
hostname
主机名显示,在环境变量HOSTNAME中也保存了当前的主机名
echo $HOSTNAME也可以查看主机名 -
hwclock
硬件时钟工具,显示当前时间
-
halt
关闭正在运行的Linux操作系统
-p:关闭系统后关闭电源
-
history
显示历史命令
-c:清空当前历史命令
-d:删除指定的某一条命令
-a:将历史命令缓冲区中命令写入历史命令文件中
-r:将历史命令文件中的命令读入当前历史命令缓冲区
-w:将当前历史命令缓冲区命令写入历史命令文件中
-p:展开历史参数成多行,但不存在历史命令列表里
-s:伪造历史命令
i
-
info
Linux下info格式的帮助指令
-
init
进程初始化工具
运行级别:
#0 停机(千万不能把initdefault 设置为0)
#1 单用户模式
#2 多用户,没有 NFS(和级别3相似,会停止部分服务)
#3 完全多用户模式,字符界面
#4 没有用到
#5 图形化界面
#6 重新启动(千万不要把initdefault 设置为6) -
id
id命令可以显示真实有效的用户ID(UID)和组ID(GID)
-g或--group 显示用户所属群组的ID
-u或--user 显示用户ID -
ifconfig
ifconfig命令用于显示激活状态的网络设备信息
HWaddr表示网卡的物理地址(MAC地址),inet addr用来表示网卡的IP地址,broadcast用来表示广播地址,netmask用来表示子网掩码地址
lo表示主机的回环地址 -
info
Linux下info格式的帮助指令。
l
-
lsblk
用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系
-a, --all 显示所有设备。
-b, --bytes 以bytes方式显示设备大小。
-e, --exclude- 排除设备 (default: RAM disks)。
-f, --fs 显示文件系统信息。
-h, --help 显示帮助信息。
-m, --perms 显示权限信息。
-l, --list 使用列表格式显示。
-n, --noheadings 不显示标题。
-o, --output- 输出列。
-P, --pairs 使用key="value"格式显示。
-r, --raw 使用原始格式显示。
-t, --topology 显示拓扑结构信息。 -
lsb_release
查看当前系统的发行版信息
-v:查看LSB本身的版本信息
-a:打印本系统发行版的所有信息,比如发行版的ID,描述信息,具体版本,代号
-d -s:查看发行版的描述信息 -
lscpu
查看系统CPU的统计信息
也可通过cat /proc/cpuinfo 查看文件进行查看cpu信息
-
ln
创建链接文件,链接类型分为硬链接和符号链接(也称为:软链接)
-b或--backup:删除,覆盖目标文件之前的备份;
-d或-F或——directory:建立目录的硬连接;
-f或——force:强行建立文件或目录的连接,不论文件或目录是否存在;
-i或——interactive:覆盖既有文件之前先询问用户;
-n或--no-dereference:把符号连接的目的目录视为一般文件;
-s或——symbolic:对源文件建立符号连接,而非硬连接;
-S<字尾备份字符串>或--suffix=<字尾备份字符串>:用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它;
-v或——verbose:显示指令执行过程
硬链接和软链接的区别:
1. 目录不能硬链接,可以做软连接
2. 硬链接不可以跨文件系统,软连接可以
3. 删除(重命名)原文件,对硬链接无影响,软连接不可以
4. 原文件不存在,不可以做硬链接,可以做软链接
5. 硬链接inode相同,软链接inode不同
-
ls
ls命令用来显示目标列表
-a:显示所有档案及目录
-A:显示除隐藏文件“.”和“..”以外的所有文件列表
-l:用单列格式输出所有信息
-i:显示文件索引节点号(inode)。一个索引节点代表一个文件
-k:以KB(千字节)为单位显示文件大小
-s:显示文件和目录的大小,以区块为单位
-R:递归处理
--full-time:列出完整的日期与时间
--color[=WHEN]:使用不同的颜色高亮显示不同类型的
m
-
mkdir
用来创建目录
-m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限;
-p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录; -
mv
用来对文件和目录重新命令,或者将文件从一个目录移到另一个目录中。
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。 -
makewhatis
CentOS6中生成whatis数据库(新安装完的系统中无whatis数据库,需要使用一段时间系统才会自动生成whatis数据库)
-
mandb
CentOS7中生成whatis数据库,与makewhatis功能类似
-
man
Linux下的帮助指令,可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息
man章节:
1:用户命令
2:系统调用
3:C库调用
4:设备文件及特殊文件
5:配置文件格式
6:游戏
7:杂项
8:管理类的命令
9:Linux 内核API
-a:列出所有章节
n
-
nano
字符终端的文本编辑器
p
-
pwd
以绝对路径的方式显示用户当前工作目录。
命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。第一个/表示根目录,最后一个目录是当前目录。
-
poweroff
关闭计算机操作系统并且切断系统电源
-f:强制关闭操作系统
-
ping
使用ICMP传输协议,测试主机之间网络的连通性
-i<间隔秒数>:指定收发信息的间隔时间
-c<完成次数>:设置完成要求回应的次数
-s<数据包大小>:设置数据包的大小
-v:详细显示指令的执行过程
q
-
quit
退出当前shell状态
r
-
rm
可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理; -
reboot
重新启动正在运行的Linux操作系统
-f:强制重新开机
s
-
scp
在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。
-P:指定远程主机的端口号;
-p:保留文件的最后修改时间,最后访问时间和权限模式;
-q:不显示复制进度;
-r:以递归方式复制。 -
shutdown
关闭所有程序,并依用户的需要,进行重新开机或关机的动作
-h:将系统关机
-r:shutdown之后重新启动
立刻关机:shutdown -h now
-
screen
命令行终端切换的自由软件,用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换
-S <作业名称> 指定screen作业的名称,创建会话
-ls 列出当前所有的会话
-x 加入会话
-r 恢复会话
-d 将指定会话离线 -
source
source命令(从 C Shell 而来)是bash shell的内置命令
通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
-
stat
显示文件的状态信息。
-L:支持符号连接;
-f:显示文件系统状态而非文件状态;
-t:以简洁方式输出信息;
--help:显示指令的帮助信息;
t
-
tee
重定向到文件(默认覆盖文件内容),并同时标准输出
-a 追加到文件里
-
tree
列出指定目录下的所有文件,包括子目录里的文件。
-
timedatectl status
查询和更改系统时间
显示系统的当前时间和日期
# timedatectl status
查看当前时区
# timedatectl | grep Time查看所有可用的时区
# timedatectl list-timezones设置时区
# timedatectl set-timezone
-
touch file
touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。
-a:只更改存取时间
-m:只更该变动时间 -
type
显示指定命令的类型,判断给出的指令是内部指令还是外部指令
alias:别名。
keyword:关键字,Shell保留字。
function:函数,Shell函数。
builtin:内建命令,Shell内建命令。
unfound:没有找到 -
tty
显示当前终端
[root@CentOS7 named]#tty
/dev/pts/1 -
tr
转换或删除字符
-d:删除指定字符
u
-
uname -r
打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)
-a或--all:显示全部的信息
-r或--release:显示操作系统的发行编号 -
unalias name
取消别名
-a:取消所有别名
w
-
who
显示目前所有登录系统的用户信息,执行who命令可得知目前有那些用户登入系统
-l 显示登录进程
-u 显示空闲时间和PID信息
-b 显示上一次重新启动的日期
-H 为每一列添加标题
-m 查看当前终端信息
-q 统计当前登录用户数量
-s 使用简短的格式来显示
-m -H 只显示当前用户
-T -H 显示终端属性
-l -H 显示用户登录来源 -
which
查找并显示给定命令的绝对路径,命令对应的可执行程序
可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令查看pwd命令的绝对路径
[root@CentOS7 named]#which pwd
/bin/pwd -
whereis
定位指令的二进制程序、源代码文件和man手册页等相关文件的路径
-b:只查找二进制文件
-m:只查找说明文件
-s:只查找原始代码文件 -
whatis
用于查询一个命令执行什么功能,并将查询结果打印到终端上
[dxy@CentOS7 home]$whatis cp
cp (1) - copy files and directories
cp (1p) - copy files -
w
w命令显示已经登陆系统的用户列表,并显示用户正在执行的指令
-
who am i
显示“登录用户”的用户名(用户登录时用过的id)
-
whoami
显示当前“操作用户”的用户名,相当于执行id -un命令