Shell基本的bash shell命令_Linux基础Shell篇02

2026年01月21日/ 浏览 9

Shell基本的bash shell命令_Linux基础Shell篇02

01:Shell概述认识Shell_Linux基础Shell篇01

02主要按照书的顺序进行基本的bash shell进行,一边实操一边记录。

1. Shell 启动!

查看用户使用的Shell,在/etc/passwd文件包含了所有系统用户账户列表以及每个用户的基本配置信息。

sudo cat /etc/passwd #查看/etc/passwd
我的账户信息

每个条目有七个字段,字段之间用冒号分隔。系统使用字段中的数据来赋予用户账户某些特定特性。其中的大多数条目将在第7章有更加详细的介绍。现在先将注意力放在最后一个字段上,该字段指定了用户使用的shell程序。

我是之前美化过Shell,将/bin/bash修改成了/usr/bin/zsh并安装了插件。

1.1 Shell提示符

简单的说,这就是Shell的提示符:

提示符

1.2 Bash手册

在Linux中查看使用手册,可以帮助你更多了解命令的用法,虽然很多人包括我都不怎么都使用手册,而且平时用的话就是那几条命令,基本上是现用现查,但还是要说读手册还是很有用的。

使用命令man,如读apt安装命令的手册。

man apt#阅读apt
apt的使用手册

按Q可以退出阅读。

想问有没有中文的命令使用手册,经过我上网查找,找到了。

Ubuntu22.04安装

sudo apt-get insatll -y manpages-zh

等待安装完成。使用方法如下:

#比如查看apt命令的使用手册 man -L zh_CN.UTF-8 ls #-L 是指定使用的语言,如果这个命令没有中文,那就默认显示英文 #你可以使用别称简化这条命令

ls命令的中文使用手册 设置别名的方法,如下:

~/.bashrc:用于个人用户的Bash配置;~/.bash_profile:用于个人用户的Bash登入配置;/etc/bash.bashrc:用于全局Bash配置;/etc/profile:用于全局登录配置;

我直接在/etc/profile文件里改了。

sudo vim /etc/profile #在文件里添加 alias mancn=man -L zh_CN.UTF-8 #:wq保存退出 source /etc/profile#重新启动配置文件 su xxx登入用户
添加别名

效果:

mancn中文使用手册

2.基础命令

2.1 浏览文件系统

在Linux系统中,使用/而非在Win系统的\

关于文件系统,常见Linux目录名称如下:

目录用途/虚拟目录的根目录,通常不会在这里储存文件/bin二进制目录,存放在许多用户级GNU工具/boot启动目录,存放启动文件/dev设备目录,Linux在这里创建设备节点/etc系统配置文件目录/home主目录,Linux在这里创建用户目录/lib库目录,存放系统和应用程序的库文件/media媒体目录,可移动媒体设备的常用挂载点/mnt挂载目录,另一个可移动媒体设备的常用挂载点/opt可选目录,常用于存放现有硬件及当前进程的相关信息/proc进程目录,存放现有硬件及当前进程的相关信息/rootroot用户的主目录/sbin系统二进制目录,存放许多GNU管理员级工具/run运行目录,存放系统运作时数据/srv服务目录,存放本地服务的相关文件sys系统目录,存放系统硬件信息的相关文件tmp临时目录,可以在该目录中创建和删除临时工作文件usr用户二进制目录,大量用户级的GNU工具和数据文件都储存在这里var可变目录,用以存放放经常变化的文件,比如日志文件

命令cd:切换目录的命令

这里有一个绝对文件路径和相对文件路径,很好理解的

cd /usr/bin cd /etc/profile ... #/开头,指明文件系统的根目录,确切位置 cd /home/panda #绝对目录 cd Download #相对目录 # 基于当前位置的目标文件路径
实例

命令pwd:显示当前所在目录。

有两个特殊字符可用于相对文件路径中:

.:表示当前目录;..:表示当前目录的父目录;

2.2 文件和目录列表

命令ls:查看目录的文件

ls a #要把隐藏文件和普通文件及目录一起显示出来。 ls -F #递归显示,推荐使用tree ls -l # 显示长列表,常用
示例

每一行都包含了关于文件(或目录)的下述信息:

文件类型,比如目录(d)、文件(-)、字符型文件(c)或块设备(b);

文件的权限;

文件的硬链接总数;文件属主的用户名;文件属组的组名;文件的大小(以字节为单位);文件的上次修改时间;文件名或目录名;

有关ls的进阶使用,什么的,不常用,用到了再说。推荐工具tree

sudo apt install -y tree
树结构

2.3 处理文件

①创建空文件命令:touch

touch Test
创建空文件
里面是空的

②复制文件命令:cp

