pwd 显示该shell的当前工作目录的完整路径名
ls 列出指定目录的目录内容
cd 更改shell的当前工作目录
没有什么特殊情况命令小写
~所在位置:当前工作目录
#当前用户为管理员root
$当前是普通用户
命令由三个基本部分组成:
命令、选项、参数
如下 -a --all 效果相同(--后面接完整单词)
ls -a 可以查看到隐藏文件
查看属性 ls -l 和-a 搭配
ls --help 可查看ls的相关搭配用法(--help不可写成-h)
若要查看文件夹属性:
要用-d 查看文件夹本身的属性,否则查看的是该文件夹子目录的属性
同时可以写成 ls -ld what
根据颜色区分文件类型:
蓝色:文件夹
和命令同样的颜色:普通文本文件
因为打开了workstation下root用户的图形化界面,所以会有更多的内容
常见命令
whoami :查看用户名
hostname:查看主机名
多条命令以分号空格
前后命令互不影响
date命令
utc时区是世界标准时间
timedatectl:时间控制命令比较全面列出信息
查看date命令相关参数:
可以用date --help查看相关用法
passwd:
修改当前密码
管理员修改密码可以直接设置,且密码设置简单也行
管理员也可给起他用户该密码:(且可以不知道用户原来的密码)
ctrl + d 退出登录(exit
ctrl + c 中断命令
clear清空屏幕(或ctrl +l
最前面的- 代表普通文本文件 txt
d 代表directory 目录
filemingl可以查看文件的类型
su - ,exit 从当前用户切换到另一个用户 ,用exit可以退回到管理员用户
cat:查看文件内容
/ 代表根目录
如上两图:二者命令效果相同(~代表当前目录,而当前目录就是根目录,所以可以省略
当查看的文件内容多时可以用其他的查看命令会更方便
more 文件:
按enter键继续查看后面的内容
less 文件:支持上下翻阅,输入q退出
输入/内容可以查找自己所查找的内容并以高亮呈现
如上查找do
head 文件 :默认查看文件的前10行
head -3 文件 :查看前3行
tail 文件:默认查看文件后10行
tail -2 文件 :查看最后2行
(空行也算)
tail -f 文件 :实时跟踪文件内容
wc命令:
计算文件中行、字、字符的数量
可以接受 -l 、-w、或 -c 选项。分别用于仅显示行数、字数或字符数
对内容二次处理(如下在统计属性后计算其行数
反斜杠换行
注意反斜杠后换行的内容和命令无缝连接,注意空格
history命令查看历史记录
!number 匹配历史记录的编号再重新执行该编号对应的命令
!string 再历史记录中查找到指定字符串开头的命令并重新执行(如果有多条则是最近的命令
文件
/bin 二进制文件
/sbin 管理员才能用的命令(普通用户只能执行/bin目录下的文件)
/run 临时缓存的文件
/var 主要用来存放日志
图上最前面的字母 对应的字体颜色 含义
b 黄色 代表磁盘、硬盘等块设备
c 棕色 代表键盘、鼠标等字符设备
(补充:长列表的第一个字符)
-
代表普通文件d
代表目录文件l
代表符号链接文件c
代表字符设备文件b
代表块设备文件s
代表套接字文件p
代表命名管道文件
.. 两点代表上一级目录
. 一点代表当前目录
. = /var(上图来说)
cd - 表示返回刚刚的目录
cd ~ 表示返回当前目录的家目录 (相当于cd空格)
cd . 表示返回当前目录
cd .. 表示返回上一级目录
从命令行管理文件:
ls命令具有多个选项,用于显示文件属性如下:
ls -l (长列表格式) 相当于ll
ls -a(包含隐藏文件在内的所有文件)
ls -R(递归方式,包含所有子目录的内容)
用touch创建文件,若创建重名文件,文件内容不会被覆盖,但时间会更改:
rm file 删除文件(无法删除带有文件的目录)
rm -r directory 删除含有文件的目录(加-f 则不再过问)
rmdir directory 删除空目录(等同于 rm -d)
当你用rm -r -f 删除时则不会再过问
mkdir创建目录命令
若父目录不存在可用 -p, 为请求目录的目标位置创建缺失的父目录
mv:
用mv实现重命名
用mv实现文件移动
将文件移动并重命名
cp拷贝:(注意如果目标文件已存在,则cp命令会覆盖该文件)
cp file newfile 复制文件(属性可能发生改变,比如时间
可以看到时间不同(but11.txt和but.txt)
添加-p选项可以不改变属性
可以看到but22.txt和but.txt的创建时间相同(but.txt是被复制的源文件)
cp -r directory newdirectory 复制目录及其内容
若复制过去的文件夹不存在,在复制过程中会自动创建
(补充:rm -r ,cp -r , ls -R 中的r一般是对文件本身的递归,R一般是对属性的递归
制作文件间的链接(创建指向同一文件的多个名称,可创建硬链接或软链接实现)
创建硬链接:
如上索引号相同,but11是but的硬链接
(注意:
1、当一方文件内容被修改,另一个也将同步
2、创建硬链接时一般名字不能一样,除非在不同路径
3、除了查看索引号可以知道是否是硬链接外,还可以通过参数(用户权限后面那个数字)
删掉一方不影响另一方
查找索引号 ls -i (索引号是有且唯一
硬链接弊端
1、不能对目录制作硬链接
2、不能跨文件系统制作硬链接
3、不能够对特殊设备制作硬链接
a
(补充:df命令可以查看位于不同文件系统上的目录)
软链接
(也称符号链接,软链接不是常规文件,而是指向现有文件或目录的特殊类型的文件)
其可以链接位于不同文件系统上的两个文件,可以指向目录或特殊文件,而不仅限于常规文件
制作软链接
当一方文件内容删除,另一方也会同步
上图可以看到二者索引号不同,且软链接的颜色不同,上图长列表的第一个字符是l(表示软链接)。软链接是通过指向目标文件的路径信息实现链接的。同时,符号链接文件的属性和权限也是不同于目标文件的,因为它们是两个独立的文件,具有各自的属性和权限。
当把原来的文件名改了之后,对应的软链接会出现上图颜色的变化(当把名字改回去后,软链接又恢复了蓝色的样子)
为什么下面的文件大小不同?
软链接的大小由源文件名字字符个数决定(tomorrow.txt的名字有12个字符)
(补充:当目标文件(软链接指向的文件)被删除时,软链接依旧指向改文件(只不过变成指向缺失的文件),此时软链接又叫"悬挂的软链接",当再创建一个与目标文件重名的文件时,软链接不再悬挂,而是指向这个重名的新文件)-->硬链接不会
符号链接本身是一个文件,它存储了指向目标文件的路径信息,可以看作是一条快捷方式或者一条符号连接的路径,而目标文件则是一个普通文件或者其他文件类型,它的内容存储在磁盘上对应的数据块中。
echo输出字符串
通过重定向符号>将内容存入文件中:
若写入的文件不存在则会自动创建(如上but)。且echo > 会覆盖原有信息
echo >>追加内容
将文件内容清空 >
echo命令用于显示波形符字符~的值
echo命令也可用于显示大括号和变量扩展字符等的值
扩展字符:
使用shell扩展匹配文件名
当创建一个文件其文件名中间有空格时,用双引号将名字引起来,否则创建的是两个文件
用通配符匹配:
波形扩展符~
可匹配当前用户的主目录
大括号扩展{}
用于生成任意字符串,大括号包含字符串的逗号分隔列表或顺序表达式。大括号扩展可以相互嵌套。双句点语法(..)可扩展成一个序列,{a..d}扩展为a b c d
变量扩展
将数值分配给变量,使用变量扩展将变量名称转换为命令行上的值,如果字符串以美元符号$开头,那么shell就会尝试将该字符串的其余部分用作变量名称,并将它替换为变量中包含的任何值
为避免因其它shell扩展引起的错误,可将变量名称放在大括号中
命令替换
允许命令的输出替换命令行上的命令本身。当命令括在括号中并且前面有美元符号$时,会发生命令替换。$(命令)形式可以互相嵌套多个命令扩展
(补充:也可以用反引号,注意反引号不可以嵌套)
防止参数被扩展
反斜杠\是Bash shell中转义字符,防止紧随其后的字符被扩展
单引号‘ 和双引号’‘ 都可以组织参数被扩展
区别:
单引号’ 阻止所有shell被扩展,双引号‘’ 可以阻止大部分shell扩展
双引号‘’ 可以阻止通配和shell扩展,允许命令和变量替换
获取帮助
(未指定章节则默认为第一章节)
根据关键字搜索man page
(man命令-K(大写)选项执行全文本页面搜索,使用更多资源,耗费更长时间。-k(小写)仅搜索标题和描述)
上图可以发现passwd: nothing appropriate.,看网上原因说系统更新太新了,帮助的数据库还没更新。可用mandb命令进行更新
更新完后再进行man -k passwd查询
可以发现就可以找到相关结果了。
man也有自己的man page
所有man page都位于/usr/share/man。
可用whereis命令查找位于/usr/share/man目录中的二进制文件、源代码和man page
用whereis命令不止可以查找出位于该处的信息
这个命令的输出通常会包括三个路径:
- 可执行文件路径:该路径指向
passwd
命令的可执行文件。- 手册页路径:该路径指向
passwd
命令的手册页(manual page)文件。- 源码路径:这是可选的,如果有的话,它指向
passwd
命令的源代码文件路径。阅读info文档,用pinfo命令启动info文档查看器。
得到如下图结果
而pinfo tar
pinfo阅读器比原始的info命令更加高级。若不带参数运行pinfo命令将打开顶级目录。(info会查找匹配的man page并显示相应内容)
pinfo命令和man命令采用了略有不同的导航击键操作
help:是shell内置的命令,用于提供特定命令的简短帮助信息。它主要用于查看shell内置命令的使用方法和概要,而不是提供全面的手册页内容。(显示内部命令的帮助信息
通常,使用"help"命令时,你需要提供命令名称作为参数,例如:"help cd"将会显示有关"cd"命令的简短帮助信息。
help
是Shell内置的命令,用于获取Shell内置命令的帮助信息。--help
是许多可执行程序的通用选项,用于获取特定命令或程序的帮助信息。请注意,不是所有的命令都支持
--help
选项,因为这是可选的。而对于Shell内置命令来说,只能使用help
命令来获取帮助信息,而无法使用--help
。不过,大多数常见的命令都支持--help
选项,并且在给出该选项后会显示相应的帮助文档。
内置命令:这些命令是嵌入在Shell解释器中的特殊命令。它们直接由Shell解释器执行,无需调用额外的可执行文件。例如,
cd
、echo
和help
是常见的内置命令。可以使用help
命令获取内置命令的帮助信息,例如help cd
。外部命令:这些命令是独立的可执行程序,存储在系统的文件系统中。它们通过Shell解释器调用并执行。例如,
ls
、grep
和cat
都是外部命令。可以使用--help
或者运行命令时不带参数获取外部命令的帮助信息,例如ls --help
或者ls
。