目录
一.Linux命令基本知识
(一)Shell
Shell程序是在Linux中执行命令和控制操作系统的一种方式,它是用户与操作系统之间进行交互的接口。Shell是存在于用户和内核之间的,它的存在就相当于一个“翻译”,将用户输入的指令进行解释翻译,然后发送给内核,由内核来调用执行硬件资源。
Bash是Linux系统中最常用的Shell程序,它是Bourne Shell的增强版本,提供了更多的特性和功能。Bash支持命令行编辑、变量扩展、通配符、条件判断、循环、函数等功能,还可以编写脚本文件来自动化执行一系列操作。Bash文件的位置在/bin/bash。
(二)Linux命令分类
在Linux系统中,命令可以分为内部命令和外部命令。
-
内部命令:内部命令是由shell提供的命令,它们被直接编译到shell中,不需要单独的可执行文件。例如,cd、pwd、echo等命令就是内部命令。这些命令的执行速度较快,因为它们不需要创建新的进程。
-
外部命令:外部命令是独立于shell的可执行文件,它们由磁盘上的文件提供。例如,ls、rm、grep等命令就是外部命令。当输入一个外部命令时,shell会创建一个新的进程来执行该命令。由于需要创建进程,外部命令的执行速度相对较慢。
(三)Linux命令行格式
命令字 [选项] [参数]
命令字:是要执行的命令的名称
【选项】:是命令的可选参数,通常以短横线(-)加字母即为段格式选项或者双短横线(--)加英文单词即为长格式选项;例如,-a -h 或者 --help。
【参数】:是命令的参数,用于指定命令的操作对象或操作内容,可以是文件、目录、用户名等等。参数的数量可以是任意的。
注:有多个短格式选项时可以连着组合在一起使用,例如:-alh
以下是一些常见的命令行格式的示例:
ls -l /home/user
ls
是列出文件和目录的命令。-l
是ls
命令的一个选项,用于以长格式输出。/home/user
是ls
命令的一个参数,指定要列出的目录。
(四)获取命令帮助的方法
内部命令 help
查看Shell内部命令的帮助信息
--help选项
用于显示命令的帮助信息。
例如,要获取ls命令的帮助,可以运行ls --help
。
man命令
在Linux系统中,可以使用man命令来获取命令帮助。
例如,要获取ls命令的帮助,可以运行man ls
。
在线搜索
如果无法通过以上方法找到所需的帮助信息,可以通过在线搜索来查找更多信息。
例如,寻求百度的帮助。
(五)编辑Linux命令行辅助操作
Tab 键:自动补齐命令
反斜杠“\”: 强制换行
Ctr+U:清空至行首
Ctr+K:清空至行尾
Ctr+L:清屏
Ctr+C:取消本次命令编辑
Ctr+a:切换到行首
Ctr+e:切换到行尾
(六)通配符
通配符是一种在计算机编程和命令行操作中使用的字符或字符串模式匹配方法。它可以用来匹配文件名、路径、文本等。
在Linux系统中,常用的三个通配符:
* 表示任意长度字符或字符串
? 表示一个任意字符
[xxx] 表示可以从列表中选取任意一个字符
二.Linux基本命令
(一)pwd 查看当前工作目录
pwd #用于显示当前用户所在的目录
操作演练
(二)cd 切换工作目录
cd
#切换到当前用户宿主目录
cd ~cd - #切换到上一层目录,可以用于目录间来回切换
绝对路径:是指从根目录 / 为起点的完整路径,可以唯一地定位文件或目录。
相对路径:是以当前目录为起点的目录,不包含根目录。它可以相对于当前目录或其他已知目录来定位文件或目录。
相对路径有以下几种表现形式:
- 直接用目录或者文件名表示以当前目录为起点的目录或文件
- "./xxx"表示以当前目录为起点的目录
- "../xxx"表示以上级目录为起点目录
- "~/xxx"表示以当前用户的家目录为起点的目录
- "~用户名/xxx"表示以指定用户的家目录为起点的目录
(三)ls 使用列表显示目录或文件中的内容
ls -l #以长格式的形式显示文件或目录的属性
ls -a #显示目录中所有隐藏文件,包括“.”和“..”
ls -A #显示目录中所有隐藏文件,不包括“.”和“..”
ls -h #人性化的方式显示文件或目录的大小,默认的单位是字节
ls -d #查看目录本身
ls -t #按时间顺序显示文件或目录,默认从最新到最旧
ls -r #按时间反向顺序显示文件或目录,从最旧到最新
ls -R #以递归的方式显示目录中所有文件和目录
ls -i #显示文件或目录的inode号(相当于是文件或目录的唯一标识)
操作演练
ls -l #以长格式显示文件或目录的属性
重点:ls -l 显示文件属性一共有 7 个字段
文件类型有四种,开头字符分别是以下几类:
1.以“-”开头,表示普通文件
2.以“d”开头,表示目录
3.以“l”开头,表示软连接
4.以“c”开头,表示设备文件
以 drwxr-xr-x 为例,第一个字符d的含义表示为该文件为目录,其后的9个字符表示文件的访问权限,每3个字符代表一组权限,前三个代表所有者权限、中三个代表所属组权限、后三个代表其他用户权限。
权限位有四种字符,分别代表以下含义:
- r 表示读权限。
- w 表示写权限。
- x 表示执行权限。
- - 表示无权限。
ls -a #显示目录所有隐藏文件和目录,包括“.”和“..”
ls -A #显示目录所有隐藏文件和目录,不包括“.”和“..”
ls -lh #以长格式的形式显示目录中的属性并且人性化显示文件或目录大小
ls -d #查看目录本身
ls -lt #以长格式的形式显示目录或文件属性并且以时间顺序显示文件和目录
ls -ltr #以长格式的形式显示目录或文件属性并且以时间倒序的方式显示文件和目录
ls -R #递归形式显示目录中的所有内容
ls -i #显示文件或目录inode号
(四)alias 设置别名命令
一般是用于在简化需要输入比较长的命令或者是常用的命令
alias 别名命令=命令 # ‘ 命令 ’=‘ 命令字 [选项] [参数] ’,创建一个别名命令
unalias 别名命令 #取消别名命令
alias #显示所有别名命令
操作演练
alias myls=ls -lah #设置ls -lah的别名为myls
unalias myls #取消myls别名命令
(五)du 统计文件或目录占用磁盘空间大小
-a #统计目录及其所有子目录和文件占用磁盘的大小
-s #仅统计目录或文件本身所占用磁盘的大小;注意:不能和-a一起使用
-h #人性化显示占用磁盘的大小,默认的单位为KB
--max-depth=n #统计目录第n层子目录占用磁盘的大小
操作演练
du -a #统计目录及其所有子目录和文件占用磁盘的大小
du -s #仅统计目录或文件本身所占用磁盘的大小
du -h #人性化显示占用磁盘的大小,默认的单位为KB
du -h --max-depth=1 #统计目录第1层子目录占用磁盘的大小
(六)mkdir 创建空目录
mkdir #创建空目录
-p #一次性创建多层目录
补充:创建多个目录也可以使用 { } 大括号来创建
格式为: xx{xx..xx} xx{xx、xx、xx}
操作演练
mkdir zzr #创建一个名为zzr的目录
mkdir -p 1 2 3 4 5 #一次性创建1、2、3、4、5目录
mkdir 10{1..5} #创建101、102、103、104、105目录
(七)touch 创建空文件
touch #创建空文件;更新文件的时间
注意:touch可以直接创建多个文件,touch后面直接跟文件名,如:touch aa bb cc;
也可以使用到括号{ }来创建,如:touch {11,22,33}.txt (大括号里面用逗号隔开)
操作演练
touch 1.txt #创建名为1.txt的空文件
(八)ln 创建文件或目录软/硬链接
ln <源文件路径> <硬链接路径> #创建硬链接;相当于创建一个备份
-s <源文件路径> <软链接路径> #创建软连接;相当于是一个快捷方式
Linux 系统中,文件数据和文件名是分开存储的
软链接和硬链接有什么区别呢?
(九)cp 复制文件或目录
cp [选项] 源文件或目录的路径 ... 目标的路径 #复制文件或目录
\cp -f #强制复制且不提示(\的作用是因为系统已经自动设置cp -i的别名命令)
cp -r #复制目录
cp -p #复制保留属性
cp -a #相当于是-pr 的组合选项,复制并保留原属性
注意:复制多个文件或目录时,目标路径必须是存在的路径
操作演练
\cp -f /root/zzr/1.txt /root/1 #复制文件1.txt到目录1中
cp -r /root/101 /root/zzr #复制目录101到目录zzr中
cp -rp /root/102 /root/zzr #复制目录102到目录zzr中,且保留原始属性
(十)rm 删除文件或目录
rm # 删除文件
-f #强制删除文件
-r #删除目录,表示递归删除整个目录树(谨慎使用)
操作演练
rm 2.txt #删除2.txt文件
rm -rf 101 #强制递归删除101目录整个目录树
重点注意:千万千万谨慎使用,最好不用 rm -rf /*命令,此命令代表删除根目录下所有目录及文件
(十一)mv 移动文件或目录;修改单个文件的文件名
mv #移动文件或目录到指定的路径;修改单个文件的文件名
操作演练
mv zzr /root/5 #移动zzr目录到5目录
mv 5 host #将目录5改名为host
(十二)rename 批量修改文件名
rename 旧字符 新字符 目标文件 #批量修改文件名
操作演练
rename txt dox *.txt #将所有后缀为.txt的文件名字中txt修改为dox
(十三)find 根据条件查找文件或目录
find 指定目录 指定条件
-name #根据文件名查找,支持使用通配符“*”和“?”
-size #根据文件或目录大小查找,+或-xxK xxM xxG
-user #根据用户名查找
-type #根据文件类型查找
-type f #查找当前目录及其子目录中所有文件
-type d #查找当前目录及其子目录中所有目录
-a #多条件组合在一起使用,表示“和,且”的意思
-o #多条件组合在一起使用,表示“或”的意思
操作演练
find -name *dox #查找以名称后缀为*.dox的文件
find /root -size -10M #查找root目录中小于10M的文件和目录
find /root -size -10M -a -name *.dox #查找root目录中小于10M且是*.dox的目录或文件
find -size +10M -o -name *.dox #查找当前目录中大于10M或名字中有.dox的文件或目录
find -type f #查找当前目录中的文件
find -type d #查找当前目录中的目录
(十四)其他查找文件命令
除了find可以根据条件查找文件或目录以外,还可以使用which、whereis、locate来查找文件