Linux命令基础
在Linux中系统中,凡是在字符操作界面输入的能够完成特定操作和任务的字符串,都可以称为“命令”。而严格一点来说,“命令”通常只代表了实现某一类功能的指令或程序的名称
shell
Linux系统中运行的一种特殊程序
在用户和内核之间充当“翻译官”
用户登陆Linux系统时,自动加载一个Shell程序
Bash是Linux系统中默认使用的Shell程序,文件位于/bin/bash
Linux命令的分类
内部命令
- 集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令
- 属于Shell的一部分
- 没有独立对应的系统文件
- 自动载入内存,可以直接使用
外部命令
- Linux系统中能够完成特定功能的脚本文件或者二进制程序
- 属于Shell解释器程序之外的命令
- 每个外部命令对应了系统中的一个文件
- 必须指定其对应的文件位置,由Shell加载荷才能执行
[查看是内部命令还是外部命令 type + cd 内嵌命令 type + mkdir 外部 ]
Linux命令行的格式
通用的命令行使用格式
命令字 选项 参数
[命令字]
整条命令中最关键的一部分,唯一确定一条命令
[选项]
例如: -a -b 短格式选项
--help 长格式选项
不使用选项时,将执行命令字的默认功能。
[参数]
命令字的处理对象
可以是文件名,目录(路径)名或用户名等内容 个数可以是零到多个
小总结
在实际使用Linux命令行的过程中,“选项”和“参数”的称谓经常混淆,甚至前后顺序也允许颠倒,但一般不会影响到命令的执行效果,所以很多时候并不做严格区分。
【编辑Linux 命令行】
在暗中上述格式输入一条Linux命令后,按Enter键表示输入结束并提交给系统执行。在没有按Enter键之前,命令行中的字符内容都处于编辑状态,可以进行任意编辑修改。编辑Linux命令行时,可以使用以下几个辅助操作,以提高输入效率。
- Tab键:按一次 自动补全 按两次 系统将输出的名称列表
- 反斜杠 \ : 如果输入一条命令内容太长,终端会自动换行。有时候为了显示美观及方便查看,也可以插入“\“符号强制换行,在下一行出现的”>“提示符后可以继续输入内容,将作为上一行命令的延续。
- Ctrl+U 快捷键 : 快速清空至行首
- Crtl+K 快捷键 :快速清空至行尾
- Ctrl+L 快捷键 : 清屏(把内容翻上去,并不是清除内容)
- Ctrl+C 快捷键 : 终止当前命令编辑
【获得命令帮助的方法】
[内部命令 + help]
查看Bash内部命令的帮助信息
[命令的”--help“选项]
适用于大多数外部命令
[使用man命令阅读手册页]
使用↑↓方向键滚动文本
使用Page Up 和 Page Down翻页
按Q或q键 退出阅读环境 按”\“键查找内容
man 命令 查看这条命令的用法
目录和文件基础操作
ls命令——列表(List)显示目录内容
- -l 以长格式(Long)显示文件和目录的列表,包括限权,大小最后更新时间等详细信息。不使用-l选项时,ls命令默认以短格式显示目录名或文件名信息
- -A 与-a选项的作用基本类似,但有两个特殊隐藏目录不会被显示,即表示当前目录的”.“以及表示父目录的”..“。
- -d 显示目录(irectory)本身的属性,而不是显示目录中的内容
- -h 以更人性化(Human)的方式显示出目录或文件的大小,默认的大小单位为字节(B),使用-h选项将显示为KB,MB等单位。此选项需要结合-l选项一起使用。
- -R 以递归(Recursive)的方式显示指定目录及其子目录中的所有内容
执行ls命令后,各种颜色的文件或目录
深蓝色——目录
浅蓝色——链接文件
白色——普通文本文件
灰色——文本文件
绿色——脚本文件
红色闪烁——损坏的链接文件
红色字体——压缩文件
黄色——设备文件(硬件的文件)
du命令——统计目录及文件的空间占用情况(DiskUsage)
du显示当前目录下所有内容的各自大小
- -a 统计磁盘空间占用时包括所有的文件,不仅仅只统计目录
- -h 以更人性化的方式(默认以KB技术,但不显示单位)显示出统计结构。使用-h选项后将显示出K,M等单位
- -s 只统计每个参数所占用总空间的(Summary)大小,而不是统计每个子目录,文件的大小
如果需要统计一个文件夹内所有文件总共占用的空间大小,可以结合“-sh”选项,将要统计的目录作为参数。例如:,执行“du -sh /var/log” 命令可以统计出/var/log目录所占用空间的大小。
如果需要统计多个文件所占用空间的大小,可以结合“-ah” 选项,使用目录作为参数时,最后将列出该目录总占用的空间大小。例如:执行“du -sh /boot/”命令将分别统计/boot/ 目录中所有文件,子目录各自占用的空间大小。
创建目录和文件
touch——创建空文件
例: touch 文件名
用于创建文本文件
如果想一次性创建多个文本文件 使用:
touch 文件名1 文件名2 ...
注:多个文件之间以空格作为分隔
源文件已存在的话,用touch在创建一遍,作用是更改该文件的创建时间
mkdir命令——创建新的目录(Make Directory)
作用:创建新目录
格式: mkdir 选项 目录位置及名称
mkdir 目录名 //创建一个新的目录
如果想一次性创建多个目录:
mkdir 目录名1 目录名2 ...
如果想创建嵌套目录:
mkdir -p 目录名/目录名/目录名 ...
复制,删除,移动目录和文件
cp——复制(Copy)目录或文件
cp命令用于复制文件或目录,将需要复制的文件或目录(源)重建一份并保存为新的文件或目录(可保存到其他目录中)。
格式: cp 选项 源文件或目录 目标文件或目录 //将该文件复制到目标文件里面
例: touch aa
cp aa(源文件) aaa(目标文件)
注:cp只能复制文件
【常用选项】↓
- -f 覆盖目标同名文件或目录不再进行提示直接强行复制
- -i 覆盖目标同名文件或目录时提醒用户确认
- -p 复制时保持源文件的权限,属主及时间标记等属性不表
- -r 复制目录时必须使用此选项,表示递归复制所有文件及子目录
例:
1.把/bin/touch命令复制到当前目录下,并命名为mytouch
执行: cp /bin/touch ./mytouch (./为当前工作目录)
2.把/etc/init.6文件复制一份作为备份,添加 .bak 扩展名,仍放在/etc目录中。
执行: cp /etc/init.d/rc /etc/rc.bak
3.如果需要复制的数据包包括完整的目录,则需要结合“-r”选项才能成功执行,否则目录将被忽略。
把目录 /boot/grub2,文件/etc/host.conf复制到当前目录下的public_html/文件夹中。
执行:cp -r /boot/grub2/ /etc/host.conf public_html/
然后 ls piblic_html 查看public_html中是否有。
[alias] 给命令取别名
alias 别名名称=‘执行的命令或值’ (临时性的,重启不生效)
永久生效↓
vi /etc/bashrc/alias 最后插入 alias 别名名称=‘执行的命令或值’
保存退出即可
source /etc/bashrc 立即生效
rm命令——删除(Remove) 文件或目录
删除指定的文件或目录
rm [选项] 要删除的文件或目录
【常用选项】↓
- -f 删除文件或目录时不进行提示,而直接强行删除
- -i 删除文件或目录时提醒用户
- -r 删除目录时必须使用此选项,表示递归删除整个目录树(慎重使用)
rm -rf 目录或文件 //直接删除不提示
rm -rf *删除当前目录下的所有
使用-rf命令的时候,最好先切换到文件的目录,千万不要误删。
mv命令——移动(Move)文件或目录
将指定的文件或目录转移位置,如果目录位置与源文件相同,则相当于执行重命名操作
mv [选项] 源文件或目录 目标文件或目录
重命名:在目的地目录后面自定义一个名称
虽然mv也具有重命名的功能。但是在实际应用中,它只能对单个文件重命名。而rename命令则可以批量修改文件名。
格式: rename 源字符串 目标字符串文件
例如,要将以jpg结尾的图片修改为以gif结尾,执行rename jpg gif *.jpg 命令即可。
其中“*.jpg” 表示以“.jpg”结尾的所有文件。
查找目录和文件
which命令——查找用户所执行的命令文件存放的目录
which命令用于查找Linux命令程序并显示所在的具体位置,其搜索范围主要由用户的环境变量PATH决定(可以执行“echo $PATH”命令查看),这个范围也是Linux系统在执行命令或程序时的默认搜索路径。
例:which ls命令后,可以找到名为ls的,位于/usr/bin/ls的命令程序文件。
find命令——查找文件或目录
采用递归方式,根据目标的名称,类型,大小等不同属性进行精细查找
find [查找范围] [查找条件表达式]
【常用查找条件类型】
查找类型 关键字 说明
按名称查找 -name 根据目标文件的名称进行查找,运用“*(所有)”及“?(一个字母)”
按文件大小查找 -size 一般使用“+”,“-”设置超过指定的大小作为查找条件,常用的容量单位包括kB,MB,GB
按文件属性查找 -user 根据文件类型进行查找
文件类型包括:普通文件(f),目录(d),块设备文件(b) 文字设备文件(c)等
块设备是指读取数据的设备(如硬盘,内存等)
字符设备是指按单个字符读取数据的设备(如键盘,鼠标等)
例:
find / -name a* 查找根目录a开头的文件
find /etc/ -size +50k 查找etc下面文件大于50k的
find / -user lq 查找系统中属主(用户)为lq的内容
find / -type f 查找系统中的所有文本文件
搜索命令后面+ -exec cp -rf {} 目标地址
将以上的一系列命令保存到 目标地址中。
例:find / -size -5k -a -name c* -a -type f -exec cp -rf {} /opt/bb/ \;
查找系统中小于5k且名称以a开头的且类型为文件的内容并把它复制到/opt/bb目录里面去。
注:以上查找都是广泛查找
各表达式之间使用逻辑运算符
“-a” 表示而且 (and) "-o"表示或者(or)
本章总结
- Linux命令行的一般格式中包括命令字,选项,参数。
- 通过如下方式可以获得帮助:help,man和--help命令选项。
- 执行ls,du命令可以查看目录相关属性。
- 执行mkdir,touch命令可以创建目录和文件
- 执行cp,rm,mv命令可以复制,删除,移动目录和文件
- 执行which,find命令可以查找目录和文件。