帮助指令 man,help
1. man
当我们想要了解某个命令如何使用,及选项的含义是什么以及配置文件的帮助信息时,可以使用 man [命令或配置文件],这样便可以获得到帮助提示信息了。
语法格式:man [命令或者配置文件]
比如,常用的ls命令,我们想要查看其选项参数有哪些,可以使用man ls
来查看帮助信息。
通过键盘上的上下键来进行帮助信息滚动,然后使用q来进行退出
2. help
help 指令,用于获得shell内置命令的帮助信息。
语法格式:help 命令
Shell 内置命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件,比如我们常常使用的切换目录 cd命令
(tip:可以通过type 命令来确定一个命令是否为Shell内置命令)。
type cd # 查看命令是否为Shell内建命令
help cd # 查看cd命令的帮助信息
文件目录类常用指令
1. pwd 指令
pwd指令,用于显示当前工作目录的绝对路径。
语法格式:pwd
比如,我们切换到home目录下,然后查看当前目录的绝对路径
cd /home # 切换目录到home目录下
ls # 查看信息
pwd #查看当前工作目录的绝对路径
2. ls 指令
ls指令,用于查看当前工作目录下的文件和目录名信息。
语法格式:ls [选项] [目录名或者文件名]
常用选项:
- -a : 显示当前目录的所有文件和目录,包括隐藏的目录和文件。
- -l : 以列表的方式显示信息。
cd /home #切换工作目录
ls # 查看当前目录下的子文件和目录信息
ls -a # 查看所有当前目录下的子文件和目录信息
ls -l # 以列表的方式显示信息
3. cd 指令
cd 指令,就是切换工作目录和路径的指令,它可以是绝对路径和相对路径名的切换。
语法格式:cd [参数]
选项参数列表及用法说明:
cd ~
: 回到自己的家目录cd :
: 回到自己的家目录cd..
: 回到当前目录的上一级目录
3.1 家目录和根目录的区别
~ 代表是home目录,也就是家目录, / 代表的是根目录 。用户登录后在 家目录 ,可使用pwd命令查看,普通用户为 /home/用户名,root用户为/root 。根目录是在最顶端的目录。
比如,我们切换到某一普通用户的目录下,然后使用cd ~
即回到家目录,看最终的目录是否回到了home目录。
cd /home # 切换到home目录
ls
cd cat/ # 切换到cat 目录
pwd # 查看当前目录的绝对路径
cd ~ # 切换工作目录到家目录
pwd # 查看当前目录的绝对路径
测试cd ..
返回上级目录
cd /home/cat # 切换到home下的cat目录
pwd
cd .. # 返回到上级目录
pwd
cd .. # 返回到上级目录
pwd
cd .. # 根目录为顶级目录,无法再返回上级目录
4. mkdir 和 rmidr 以及 touch 指令
4.1 mkdir 创建目录
mkdir指令用于创建目录。
语法格式:mkdir [选项] 要创建的目录名
。
常用选项 -p ,创建多级目录。
例如:在home目录下创建一个目录test1为单级目录,然后再创建一个car目录,里面包括一个parts子目录。
cd /home
ls
mkdir test1 # 创建test1单级目录
ls
mkdir -p car/parts # 创建一个多级目录
ls
cd car/ # 进入到car目录中查看子目录parts是否创建成功
ls
4.2 rmdir 删除空目录
rmdir指令的作用为删除空目录。
语法格式:rmdir [选项] 要删除的空目录
rmdir 删除的是空目录,如果目录下存在内容时无法删除,删除非空目录时,使用rm -rf 要删除的目录名
来进行删除。
例子:删除刚刚创建的test1目录,以及car目录(包含一个子目录parts)中所有的内容
cd /home # 切换到home目录下
rmdir test1 # 删除test1目录
ls
rm -rf car # 删除car目录下的所有内容(rmdir只能删除空目录,所以rmdir不适用,使用rm 指令)
ls
4.3 touch 创建空文件
touch 指令用于创建空文件。
语法格式:touch 文件名称
在根目录下创建一个a.txt的文件
cd ~ # 切换到根目录下
ls
touch a.txt # 创建a.txt的空文件
ls
5. cp 和 rm 指令
5.1 cp 指令
cp 指令拷贝文件到指定目录。
语法格式:cp [选项] source dest
,(source即为源文件名,dest为目的文件名)。
常用选项:-r ,递归复制整个文件夹。
注意,使用递归复制某个文件夹时,如果在复制的过程中,出现重名的文件,想跳过重名文件不覆盖,且不进行信息提示的话,使用\cp -r XXXX
。
在home目录下创建一个car目录,然后在car目录里面新建一个test.txt文件和一个test目录,同时在home目录下面新建一个demo目录,最后将car目录及其中中的内容拷贝到demo目录中。
cd /home
ls
mkdir car #新建car目录
ls
cd car/ 切换到car目录中
mkdir test # 新建test子目录
touch test.txt # 新建test.txt文件
ls
cd /home
mkdir demo #新建demo目录
cp -r car demo #将car中的所有内容拷贝到demo目录中去(选项参数-r,递归拷贝)
cd demo/ #切换到demo目录中进行查看
ls
cd car/
ls
5.2 rm 指令
rm 指令移除文件或者移除目录。
语法格式:rm [选项] 要删除的文件或者目录名
常用选项:
- -r : 递归删除整个文件夹
- -f : 强制删除不提示
例子:将刚刚创建的demo目录删除,包括其中的内容,以及car目录也进行删除。
cd /home
ls
rm -rf demo
rm -rf car
ls
6. mv 指令
mv 指令移动文件与目录或者重命名
语法格式:
mv oldNameFile newNameFile # 重命名
mv /temp/movedfile /targetFolder #移动文件
将根目录下的a.txt文件重命名为b.txt,然后将b.txt移动到文档目录下
cd ~ #切换到根目录下
ls #查看当前目录的内容
mv a.txt b.txt #将a.txt文件重命名为b.txt
ls
mv b.txt /root/文档 #将b.txt文件移动到root下面的文档目录中去
ls
cd /root/文档
ls
7. cat 指令
cat 查看文件内容
语法格式:cat [选项] 要查看的文件
常用选项:-n ,显示行号
参数说明:
- -n 或 --number:由 1 开始对所有输出的行数编号。
- -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
- -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
- -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
- -E 或 --show-ends : 在每行结束处显示 $。
- -T 或 --show-tabs: 将 TAB 字符显示为 ^I。
- -A, --show-all:等价于 -vET。
- **-e:**等价于"-vE"选项;
- **-t:**等价于"-vT"选项;
cat 只能浏览文件,而不能修改文件,为了浏览方便一般结合 |more指令。
cat -n /etc/profile |more
比如,查看Hello.java,并且查看时想看到它的编号
cat -n Hello.java
8. more 和 less 指令
8.1 more指令
more指令时一个基于vi编辑器的文本过滤器,它以全屏的方式按页显示文本文件的内容。more指令中内置了若干快捷键。
more与cat类似,但是more指令是以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,按 h 。
语法格式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
参数:
- -num 一次显示的行数
- -d 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
- -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
- -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
- -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
- -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
- -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
- -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
- +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
- +num 从第 num 行开始显示
- fileNames 欲显示内容的文档,可为复数个数
常用操作命令:
- Enter 向下n行,需要定义。默认为1行
- Ctrl+F 向下滚动一屏
- 空格键 向下滚动一屏
- Ctrl+B 返回上一屏
- = 输出当前行的行号
- :f 输出文件名和当前行的行号
- V 调用vi编辑器
- !命令 调用Shell,并执行命令
- q 退出more
8.2 less 指令
less是用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持显示各种终端。less指令在显示原始文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于大型文件具有较高的效率。
less 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。
语法格式:less [选项参数] 文件
参数说明:
- -b <缓冲区大小> 设置缓冲区的大小
- -e 当文件显示结束后,自动离开
- -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
- -g 只标志最后搜索的关键词
- -i 忽略搜索时的大小写
- -m 显示类似more命令的百分比
- -N 显示每行的行号
- -o <文件名> 将less 输出的内容在指定文件中保存起来
- -Q 不使用警告音
- -s 显示连续空行为一行
- -S 行过长时间将超出部分舍弃
- -x <数字> 将"tab"键显示为规定的数字空格
- /字符串:向下搜索"字符串"的功能
- ?字符串:向上搜索"字符串"的功能
- n:重复前一个搜索(与 / 或 ? 有关)
- N:反向重复前一个搜索(与 / 或 ? 有关)
- b 向上翻一页
- d 向后翻半页
- h 显示帮助界面
- Q 退出less 命令
- u 向前滚动半页
- y 向前滚动一行
- 空格键 滚动一页
- 回车键 滚动一行
- [pagedown]: 向下翻动一页
- [pageup]: 向上翻动一页
9. echo 指令
echo指令,输出内容到控制台。
语法格式:echo [选项] 输出内容
比如输出"helloworld ",echo helloworld
,选项参数可以通过man指令来进行查看。
echo的详细用发可以参考 Shell echo命令 | 菜鸟教程 (runoob.com)
10. head 和 tail 指令
head指令用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
语法格式:
head 文件 # 查看文件前10行内容
head -n X 文件 # 查看文件前X行内容,x可以是任意行数
tail 用于输出文件中尾部的内容,默认情况下,tail指令显示文件的末尾10行内容。(与head指令恰好相反)
tail 文件 # 查看文件末尾10行内容
tail -n X 文件 # 查看文件末尾X行内容,x可以是任意行数
tail -f 文件 # 追踪文档更新
例子:查看/etc/profile的前5行和末尾5行的内容信息
head -n 5 /etc/profile
tail -n 5 /etc/profile
11. > 输出重定向 和 >> 追加指令
语法格式:
ls -l>文件
,将列表的内容写入到文件中(覆盖写模式)。ls -al>>文件
,将列表的内容追加到文件中(末尾追加模式)。cat 文件1>文件2
,将文件1的内容覆盖到文件2中去。echo "内容">>文件
,将“内容”追加到文件末尾中去。
例如:在home目录下创建一个demo目录,然后里面分别创建a.txt文件(空文件)和b.txt文件(有一段字符‘test01’),然后分别进行上面语法格式的练习。
cd /home
mkdir demo
cd demo/
touch a.txt # 创建一个空的文件a.txt
vim b.txt # 使用vim编辑器,创建b.txt并且编辑其中的文本内容
ls
ls -l>a.txt # 将列表中的内容写入到文件a.txt中
vim a.txt # 使用vim编辑器查看a.txt中的内容
ls -al>>a.txt # 将列表中的内容追加到a.txt中
vim a.txt
cat a.txt>b.txt # 将a.txt的内容覆盖到b.txt中
vim b.txt
echo helloworld >> b.txt #对b.txt文件末尾追加hellowold
vim b.txt
只要记住一个>是覆盖模式,两个>的话就是追加写模式即可。
12. ln 指令
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
软连接也称为符号连接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
软链接:
- 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
- 2.软链接可以 跨文件系统 ,硬链接不可以
- 3.软链接可以对一个不存在的文件名进行链接
- 4.软链接可以对目录进行链接
硬链接:
- 1.硬链接,以文件副本的形式存在。但不占用实际空间。
- 2.不允许给目录创建硬链接
- 3.硬链接只有在同一个文件系统中才能创建
语法格式:ln -s [原文件或目录][软链接名]
命令参数
-
必要参数:
-
–backup[=CONTROL] 备份已存在的目标文件
-
-b 类似 –backup ,但不接受参数
-
-d 允许超级用户制作目录的硬链接
-
-f 强制执行
-
-i 交互模式,文件存在则提示用户是否覆盖
-
-n 把符号链接视为一般目录
-
-s 软链接(符号链接)
-
-v 显示详细的处理过程
-
-
选择参数:
-
-S "-S<字尾备份字符串> "或 “–suffix=<字尾备份字符串>”
-
-V “-V<备份方式>“或”–version-control=<备份方式>”
-
–help 显示帮助信息
-
–version 显示版本信息
-
例子,为Hello.java 创建一个软连接demoLink,然后查看信息。
ln -s Hello.java demoLink #为Hello.java 创建一个软连接demoLink
ls
ll # ls -l 的缩写,就是按列表的形式查看当前目录的内容信息
12. history 指令
history指令,用于查看已经执行过的历史命令,也可以执行历史指令。
语法格式:
history # 显示所有的历史指令
history X # 显示最近使用过的X个指令
-a | 写入命令记录 |
---|---|
-c | 清空命令记录 |
-d | 删除指定序号的命令记录 |
-n | 读取命令记录 |
-r | 读取命令记录到缓冲区 |
-s | 将指定的命令添加到缓冲区 |
-w | 将缓冲区信息写入到历史文件 |