Shell
(1)Linux系统中运行的一种特殊程序
(2)在用户和内核之间之间充当“翻译官”
(3)用户登陆Linux系统时,自动加载一个Shell程序
(4)Bash是Linux系统中默认使用的Shell程序
内核:用于调用计算机硬件资源
shell:将用户指令转换成计算机语言让内核去调用计算机硬件资源
bash是一个文件,linux系统中万物皆文件
bash文件位于/bin/bash
Linux命令的分类
内部命令与外部命令的区别
内部命令 | 外部命令 |
继承于Shell解释器程序内部的一些特殊指令,也称为内建指令 | Linux系统中能够完成特点功能的脚本文件或二进制程序 |
属于Shell的一部分 | 属于Shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由Shell加载后才能执行 |
两者区别在于:
(1)内部命令属于shell的一部分,外部命令属于shell程序之外的命令。
(2)内部命令属于shell的一部分(/bin/bash)没有单独的文件,外部命令一般由脚本文件或者二进制文件组成。
(3)内部命令自动加载,可以直接使用,外部命令系统必须要知道对应的文件位置(命令的环境变量),由shell进行加载后,系统才能识别该命令。
查看内部命令
help
enable
type命令
禁用内部命令
enable -n 命令 ——禁用该命令
enable 命令——启用该命令
Linux命令行格式
命令字 【选项】 【参数】
操作 命令的功能 要执行的对象(文件、目录、用户名)
命令字
是整条命令中最关键的一部分
唯一确定一条命令
选项
短格式选项:使用“-”符号引导 —— 多个单字符选项(单个字母)可以组合在一起使用
例:ls -a -l -h = ls -alh
长格式选项:使用“- -”符号引导(一个单词)
参数
命令字的处理对象
可以是文件名、目录(路径)名或用户名等内容
个数可以是零到多个
编辑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组合键:切换到行尾
获得命令帮助的方法
内部命令help
查看Shell内部命令的帮助信息
命令的“- -help”选项
适用于大多数Linux外部命令
使用man(manual 手册)命令阅读手册页
(1)使用“⬆”、“⬇” (ENTER)方向键滚动一行文本
(2)使用Page Up和Page Down (空格) 键翻页
(3)按Q或q键退出阅读环境
(4)按“/"键查找内容,n键向下查找,N键向上查找
pwd——查看当前的工作目录
显示用户当前所在的工作目录位置
[root@localhost ~]# pwd
/root
cd——切换工作目录
将用户的工作目录更改到其他位置
cd /home ####后面跟绝对路径,切换到home目录
cd ./home ####后面跟相对路径,切换到home目录
cd ~ ####切换到当前用户的家目录
cd ####切换到当前用户的家目录
cd ~user ####切换到某一个用户的家目录,只有root才行,别的用户只能在自己家
cd - ####切换到上一次执行操作的目录
cd .. ####切换到上一层目录(父目录)
cd ../../ ####切换到父目录的父目录
绝对路径:以/开头,根目录为起点
相对路径:以当前目录为起点
ls——列表显示目录内容
显示目录中内容,包括子目录和文件相关属性信息
ls【文件】【文件或目录…】
常用选项
-l、-a、-A、-d、-h、-R、–color
结合通配符
“?”:代表任意一个字符,且至少一个
“*”:代表任意数个字符,可以是0个或者1个或者多个
ls的常用选项
-l:以长格式(Long) 显示文件和目录的列表,包括权限、大小、最后更新时间等详细信息。ll命令与ls -l功能相同。
-a:显示所有(All)子目录和文件的信息,包括名称以点号“."开头的隐藏目录和隐藏文件。
-A: 与-a选项的作用基本类似,但有两个特殊隐藏目录不会显示,即表示当前目录的“.”和表示父目录的"…"
-d: 显示目录(Directory) 本身的属性,而不是显示目录中的内容,一般结合-l使用。
-h: 以更人性化(Human) 的方式显示目录或文件的大小,默认的大小单位为字节(B),使用 -h 选项后将显示为KB、MB等单位。此选项需要结合 -l 选项一起使用。
-R: 以递归(Recursive) 的方式显示指定目录及其子目录中的所有内容。
-i: 显示文件和目录的inode号。
- -color: 在字符模式中以颜色区分不同的文件。默认已开启
通常情况下
深蓝色:目录
白色(黑色):一般文件
绿色:可执行的文件(脚本/程序)
黄色:块设备文件
红色:压缩包
淡蓝色:链接文件/快捷方式。
长格式
- 普通文件
d 目录文件 directory
b 块设备文件 block
p 管道文件 pipe
s 套接字文件 socket
l 符号链接文件 link
r代表文件可读
w代表文件可写入可修改
x代表文件可执行
有x权限文件会变成绿色
第一个rwx代表这个文件所有者所拥有的权限,是第一个root
第二个rwx代表所属组,组成员所拥有的权限,第二个root,组名
第三个rwx代表其他用户所拥有的权限,赋予时注意,防止获取关键信息和破坏系统
给命令设置别名alias
alias ###查看系统当前所有可用别名
unalias ll #删除别名
vim /root/.bashrc ###永久生效
临时修改
alias 命令别名 = “命令”
unalias 别名命令 删除别名
\加命令 原始命令
修改
在/etc/bashrc 会影响全部
/root/.bashrc只影响当前命令
补充:
别名>内部>hash>外部命令 (先查找别名再查找内部命令,缓存最后外部)
统计目录及文件空间占用情况du
-a: 统计磁盘空间占用时用时包括所有的文件,而不仅仅只统计目录
-h:显示出每一个文件以及大小,单位是KB,MB,GB
-s: 显示文件或整个目录的大小,默认单位是KB,但不会把他们显示出来
创建新目录mkdir
mkdir /opt/sj #创建目录,注意:父目录必须存在
-p: 创建一个已有的目录会报错,加-p则不会报错/当父目录不存在时,递归创建
mkdir {h..t} 添加h到t的目录
mkdir yjs{1..10} 添加yjs1到yjs10的目录
创建空文件touch
文件存在:修改文件或者目录的时间属性,包括存取时间和更改时间。
文件不存在:创建新文件
touch [文件名]
touch [文件名] [文件名]
创建链接文件ln(软链接、硬链接)
ln命令用于为文件或目录建立链接文件(类似于Windows系统中的快捷方式),提高用户定位文件或定位目录的效率
链接文件类型
链接文件包括软链接和硬链接两种类型,其中软链接又称为符号链接。无论是访问软链接还是硬链接,与直接访问原始文件的效果基本相同
ln -s 创建软链接,相当于创建一个快捷方式
ln 创建硬链接,相当于复制了一份副本
硬软链接区别
硬链接不能跨分区建立连接 无法对文件夹创建
删除硬件连接可以继续访问硬链接
软连接可以跨设备 可以支持文件夹
软连接删除源文件不能访问
cp——复制文件或目录
将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录
cp 【选项】…源文件或目录…目标文件或目录…
cp常用选项
(1)-f:覆盖目标同名的文件或目录时不进行提醒,而直接强制复制。
(2)-i:覆盖目标同名的文件或目录时提醒用户确认。
(3)-p:复制时保存文件的权限、属主及时间标记等属性不变。
(4)-r:复制目录时必须使用此选项,表示递归复制所有文件及子目录。
(5)-a:保留权限,复制软链接本身,递归复制
注:复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在。
rm——删除文件或目录
删除指定的文件或目录
rm【选项】要删除的文件或目录
常用选项
(1)-f:删除文件或目录时不进行提醒,而直接强制删除。
(2)-i:删除文件或目录时提醒用户确认。(y表示删除,n表示不删除)
(3)-r:删除目录时必须使用此选项,表示递归删除整个目录树(谨慎使用)
注:不要直接删除系统中已有的目录或配置文件,以避免出现意外故障。
删除目录下文件时建议最好先切换到目录下再执行rm -rf命令。
mv——移动文件或目录
将指定文件或目录转移位置
如果目标位置与源位置相同,则相当于执行重命名操作
mv 【选项】…源文件或目录…目标文件或目录
which——查找命令文件存放目录
搜索范围由环境变量PATH决定(echo$PATH)
让系统能识别命令所在文件位置的环境变量PATH
which 命令/程序名 //默认当查找到第一个目标后不再继续查找
which -a 命令/程序名 //在所有搜索路径中查找
find——查找文件或目录
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
find 【查找范围】 【查找条件表达式】
不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示
-name 按名称查找:
-size 按大小查找:
-user 按文件属主:
使用find命令实现多个查找条件
各表达式之间使用逻辑运算符
-a表示 而且(and)
-o表示 或者 (or)
总结
Shell在用户和内核之间充当“翻译官”
Shell是一种特殊程序
Linux命令的分类、格式及使用方法
Linux命令分为内部命令和外部命令
获得Linux命令帮助的方法
Linux常用命令
查看及切换目录(pwd、cd、ls、du)
创建目录和文件(mkdir、touch、ln)
复制、删除、移动目录和文件(cp、rm、mv)
查找目录和文件(which、find)