文章目录
一、Shell
●Linux系统中运行的一种特殊程序
●在用户和内核之间充当“翻译官”
●用户登录Linux系统时,自动加载一个Shell程序
●Bash是Linux系统中默认使用的Shell程序,Bash文件位于 /bin/bash
理解: Linux系统中有一种特殊的程序,名为Shell,它在我们启动Linux是自动启动,在linux中存在一种名为内核的东西,它可以去操控硬件,但是控制它的语言是二进制语言,我们人无法识别,所以就有了Shell,它可以将我们输入的命令转换成二进制语言,然后去控制内核从而操控硬件。
二、Linux命令分类
Linux命令分为内部命令和外部命令
区别跟解释:
内部命令: 是Shell中内部的一些特殊指令,属于Shell的一部分,开启Linux系统自己载入内存,可以直接使用。
外部命令: 一种特定的脚本文件或二进制程序,属于Shell程序之外的,每个外部命令对应了系统中的一个文件,必须知道它对应的文件位置,由Shell加载后才能执行。
外部命令执行过程: Shell加载这条命令后,会将其存在缓存中,第一次加载速度没有内部命令外,第二次之后,速度跟内部命令差不多。
三、Linux辅助操作
1、快捷指令
-
Tab键: 自动补齐
-
反斜杠 ‘ \ ’: 强制转换
强制转换不会中断命令,就算分为两行,命令也是连续的。
-
ctrl + u 组合键: 清空至行首
-
ctrl + k 组合键: 清空至行尾
-
ctrl + l 组合键: 清屏
清屏不会将以前的历史删除,而是将他们上移至看不见的地方,鼠标往上滚动即可查询
- ctrl + c 组合键: 取消本次命令编辑
2、帮助命令
●用于查看内部命令的帮助 “help”
格式:help 命令
实例:查看 cd 命令的帮助信息
●用于查看外部命令的帮助 “–help”
格式: 命令 --help
实例:查看 ls 命令的帮助信息
●综合命令查询帮助手册
格式: man 命令
实例:查看 pwd 命令的手册
使用方法:
可以使用 ‘ ↑ ’或 ‘ ↓ ’方向键滚动一行文本
还可以使用 ‘Page Up’ 和 ‘ Page Down’键进行翻页
按住q或Q键退出阅读环境
四、常用基础命令讲解
1、修改主机名
●查看主机名:hostname
实例:
●修改主机名(临时修改):hostname 要修改的名称
关机重启之后就会恢复之前的主机名。
实例:
●修改主机名(长久修改)
①第一种办法:hostnamectl set-hostname 要修改的名字
修改之后当前显示的主机名还是之前的,所以需要用 su 命令或 bash 命令进行刷新。
实例:
②第二种办法:使用 vim 进入 /etc/hostname中修改文件名称
修改之后需要进,当前显示的还是之前的主机名,需要使用init 6进行重启。
实例:
2、命令行格式
●通用的命令行使用格式
格式:命令字 [选项] [参数]
●命令字: 是整条命令中最关键的一部分,唯一确定一条命令
●选项:
短格式选项:使用 ‘ - ’符号引导,多个单字符选项可以组合在一起使用
长格式选项:使用 ‘ - - ’符号引导。
●参数: 命令字的处理对象,可以是文件名、目录(路径)名或用户名等内容,个数可以是0或多个。
3、查看当前的工作目录的路径-pwd
格式:pwd
实例:显示当前所在绝对路径
4、切换工作目录-cd
格式:cd 选项 目标位置
●将用户的工作目录更改到目标位置
●选项说明
格式 | 说明(不指定参数的情况下直接使用效果) |
---|---|
cd 目标位置 | 切换到目标位置 |
cd ~ 或 cd # 或 cd | 切换到当前用户的宿主目录 |
cd - | 切换到上一次操作的目录(回退到之前的目录) |
cd … | 切换到上一级目录 |
cd …/…/ | 切换到上一级目录的上一级目录 |
●绝对路径:以 ‘ / ’根开头的路径
实例:切换到 /opt/abc 目录
●相对路径:不以 ‘ / ’根开头的路径,所写的路径也需要相对当前所在目录下开始
实例:在 /opt目录下切换到其子目录abc中
●通配符
? | 表示一个任意字符 |
---|---|
* | 表示0个或多个任意字符 |
5、列表显示目录内容 -ls
●显示目录中内容,包括子目录和文件相关属性信息
格式: ls [选项] [文件、目录或路径]
●常用选项使用方法
选项 | 说明 |
---|---|
-l | 将文件信息详细列出,常用ll,ll是ls -l的别名 |
-R | 递归显示,如果一个目录下还有文件,则把那个文件也一起列出 |
-i | 显示inode值 |
-h | 友好的显示文件大小,通常和 -l 一起使用 |
-a | 显示隐藏文件 |
-A | 显示隐藏文件,但是不显示 . 和 … 目录(.表示当前目录,…表示上一级目录) |
-d | 查看目录本身信息,不显示目录下的内容(就显示一个 . ) |
-color | 带颜色的显示当前目录下的文件 |
● -l 将文件信息详细列出,常用ll,ll是ls -l的别名
实例:在/opt目录下显示当前目录
● -R 递归显示,如果一个目录下还有文件,则把那个文件也一起列出
实例:在/opt目录下递归显示其中所有目录
● -i 显示inode值
实例:在/opt目录下显示inode值
● -h 友好的显示文件大小(数据大小显示单位),通常和 -l 一起使用
实例:在/opt目录下,友好的显示其下面的目录
● -a 显示隐藏文件(隐藏文件通常用" . "开头)
实例:在/opt目录下显示隐藏文件目录
●综合使用:在/opt目录下,以列表的形式友好的显示所有文件目录inode号。
●linux中各种文件颜色的代表含义
白色数据文件:文本文件
蓝色文件:文件夹
绿色文件:可以执行文件
红色文件:压缩包文件
黄色文件:设备文件
天蓝色文件:软链接文件
6、切换用户-su
格式:su 用户名
●实例:切换到ydq用户,当前目录不变
●实例:切换到ydq目录,当前目录为切换后的用户的家目录
●注意:普通用户切换到管理员用户需要输入密码,管理员用户切换到普通用户不需要输入密码,普通用户之间切换也要输入密码。
7、查看文件内容-cat
●格式:cat 查看的文件或路径
不能查看目录,这是查看文件的,就算是路径,最后面也必须是文件结尾。
实例:查看lianxang文件的内容
实例:查看红帽公开信息,版本型号。
8、设置别名-alias
格式:alias 别名 = 命令
- 实例:将命令 pwd 设置一个别名 p(注意:设置的别名不要与现已有的命令冲突)
- 取消别名设置
格式:unalias 别名
9、统计目录及文件空间占用情况-du
格式:du [选项] 【要统计的目录和文件大小】
●常用选项
选项 | 说明 |
---|---|
-a | 统计当前目录所占用磁盘空间,包含其子目录的空间(du默认情况下使用) |
-h | 友好的方式显示 |
-s | 只统计所占用的总空间大小 |
●-a 统计当前目录所占用磁盘空间,包含其子目录的空间
实例:显示 /opt 目录下的所有文件占用空间大小
●-h 友好的方式显示,数据大小显示常见的单位
●-s 只统计目录或文件所占用的总空间大小
10、创建新目录-mkdir
● 创建新的空目录
格式: mkdir [选项] 目录位置及名称
实例:在当前目录下创建名为public的子目录
●创建多个目录
● -p :创建多级目录
实例:创建目录/aa,再在/aa中创建子目录bb,再在/aa/bb中创建cc
11、创建新文件-touch
更新文件的时间标记、创建新的文件
●创建多个新的空文件
实例:在当前目录下创建多个文件
12、创建链接文件-ln
● 创建软链接,相当于创建一个快捷方式,源文件删除,链接文件不可再用,源文件的inode号与链接文件的inode号不一样,不论是修改名称还是内容,inode号都不变。软连接还可以跨路径创建,修改软链接数据,源文件数据也会改变。
访问软链接过程: 访问软链接时,软连接存储的是源文件的路径,这是软链接会找到自己的inode号,inode号找到源文件,源文件找到自己的inode号,inode号指向数据,最后可以查找到源数据。
格式:ln -s 源文件 快捷方式文件
实例:创建rh文件夹的快捷方式,名为hr
●创建硬链接,相当于复制了一个副本,源文件删除,链接文件可以继续使用,源文件跟链接文件指向同一个inode号。不论是修改源文件还是链接文件内容,另外一个的内容都会改变,并且inode号也会发生改变,修改源文件名字或链接名字,inode号不会发生改变,硬链接无法跨路径创建。
格式: ln 源文件 链接文件
实例:创建rh文件夹的硬链接,无法创建,然后创建文件的硬链接,完成创建
●软链接和硬链接的区别
不同:
软连接删除源文件,链接文件不能使用,硬链接可以用。
软件链接可以创建文件和目录的链接,硬链接只能创建文件。
软连接与源文件的inode号不同,硬链接相同。
软链接可以跨磁盘创建,硬链接只能在本地创建。
相同:
软链接和硬链接只要修改其中一个内容,源文件都会发生改变。
13、复制文件或目录-cp
●将需要复制的文件或目录重建一份,并保存新的文件和目录
格式: cp [选项] 源文件或目录 目标文件或目录
●常用选项
cp默认功能:提醒用户覆盖,属性会更改,只能复制空文件夹。
-f : 强制复制,不与用户交互
-i : 提醒覆盖,(默认cp就是这样的)。
-p : 连属性一起复制,(默认cp复制的权限会进行更改)
-r : 复制目录时必须使用此选项,表示递归复制所有文件及子目录
实例:将文件夹使用 -r 递归复制到当前文件夹中,并重新命令ydq,查看ydq内容有其子文件夹。
14、删除文件或目录-rm
●删除指定的文件或目录
rm [选项] 要删除的文件或目录
●常用选项
-f : 删除文件或目录时不提醒,直接强制删除
-i : 删除文件或目录提醒用户确认(rm默认就进行提醒)
-r : 表示递归删除整个目录树
实例:删除文件夹 rh ,rh中还有子目录,使用 r 用递归一并删除。
15、移动文件或目录-mv
●将指定文件或目录转移位置,如果目标位置与源位置相同,相当于重命名。
格式: mv [选项] 源文件或目录 目标文件或目录
●常用选项
-f : 如果目标文件或目录已存在,不会询问,直接覆盖旧文件
-i : 如果目标文件或目录已存在,会询问是否覆盖。
实例:剪切到当前目录以及其他目录对比
16、查看命令或文件存放的目录-which
搜索范围由环境变量PATH决定(echo $PATH)
●当查找到第一个目标后不再继续查找
格式:which 命令或程序名
实例:查找cd命令
●在所有搜索路径中查找
格式: which -a 命令或程序
实例:查找ifconfig命令
17、查看文件或目录-find(重点)
17.1 常用的查找类型
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
格式:find [查找范围] [查找条件表达式]
不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。
常用查找条件类型
查找类型 | 关键字 | 说明 |
---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“ * ”及“ ?”通配符 |
按文件大小查找 | -size | 根据目标文件的大小进行查找 一般使用“ + ”、“ - ”号设置超过小于指定的大小作为查找条件 常用的容量单位包括kB(注意k是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找 文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(b),字符设备文件(c)等 |
注意:设置find 命令的查找命令时,若要使用“ * ”或“ ?”通配符,最好将文件名用双引号括起来,以避免当前目录下符合条件的文件干扰查找结果。
实例:在当前目录以名称进行查找
实例:在/etc目录下以文件大小进行查找
范围解释:下图描述
实例:在当前目录以文件类型进行查找。
实例:在/home目录下,以用户查找,查找属于ydq用户的文件目录。
17.2 使用find命令实现多个查找条件,各表达式之间使用逻辑运算符
-a : 表示而且(and)
-r : 表示或(or)
实例:-a命令使用操作
实例:-o命令使用方法
17.3 find 与管道符号一起使用
find命令还可以与管道符号“ | ”一起使用,但是使用管道符号时,需要在管道符号后面加上xargs。(因为find是查询文件命令,如果是操作文件内容的,则不需要加xargs)如果不加,意思表示为,前面find命令执行完,就执行后面的命令。如果加,意思表示为,前面的find命令执行完的结果交给管道符后面的命令继续执行。
实例:| xargs 管道符的使用
17.4 其它的时间查找类型
关键字 | 说明 |
---|---|
-atime | 访问时间 |
-mtime | 文件内容修改时间 |
-ctime | 文件属性修改时间(以天为单位)其中 -cmin (以分钟为单位) |
实例:-mtime时间修改过滤。
五、总结
-
Shell是一种特殊程序
Shell在用户和内核之间充当“翻译官” -
Linux命令分为内部命令和外部命令
-
Linux命令可以使用一些快捷操作指令进行辅助操作
-
Linux帮助命令(help、man)
-
Linux常用命令
查看及切换目录(pwd、cd、ls、du)
创建目录和文件(mkdir、touch、ln)
复制、删除、移动目录和文件(cp、rm、mv)
查找命令和文件(which、find)