目录
引言:看完本章内容后,我们会了解什么是shell,以及Linux的基本命令,以及实现一些Linux的简单操作,对Linux操作系统更加熟练。
Shell
Linux系统中运行的一种特殊程序
在用户和内核之间充当“翻译官”
用户登录Linux系统时,自动加载一个shell程序
bash是Linux系统中默认使用的shell程序
内核:用于调用计算机硬件资源
1、Linux命令的分类
内部命令与外部命令的区别
内部命令 | 外部命令 |
集成于shell解释器程序内部的一些特殊指令,也称为内建指令 | Linux系统中能够完成特点功能的脚本文件或二进制程序 |
属于shell的一部分 | 属于Shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入载入内存,可以直接使用 | 必须知道其对应的文件位置,由Shell加载后才能执行 |
内部命令属于shell的一部分,外部命令属于shell程序之外的命令。
内部命令属于shell的一部分(/bin/bash)没有单独的文件,外部命令一般由脚本文件或者二进制文件组成。
1.1、查看内部命令
help
enable
type
查看cd 和ls 命令为内部命令和外部命令
禁用内部命令
enable -n 命令 禁用该命令
enable 命令 启用该命令
2、Linux命令行的格式
通用的命令行使用格式
命令字 [选项] [参数]
命令字
是整条命令中最关键的一部分
唯一确定一条命令
选项
短格式选项:使用 - 符号引导
长格式选项:使用 -- 符号引导
参数
命令字的处理对象
可以是文件名、目录(路径)名或用户名等内容
个数可以是零到多个
3、编辑Linux命令行的辅助操作
(1)Tab键:自动补齐/按两下帮忙查询相同前缀的目录或文件(cd会显示目录,vim会显示文件)
(2)反斜杠“\”强制换行(在长命令的情况下使用便于排错,更加工整)
(3)Ctrl+U组合键:清空至行首
(4)Ctrl+K组合键:清空至行尾
(5)Ctrl+L组合键:清屏,或者clear
(6)Ctrl+C组合键:取消本次命令编辑
(7)Ctrl+A组合键:切换到行首
(8)Ctrl+E组合键:切换到行尾
4、获得命令帮助的方法
内部命令 help
查看shell内部命令的帮助信息
命令的 “--help”选项
适用于大多数Linux外部命令
使用man命令阅读手册页
使用“↑”、“↓”方向键滚动一行文本
使用Page Up和Page Down键翻页
按Q或q键退出阅读环境
按“\”键查找内容
5、查看当前的工作目录-----pwd
显示用户当前所在的工作目录位置
6、切换工作目录 ------cd
cd /home #后面跟绝对路径,切换到home目录
cd ./home #后面跟相对路径,切换到home目录
cd ~ #切换到当前用户的家目录
cd #切换到当前用户的家日录
cd ~user #切换到某一个用户的家目录,只有root才行,别的用户只能在自己家
cd - #切换到上一次执行操作的目录
cd .. #切换到上一层目录(父目录)
cd ../../ #切换到父目录的父目录
绝对路径:以/开头,根目录为起点
相对路径:以当前目录为起点
7、列表显示目录内容--------ls
显示目录中内容,包括子目录和文件相关属性信息
ls [选项] [文件或目录.....]
常用选项
-l 、 -a 、-A、-d、-h、-R、--color
结合通配符
“?”匹配文件名中的一个未知字符
“*”匹配文件名中的任意多个字符
列表显示目录内容ls(常用选项、可结合通配符)
命令符 [选项] [参数]
操作 功能 要执行的对象
-l 将文件信息属性详细列出,通常直接使用ll,因为设置了别名
-R 递归显示,比如一个目录下还有文件,则把那个文件也一起列出
-d 查看目录本身信息,不显示目录下的内容
-i 显示inode值
-h 友好显示文件文件大小
-a 遍历所有文件及目录(ls内定将文件名或目录名称开头为""的视为隐藏档,不会列出)
-A 跟-a唯一的不同是不列出当前目录和上一层目录
通常情况下
白色:数据文件 txt
深蓝色:目录
白色(黑色):一般文件
绿色:可执行的文件(脚本/程序)
黄色:块设备文件
红色:压缩包
淡蓝色:链接文件/快捷方式
8、设置别名-----alias
通过别名机制简化常用的、比较长的命令设置成便于记忆和操作的指令
alias命令别名=命令
vim /root/.bash 永久生效
alias 命令别名=‘命令’ 临时设置
补充:别名>内部>hash>外部命令 (先查找别名再查找内部命令,缓存最后外部)
永久设置别名
9、统计目录文件空间占用情况 --------- du
du [选项] [文件或目录....]
常用选项
-a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h 以更人性化(友好)的方式(默认以KB计数,但不显示单位)显示出统计结果
-s 只统计所占用空间总的大小,而不是统计每个子目录、文件的大小
如果统计总共大小,显示每一个目录大小用-a
例:
du -ah 以友好的方式显示所有文件
du -sh 以友好的方式查看当前目录大小
du -sh lly/ 指定目录大小
du -sh * 表示当前目录下所有空间占用情况
10、创建新目录 -----------mkdir
创建新的空目录
mkdir [选项] 目录位置及名称..
-p:一次性创建嵌套的多层目录
例:
mkdir -p aa/bb/cc 多次创建新目录 创建目录/aa,在/aa目录下创建子目录bb,在/aa/bb目录下创建子目录cc
11、创建空文件 --------touch
更新文件的时间标记
经常用于创建多个新的空文件
touch 文件....
文件和目录区别:文件可以存放内容或者命令,目录分为根目录和子目录
例:
touch aa bb 创建两个空文件,文件名分别为aa和bb
touch {a,b,c,d}.log 创建a,b,c,d 日志文件
12、创建链接文件 -----ln
为文件或目录建立链接文件,类似于windows系统的快捷方式
链接文件类型
软连接(又称为符号链接)
创建软链接: ln -s 相当于创建一个快捷方式
硬链接
创建硬链接: ln 相当于复制了一份副本(复制文件)
软链接与硬链接的区别:
硬链接不能跨分区建立连接 无法对文件夹创建
删除硬件连接可以继续访问硬链接
软连接可以跨设备 可以支持文件夹
软连接删除源文件不能访问
创建一个软连接,test.txt 我们查看text.txt也可以查看a.txt里的内容
13、复制文件或目录 ------cp
将需要复制的文件或目录重建一份,并保存为新的文件或目录
cp [选项] ....源文件或目录......目标文件或目录....
常用选项:
-f 覆盖目标同名文件或目录时不进行提醒,直接强制复制
-i 覆盖目标同名文件或目录时提醒用户确认
-p 复制时保持源文件的权限、属主及时间标记等属性不变
-r 复制目录时必须使用此选项,表示递归复制所有文件及子目录
-a 保留权限,相当于复制目录本身,递归复制
14、删除文件或目录 ------rm
删除指定的文件或目录
rm [选项] 要删除的文件或目录
常用选项
-f 不进行提醒,直接强制复制
-i 提醒用户确认
-r 递归删除所有文件及子目录
15、移动文件或目录-------mv
将指定的文件或目录转移位置
如果目标位置与源位置相同,则相当于执行重命名操作
mv [选项] ....源文件或目录.....目标文件或目录
16、查找命令/文件存放目录---------which
搜索范围由环境变量 PATH决定 (echo $PATH)
which 命令 程序名
which -a 命令 程序名
例:
which ls 查找ls命令存放位置
which cd 查找cd命令存放位置
17、查找文件或目录 -----------find
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
find [查找范围] [查找条件表达式]
查找文件或子目录的目录位置 查找条件类型
常用查找条件类型
-name 按名称查找: 根据目标文件的名称进行查找,允许使用“*” 及“?”通配符
-size 按大小查找:根据目标文件大小进行查找,一般使用“+”、“-”号设置超过或小于指定大小作文查找条件
-user 按文件属主:根据文件是否属于目标用户进行查找
-type按文件类型查找:根据文件的类型进行查找
文件类型包括普通文件(f)、目录(d)、设备文件(b)、字符设备文件(c)
各表达式之间使用逻辑运算符
“-a” 表示 而且 (and)
"-o" 表示 或者(or)
列: 1 -a 2 表示1和2同时满足的情况下才能运行
列:1 -o 2 表示1和2满足一个就可以
找到/home下所有“*.txt”并删除
总结
通过上述描述了解了shell是在用户和内核之间充当“翻译官”,Linux的基本命令和Linux命令分为内部和外部命令,以及格式和使用方法和Linux的常用命令:
查看及切换目录(pwd、cd、ls、du)
创建目录和文件(mkdir、touch、ln)
复制、删除、移动目录和文件(cp、rm、mv)
查找目录和文件(which、find)
原文链接:https://blog.csdn.net/weixin_56270746/article/details/123612754
此处评论已关闭