文章目录
一、shell
- linux系统中运行的一种特殊程序
- 在用户和内核之间充当”翻译官“
- 用户登录Linux系统时,自动加载一个shell程序
- Bash时Linux系统中默认使用的shell程序
- 文件位于/bin/bash
理解:用户输入的命令通过shell(翻译)传递给系统内核执行
二、Linux命令行的格式
- 通用命令行使用格式
- 命令字 选项 参数(一定注意要在英语格式下)
- 命令字
- 是整条命令中最关键的一部分
- 唯一确定一条命令
- 选项
- 短格式选项:使用”-“符号引导
- 长格式选项:使用”–“符号引导
[root@localhost ~]#
[当前登录系统的用户@主机名称 当前所在的目录]
#代表着管理员登录:root用户
$表示是普通用户登录
切换用户
su 用户名 切换后所在目录不变
su - 用户名 切换后所在目录变成用户家目录
- 使用su切换用户名时,root用户切换普通用户不需要使用密码;普通用户切换root用户需要输入密码
三、Linux中常用的命令
1、编辑Linux命令行
-
编辑Linux命令行的辅助操作
Tab键 自动补齐 \ 强制换行 ctrl+U组合键 清空至行首 ctrl+K组合键 清空至行尾 ctrl+L组合键 清屏(清空屏幕,历史命令上滑可见) ctrl+C组合键 取消本次命令编辑 ctrl+a组合键 切换到行首 ctrl+e组合键 切换到行尾
2、获得命令帮助的方法
- 内部命令help ;查看Shell内部命令的帮助信息命令的“–help”选项适用于大多数Linux外部命令
- 使用man命令阅读手册页( man 命令)
- 使用"“↑”、“↓”(ENTER)方向键滚动一行文本
- 使用Page Up和Page Down(空格)键翻页
- 按Q或q键退出阅读环境
- 按“/"键查找内容,n键向下查找,N键向上查找
cd 目标位置 | 切换到目标位置 |
---|---|
cd ~ (cd) | 若不指定目标位置,默认切换到当前用户的宿主目录 |
cd - | 切换到上一次操作命令的目录 |
3、显示用户当前所在的工作目录位置
-
pwd
-
示例
cd /bin #移动到bin目录 pwd /bin #显示当前所在的位置
4、相对路径、绝对路径
在输入命令的时候一般在两个路径下写入
- 绝对路径、相对路径
- 绝对路径:是以根(符号为”/“)为起始的目录为绝对路径
- 相对路径:是不以根为起始的目录
5、列表显示目录
-
显示目录中内容,包括子目录和文件相关属性信息
-
命令格式:ls 选项 文件或目录
ls | 查看当前目录下的所有目录和文件 |
---|---|
ls -a | 查看当前目录下的所有目录和文件(包括隐藏的文件) |
ls -l 或 ll | 列表查看当前目录下的所有目录和文件(列表查看,显示更多信息) |
ls -A | 跟-a唯一的不同是不列出当前目录和上一层目录 |
ls -i | 显示inode值 |
ls -h | 友好显示文件大小 |
ls -R | 递归显示 |
ls --color | 在字符模式中以颜色区分不同的文件。默认己开启。通常情况下,深蓝色表示目录,白色表示一般文件,绿色表示可执行的文件,黄色表示设备文件,红色表示压缩文件,天蓝色表示软连接 |
- 结合通配符
- ”?“:匹配文件名中的一个未知字符
- ”*":匹配文件名中的任意多个字符
6、设置别名:alias
-
通过别名机制简化常用的或者较长的命令
alias 命令别名 = 命令 #示例:设置myls为ls -alh的别名 alias myls='ls -alh' #删除别名 unalias myls
7、创建新的目录:mkdir
mkdir [选项] 目录位置及名称 | 在指定的位置创建目录 |
---|---|
mkdir-p | 可以递归创建、创建多个目录 |
#示例:在当前目录下创建名为public_html的子目录
mkdir pulblic_html
#递归创建:创建目录/aa,在/aa目录下创建子目录bb,在/aa/bb下创建子目录cc
mkdir -p /aa/bb/cc
8、创建新的文件:touch
touch 文件
#示例:创建两个空文件,文件名分别为aa和bb
touch aa bb
#创建100个文件
touch {0..99}.txt
9、统计目录及文件空间占用情况:du
du | 统计指定目录(或文件)所占用磁盘空间的大小 |
---|---|
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 |
-h | 以更人性化的方式(默认以kb计数,但不显示单位)显示出统计结果 |
-s | 只统计所占用空间总的大小,而不是统计每个子目录、文件的大小 |
#示例:统计出/var/log/目录所占用空间的大小
du -sh/var/log/
10、创建链接文件:ln
-
链接文件分为两种:软链接、硬链接
-
硬链接:一般情况下,文件名和inode号码是“一一对应”关系,每个inode号码对应一个文件名。但是,unix/Linux系统允许多个文件名指向同一个inode号。这意味着,可以用不同的文件名访问同样的内容。对文件内容进行修改,会影响所有文件名。但是,删除一个文件名,不影响另一个文件名的访问。这种情况下就称为“硬链接”
-
软连接:文件A和文件B的inode号虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B(类似与windons桌面的快捷方式)。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的“软连接”或者“符号连接”。文件A是依赖文件B而存在,如果删除文件B,打开文件A就会报错(no such file or directory)。这是软连接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号,文件B的inode“链接数”不会因此发生变化(文件A指向文件B的文件名,文件B指向源文件inode号,inode号指向数据块,加载数据)
-
软链接与硬链接的区别
- 硬链接不能跨分区建立连接,无法对文件夹创建
- 删除源文件可以继续访问硬链接
- 软链接可以跨设备,可以支持对文件夹进行创建链接
- 软链接删除源文件不能访问
ln 源文件会目录… 链接文件或目标位置 | |
---|---|
ln | 硬链接 |
ln -s | 软链接 |
示例:
ln -s/bin/bzip2/bin/wx/
11、复制文件或目录:cp
将需要复制的文件或目录(源)重建一份。并保存为新的文件或目录
cp | 复制文件或目录 |
---|---|
-f | 覆盖目标同文件或目录时会进行提醒,按“y“即可进行覆盖 |
-i | 覆盖目标同名文件或目录时提醒用户确定 |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子文件 |
示例:将文件1.txt复制到opt目录下
touch 1.txt
cp 1.txt /opt/
12、删除文件或目录:rm
- 将不需要的文件或目录进行删除
rm 文件 | 删除当前目录下的文件 |
---|---|
-f 文件 | 删除删除当前目录下的文件(不询问) |
-r 目录 | 递归删除当前目录下的aaa目录 |
rm -rf 目录 | 递归删除当前目录下的aaa目录(不询问) |
rm -rf * | 将当前目录下的所有目录和文件全部删除 |
rm -rf /* | (自杀命令!慎用!慎用!慎用!)将根目录下的所有文件全部删除 |
- 注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包
13、移动文件或目录:mv
- 指定文件或目录移动位置
- 如果目标位置与源位置相同,则相当于执行重命名操作
1.mv [选项]…源文件或目录…目标文件或目录
#示例:移动根目录下aa目录到opt目录下
mv /aa/opt
2.mv命令只能对单个文件重命名,可使用rename命令批量修改文件名
rename jpg gif *.jpg
#注:renaem 旧名称 新名称 目标文件
14、查找命令文件存放目录:which
- 搜索范围由环境变量PATH决定(echo $PATH)
使用echo $PATH查看有五个路径:/user/local/sbin: /user/local/bin: /usr/sbin: /usr/bin: /root/bin(从左往右依次查找) - 默认当查找到第一个目标后不再继续查找
which 命令/程序名 | |
---|---|
which -a 命令/程序名 | 在所有搜索路径中查找 |
which ls | 查找当前目录内容 |
which history | 查找历史命令 |
15、查找文件或目录 find
-
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
-
find [查找范围] [查找条件类型]
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”,“?”通配符(./ " *.txt" “test” “”[a-z]" “[a-zA-Z]”…) |
---|---|---|
按文件大小查 | -size | 根据目标文件的大小进行查找(“+”号是大于目标大小,”—“是小于等于目标大小x-1,正常大小是x-1<x<=x),常用单位kB、MB、GB |
按文件类型查找 | -type | 查找目录或文件 、数据块 |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
#示例:-name
find /data/ -name "*.txt" #查找/data/目录下以.txt结尾的文件
find /data/ -name "[a-z]" #查找/data/目录下以小写字母为开头的文件
find /data/ -name "test" #查找/data/目录下以test开头的文件
#示例:-size
find /data/ -size +1M 查找文件大小大于1MB的文件;不包括1MB
find /data/ -size 4M 查找文件大小为4MB的文件;包括3MB到4MB之间的文件;但是不包括3MB
find /data/ -size -4M 查找文件大小小于4MB的文件;从0到4MB(包括4MB)
#示例:-type
find /data/ -type d 查找/data/目录下的文件夹
find /data/ ! -type d 查找/data/目录下的非文件夹
find /data/ -type l 查看/data目录下的链接文件
find /data/ -type f 查看/data/目录里的文件