⼀、Linux命令的分类和格式
1.1 Linux命令的分类
内部命令:内置在操作系统⾥的命令(属于shell解释器的⼀部分)
外部命令:独⽴于shell解释器之外的程序
shell解释器的作⽤:将⼈类看得懂的语⾔通过解析器传递给内核
1.2 命令的格式
命令 选项 目标路径
选项:分为短格式(-)和长格式(- -)【ps 查看进程时,选项无需加-】
短格式选项可以合并,长格式不能合并
例如:ls -l=ll
ll -h 查看的是文件的大小
du -sh 查看的是文件占用磁盘的空间
1.3 命令快捷键
tab键:自动补齐文件名,命令等;按两次tab键,系统将输出可用的所有名称列表。
反斜杠“\”:强行换行
ctrl+U:快速删除光标之前所有字符(可视为剪切)
ctrl+K:快速删除光标之后所有字符(可视为剪切)
ctrl+Y:黏贴刚才所删除(剪切)的字符
ctrl+L:清屏
ctrl+C:取消当前命令行编辑;结束当前执行的命令
ctrlI+D:从shell提示中注销关闭,类似输入exit
ctrI+A:把光标移动到行首,类似于Home键
ctrl+E:把光标移动到行尾,类似于End键
ctrl+Z:转入后台运行
ctrl+R:在历史命令中查找(常用并且很好用)
1.4 帮助命令
help内部命令帮助,查看bash内部命令的帮助
用法1: help
内部命令字
[root@www ~]# help cd
用法2:命令字--help
即命令的“--help" 选项,适用于大多数外部命令
[root@www ~]# Is --help
man用来提供在线帮助,使用权限是所有用户。
用法: man 命令字
1.5 与、或、⾮逻辑运算
与运算 -a (and): 表⽰并且的意思,两个条件均满⾜
[root@localhost test]# ls
[root@localhost test]# find . -name "名字*" -type f #查看当前⽬录下以名字开头的⽂件,默认是-a
[root@localhost test]# find . -name "名字*" -a -type d #查看当前⽬录下以名字开头并且是⽬录的⽂件
或运算 -o (or):表⽰或者的意思,两个条件满⾜其⼀
[root@localhost test]# ls
[root@localhost test]# find . -name "yun*" -o -type d #查看以yun开头或者是⽬录的⽂件
二、命令精讲
2.1 ls命令
作用:列表显示目录内的文件及目录,结合不同选项实现不同的作用。
格式:Is[选项]目录或文件名.
选项:
-l以长格式(long)显示文件和目录的列表
-a:显示所有(all) 子目录和文件的信息
-A:与-a 基本类似,但有两个特殊隐藏目录“..”和“.”不显示
-d:显示目录(directory) 本身的属性,常与-1同时使用,
-h:以更人性化(human) 的方式显示出目录或文件的大小,常与 -l 同时使用
-R: 以递归(recursive) 的方式显示目录及其子目录中的所有内容
2.2 du(disk usage)命令
区别:【ls -h 与 du -sh的区别在于 ls -h是查看⽂件的⼤⼩,du -sh是查看⽂件所占磁盘空间的⼤⼩】
作用:用于统计制定目录或文件所占用磁盘空间的大小
格式:du [选项]目录或文件名
选项:
-a: 统计磁盘空间占用时所有的文件,而不仅仅是统计目录
-S: 只统计所占用空间总的( summary)大小
-sh是查看⽂件所占磁盘空间的⼤⼩
2.3 touch命令
作用:创建空文件,用于测试。若当前文件已存在时,将更新该文件的时间戳
格式: touch 文件名
2.4 mkdir (make directory)命令
作用:创建新日录
格式: mkdir [选项]目录位置及名称
选项:
-p一次性创建嵌套的多层目录
-V 显示详细
-m 跳出当前的umask值
2.5 cp (copy)命令
作用:复制文件或目录
格式: cp [选项]源文件或目录目标文件或目录
选项:
-f 覆盖同名文件或目录,强制(force) 复制
-i提醒用户确认(interactive, 交互式)
-p保持(preserve)源文件权限、属性、属主及时间标记等不变
-r 递归(recursive) 复制
2.6 rm (remove) 命令
作用:删除制定的文件或目录
格式: rm [选项]要删除的文件或目录
选项:
-f不提示,直接强制删除
-i 提示用户确认
-r递归式删除整个目录树
2.7 mv (move)命令
作用:将指定文件或目录转移位置(剪切),如果目标位置与源位置相同,则相当于执行重命名操作
格式:mv [选项]源文件或目录目标文件或目录
2.8 which命令
作用:查找Linux命令程序所在的位置
格式:which命令|程序名
2.9 find命令
作用:精细查找文件或目录
格式: find [查找范围] [查找条件表达式]
常用查找条件:
-name按名称查找
例: find /etc -name“resol* .conf”
-size按大小查找
例: find/etc - size+1M [k, M,G]
-user按属性查找
例: find /etc -user root
-type按类型查找
例: find /boot -typed [d 目录; f普通文件; b块设备; c字
符设备文件]
逻辑运算符
(1) -a(and)逻辑“与”运算.
[root@www ~]# find /boot -size +1M -a -name "vm"
/boot/vmlinuz- 2.6.32-431.el6.x86_ 64
(2) -o (or) 逻辑“或”运算
[root@www ~]# find /boot -size +1M -o -name "vm"/boot/vmlinuz-2.6.32-431.el6.x86 64
/boot/ initramfs-2.6.32-431.el6.x86 64.img
三、 特殊符号
3.1通配符
~ 表示家目录
#:root用户的标识符,注释的作用
.. 表示上级目录
. 表示当前目录
> 输出重定向(将输出的内容定向到某个指定路径)先清空再写入
>> 追加输出重定向,追加到文件的末行 不清空
1>或者1>> 1表示的正确输出重定向,只有当正确的时候才重定向,错误不重定向。
2>或者2>> 2表示输出错误重定向,只会将报错信息输出的指定路径
&> 或者&>> &无论正确错误都进行重定向
{1..10} 表示序列可以是字母也可以是数字
$ 是普通用户的标识,取变量,在正则表示的是以。。。结尾,可以提取变量
$() 表示优先执行和``功能一样
^ 在正则表示的以。。。为开头 在通配符中和[ ]表示的取反
^$ 表示的空行
!表示取反在vi编辑器中表示强制的意思
*表示任意字符,在正则表示匹配前一个字符0次到无限次
. 在正则点表示的任意一个
.* 表示的任意和通配符下*
& #让程序或脚本切换到后台执行
| 表示管道符的意思,同时也是扩展正则或者的意思
||表示的前面命令执行失败后执行后面的命令
&&表示前面命令执行成功后在执行后面的命令
完整命令 || 完整命令 前面失败 后面执行
完整命令 && 完整命令 前面执行成功 后执行后面
^$ 表示的空行
[ ]表示一个范围
'' 表示的强引用,不识别任何符号
“” 可识别正则 不解析部分通配符
不加引号 支持通配符
=表示赋值
==表示的相等
;多个命令先后执行
3.2 正则符号
\ 转义符 脱马甲
表示匹配加号前的字符1到无限次(和*区别)
?正则表示是匹配前面的字符0次或1次(在通配符下表示匹配任意一个字符)
() 分组
{ } 表示次数
{n} 标识匹配一个字符n次
{n,} 表示匹配前一个字符n到无限次
{n,m} 表示匹配前一个字符n到m次
[ ] 匹配的字符
[0-9a-zA-Z] 匹配所有的字母和数字
表示次数
用grep 过滤ip 地址 ip 地址肯定是数字 [0-9] . {1,3}
[root@111 ~]# ifconfig| egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}"
192.168.192.100
192.168.192.255
255.255.255.0
127.0.0.1
255.0.0.0
四、命令知识拓展
4.1 hostname
作用: 临时修改主机名
格式:hostname 主机名 (bash后命令⽣效,但再次开机后失效)
[root@localhost ~]# hostname ljt #更改主机名为ljt
[root@localhost ~]# bash
4.2 type
作用:查看内部命令
格式:type 命令
[root@ljt ~]# type cd #查看cd是否是内部命令
cd is a shell builtin #此输出结果代表命令是内部命令
[root@ljt ~]# type ifconfig #查看ifconfig是否是内部命令
ifconfig is /sbin/ifconfig #此输出结果代表命令是外部命令
4.3 history
作用:查看历史命令
格式:history 选项
【history直接输出的是历史命令,输出结果显⽰⾏号,可⽤!⾏号 调⽤历史命令】
选项: -c (clear) 清除历史命令
[root@ljt ~]# history #查看历史命令
1 hostnamectl set-hostname ljm
2 type cd
3 type ifconfig
4 history
5 ! 2
6 type cd
7 history
[root@ljt ~]# !2 #调⽤历史命令的第⼆⾏
type cd
cd is a shell builtin
[root@ljt~]# history -c #清除历史命令
[root@ljt ~]# history #查看历史命令已清除
1 history
4.4 ps 查看进程
ps是静态查看进程,top是动态查看进程(相当于Windows下的任务管理器)
格式:ps 选项 【ps选项可以不加- 默认不识别-】
选项:
-aux 显⽰所有包含其他使⽤者的进程
-ef 显⽰所有进程信息包括命令
-u 查看指定⽤户的进程信息