前言
- Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件(万物皆文件),Linux系统管理的命令是它正常运行的核心
- linux命令在系统中有两种类型:内置Shell命令和Linux命令
一、Linux命令基础
1.Shell概述
- Linux系统中运行的一种特殊程序
- 在用户和内核之间充当"翻译官"
- 用户登录Linux系统时,自动加载一个Shell程序
- Bash是Linux系统中默认使用的Shell程序
2.Linux命令的分类
2.1 内部命令与外部命令的区别
2.2 Linux命令行的格式
通用的命令行格式:命令字 [选项] [参数]
(注:Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的,所以英文要区别大小写;而且格式有时顺序可能会改变,但没有影响)
2.2.1命令字
- 是整条命令中最关键的一部分
- 唯一确定一条命令
执行的是操作,比如新建、删除、重命名等
2.2.2 选项
- 短格式选项:使用“-”符号引导(多个单字符选项可以组合在一起使用)
- 长格式选项:使用“–”符号引导
2.2.3 参数
- 命令字的处理对象
- 可以是文件名、目录(路径)名或用户名等内容
- 个数可以是零到多个
3.编辑Linux命令行
3.1 编辑Linux命令行的辅助操作
- Tab 键∶自动补齐(显示相关指令、文件)
- 反斜杠\"强制换行(用于参数较多的命令,方便整理查看;注:可能不能Tab)
- Ctrl+U∶ 清空至行首
- Ctrl+K∶清空至行尾
- Ctrl+L∶清屏
- Ctrl+C∶取消本次命令编辑
- Ctrl+A∶切换到行首
- Ctrl+E∶ 切换到行尾
3.2 命令行提示字符
[root@localhost~]#
- root:当前登录系统的用户
- @:分隔符
- localhost:主机名称
- ~:当前所在的目录
- #:表示为管理员登录($:表示为普通用户登录)
二、Linux命令帮助
1.概述
- #help提供内部命令的帮助
- #man或info提供外部命令的帮助
如果你的英文足够好,那完全可以不靠任何人就精通linux,只要你会用man
Man实际上就是查看指令用法的help,学习任何一种UNIX类的操作系统最重要的就是学会使用man这个辅助命令
man是manual(手册)的缩写字,它的说明非常的详细,但是因为它都是英文,看起来非常的头痛
建议大家需要的时候再去看man,平常嘛,记得一些基本用法就可以了
2.获得命令帮助的方法
无网情况下使用,当然比较方便无脑的还是直接“百度”
2.1 内部命令help
查看Shell内部命令的帮助信息
2.2 命令的“–help”选项
适用于大多数Linux外部命令
2.3 使用man命令阅读手册页
- 使用man命令阅读手册页
- 使用"↑"、“↓”(ENTER)方向键滚动一行文本·
- 使用 Page Up和 Page Down(空格)键翻页
- 按 Q 或 q 键退出阅读环境
- 按"/"键查找内容,n键向下查找,N键向上查找
三、目录与文件基本操作
1.查看当前的工作目录-pwd
2.切换工作目录-cd
通常使用需要切换到的目标位置(文件夹路径)作为参数
若不指定目标参数,默认将切换到当前用户的宿主目录(家目录)
宿主目录是Linux用户登录系统后默认的工作目录
在Linux操作系统中表示某个目录(或文件)的位置时,根据其参照的起始目录不同可以使用两种不同的形式,被称为绝对路径和相对路径
2.1 绝对路径
- 指明了文件在整个文件系统中的确切位置,不会有什么歧义,从文件系统的根目录"/"开始
- 因为Linux操作系统中的根目录只有一个,所以不管出于哪个目录中,使用绝对路径都可以非常准确地表示一个目录(或文件)所在的位置
但如果路径较长,输入的时候会比较繁琐
2.2 相对路径
由调用时的上下文给出 (当前所在位置),在开头不使用“/”符号
因此使用的时候更加简单、便捷
相对路径主要包括如下几种形式:
2.3 小结
- 相对而言,使用相对路径表示目录(文件)的路径形式灵活多变,通常用来标识当前目录“附近”的目录(文件)位置
- 而绝对路径常用来表示Linux操作系统中目录结构相对稳定(不经常改变)的目录
- 在选择相对路径或绝对路径时,应根据实际情况进行选择
3.列表显示目录内容-ls
主要用于显示目录中的内容,包括子目录和文件的相关属性信息等
3.1常用选项
- -l :显示文件(目录)的详细信息
- -a :查看隐藏文件(目录)
- -A :查看隐藏文件,除了表示当前目录“.”和父目录“. .”
- -d :显示目录本身的属性,而不是显示目录中的内容
- -h :更人性化的显示文件(目录)大小的单位信息
- -R :递归显示(如果有子目录,则会把子目录中的文件依次展现)
- –color:以颜色区分文件类型
黑色(数据文件)
白色(一般文件)
蓝色(目录/文件)
红色(压缩包)
绿色(可执行的文件/命令文件/脚本)
淡蓝色(链接文件/快捷方式)
黄色(设备文件/磁盘文件)
3.2结合通配符
- "?"∶ 代表任意一个字符,且至少1个
- "*"∶代表任意数个字符,可以是0个或者1个或者多个
- "[]"∶表示可以匹配字符组中的任意一个字符
[abc]、[a-f]
4.设置别名-alias
- 通过别名机制简化常用的、比较长的命令
alias 命令别名=‘命令’(“=”两边不能有空格) - 示例
设置myls为ls -alh的别名
alias myls=‘ls -alh’
可以定义一个名为myls的命令别名,以后再执行“myls”时即等同于执行“ls-alh”命令 - 取消别名
unalias 命令别名
5.统计目录及文件空间占用情况-du
- 统计指定目录(或文件)所占用磁盘空间的大小
du [选项] [文件或目录….] - 常用选项
-a:统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h:以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
-s:只统计所占用空间总的大小,而不是统计每个子目录、文件的大小(选项-a和-s不可同时使用)
–max-depth=n:计所有小于等于第n层的目录的总大小 - 统计出/var/log目录中子目录的大小
du -h --max-depth=1 /var/log/
6.创建新目录-mkdir
-
创建新的空目录
mkdir [选项] 目录位置及名称…
常用选项
-p:一次创建嵌套的多层目录 -
示例
●在当前目录下创建名为 public_html 的子目录
mkdir public_html
●创建目录/aa,在/aa 目录下创建子目录bb,在/aa/bb 目录下创建子目录cc
cC mkdir -p /aa/bb/cc
7.创建空文件-touch
- 更新文件的时间标记
- 经常用语创建多个新的空文件
touch 文件… - 示例
创建两个空文件,文件名分别为aa.txt和bb.txt
touch aa bb
touch{a,b}.txt
8.创建链接文件-ln
软链接相当于快件方式
硬链接相当于给文件起了个别名
当一个文件拥有多个硬链接时,对文件内容修改,会影响到所有文件名
但是删除一个文件名,不影响别的文件名的访问
删除一个文件名,只会使得"硬链接数"减 1
需要注意的是不能对目录做硬链接
在日常工作中几乎不会建立文件的硬链接
9.复制文件或目录-cp
-
将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录
cp 【选项】….源文件或目录…目标文件或目录… -
常用选项
-f∶ 覆盖目标同名文件或目录时不进行提醒,而直接强制复制
-i∶ 覆盖目标同名文件或目录时提醒用户确认
-p∶ 复制时保持源文件的权限、属主及时间标记等属性不变
-r∶复制目录时必须使用此选项,表示递归复制所有文件及子目录
注∶复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在
10.删除文件或目录-rm(慎用!)
- 删除指定的文件或目录
rm [选项] 要删除的文件或目录… - 常用选项
-f∶ 删除文件或目录时不进行提醒,而直接强制删除
-i∶删除文件或目录时提醒用户确认(y表示删除,n表示不删除)
-r∶ 删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)
注∶ 不要直接删除系统中已有的目录或配置文件,以避免出现意外故障
删除目录下文件时建议最好先切换到目录下再执行rm -rf命令
11.移动文件或目录-mv
- 将指定的文件或目录转移位置
- 如果目标位置与源位置相同,则相当于执行重命名操作
mv [选项] … 源文件或目录… 目标文件或目录 - 示例
mv mytouch mkfile
mv mkfile public_html - mv命令只能对单个文件重命名,可使用rename命令批量修改文件名
rename 旧字符 新字符 目标文件
例∶ rename jpg gif*.jpg
12.查找命令文件存放目录-which
13.查找文件或目录-find
13.1 常用查找条件类型
13.2 使用find命令实现多个查找条件
- 各表达式之间使用逻辑运算符
"-a"表示而且(and)
"-o"表示或者(or) - 示例
find /boot -size +1024k-a -name “vmlinuz*”
两者都需符合条件
find /boot -size+1024k-o -name "vmlinuz*"
符合其一即可
13.3 find之exec用法
- -exec参数后面跟的是Linux命令,它是以分号";“为结束标志,由于各个系统中分号会有不同的意义,因此在分号前面加上反斜杠转义符”\"
{}代表前面find查找出来的文件名 - find 命令匹配到了当前目录下的所有普通文件,并在 -exec 选项中使用 ls -I 命令将它们列出
find ./ -type f-exec ls -I{}\;