对系统管理员来说,在文件系统中将文件和目录从一个位置复制到另一个位置可谓家常便饭。

cp source destination

有关cp的有关选项

- i #最好是加-i选项,强制shell询问是否需要覆盖已有文件,回答y或n -R # 可以用它在一条命令中递归地复制整个目录的内容

前面介绍了特殊符号可以用在相对文件路径中。其中的单点符(.)就很适合用于cp命令,记住,单点符表示当前工作目录。如果需要一个带有很长的源对象名的文件复制到当前工作目录中时,单点符能够简化该任务。

cp -i /etc/NetworkManager/NetworkManager.conf . ls -l NetworkManager.conf
示例

③制表符自动补全

Tab:补全命令,太基础了,不展开记了

④链接文件

链接文件是Linux文件系统的一个优势。如需要在系统上维护同一个文件的两份或多份副本,除了保存多份单独的物理文件副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方法。这种虚拟的副本就成为链接。链接是目录中指向文件真实位置的占位符。在Linux中有两种不同类型的文件链接:

符号链接;硬链接;

符号链接就是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件。这两个通过符号链接在一起的文件,彼此的内容并不相同。

要为一个文件创建符号链接,原始文件必须存在。然后可以使用ln命令以及-s选项来创建符号链接。

示例

需要注意的是符号链接文件大小数据文件的文件大小。两者不一样。

另一种证明链接文件是独立文件的方法是查看innode编号。文件或目录的innode编号是一个用于标识的唯一数字,这个数字由内核分配给文件系统中的每个对象。要查看文件或目录的innode编号,可以使用ls -i

ls -i
示例

编号不同,所以是不同的文件。

硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但是它们从更本上而言是同一个文件。引用硬链接文件等同于引用了源文件。要创建硬链接,原始文件也必须事先存在,只不过这次使用ln命令时不再需要加入额外的参数了。

ln test yinlianjie_test#创建硬链接
image-20231015193024361

硬链接创建的文件和源文件是同一个文件。innode编号是一样的。

编号一样 说明:只能对处于同一存储媒体的文件创建硬链接。要想在不同存储媒体的文件之间创建链接,只能使用符号链接。

对于链接,我做个测试就知道了,修改源文件的内容,看链接文件中的内容是否会改变。

刚开始文件内容

修改源文件的内容,再次打开三个文件,进行比较。

修改内容后

所以链接可以用于一份文件的,不同地方进行同步维护。

⑤重命名文件

命令:mv重命名文件称为移动,可以将文件和目录移动到另一个位置或重新命名。

mv 源文件 目标文件
示例

移动文件会将文件名从test更改到test_mv,但inode编号和时间戳保持不变。这是因为mv只影响文件名。也可以用来mv来移动文件的位置。

和cp命令类似,也可以在mv命令中使用使用-i参数。这样在命令试图覆盖已有文件时,你就会得到提示。

⑥删除文件

在Linux中删除文件叫做移除(remoing),使用rm命令进行删除。

-i #提示是否真的要删除该文件,bash shell没有回收站,文件一旦删除就没有了 -f #如果要删除很多文件且不提示符的打扰,可以用-f参数强制删除。

2.4 处理目录

①创建目录

命令:mkdir,目录长列表是以d开头的

mkdir -p New_Dir/Sub_Dir/Under_Dir#创建多个目录和子目录

②删除目录

删除目录的命令:rmdir,这个命令只能删除空目录。

使用rm命令可以删除多级目录,命令rm -ir xxx删除多级目录和大量文件。

rm -rf:命令既没有警告信息,也没有提示声音。慎用。

2.5 查看文件内容

①查看文件类型

命令file:是一个便捷工具,可以探测文件内部,文件是什么类型。

file test_mv
示例

②查看整个文件

命令cat:显示文本文件中所有数据;

cat test_mv
示例
-n #给所有行加上行号 -b #只给文本加上行号 -T #取消制表符

命令more:cat的缺陷是,一旦运行就是,无法控制了,意思就是它会全部打印出来。more命令会显现文件内容,但是每页都会停下来。可以实现分页浏览,q退出。

命令less:可以实现一些高级功能,如上下页翻动,能够控制。

③查看部分文件

命令tail:显示文件最后几行内容。默认情况下,它会显示文件的末尾10行。

命令head:会显示文件开头行的内容。默认情况下,它会显示文件前10行。

总结

本章介绍了bash shell的基础命令,下一章还是bash shell的命令介绍,更多关于系统的内容。基本还是按照书上的内容进行的,接触和熟悉Linux的

对这些命令都不陌生,都是基础的内容。

目前shell篇有文章如下:

01:Shell概述认识Shell_Linux基础Shell篇01

02:Shell基本的bash shell命令_Linux基础Shell篇02

picture loss