《Linux命令行与shell脚本编程大全》学习笔记——基本的bash shell命令

大多数Linux发行版的默认shell都是GNU bash shell。
/etc/passwd文件包含了所有系统用户账户列表以及每个用户的基本配置信息。
默认bash shell提示符是美元符号($),这个符号表明shell在等待用户输入。
man命令用来访问存储在Linux系统上的手册页面,手册页是由分页程序来显示的,分页程序是一种实用工具,能够逐页显示文本,可以通过点击空格键进行翻页,或使用回车键逐行查看,也可以使用箭头键向前向后滚动手册页的内容。

Linux在路径名中不使用驱动器盘符
Linux将文件存储在单个目录结构中,该目录称为虚拟目录,虚拟目录将安装在PC上的所有存储设备的文件路径纳入单个目录结构中。
Linux虚拟目录结构只包含一个称为根目录的基础目录。
现Linux使用正斜线(/)而不是反斜线(\)在文件路径中划分目录。在Linux中,反斜线用来标识转义字符,要是用在文件路径中的话会导致各种各样的问题。

在Linux PC上安装的第一块硬盘称为根驱动器,根驱动器包含了虚拟目录的核心,其他目录都是从这里开始构建的。Linux会在根驱动器上创建一些特别的目录,称为挂载点,挂载点是虚拟目录中用于分配额外存储设备的目录。

遍历目录:用切换目录命令cd
cd命令的格式:cd destination
绝对文件路径:以正斜线(/)作为起始,指明虚拟文件系统的根目录。

ls命令最基本的形式会显示当前目录下的文件和目录
Linux经常采用隐藏文件来保存配置信息。在Linux上,隐藏文件通常是文件名以点号开始的文件。
ls -F:轻松区分文件和目录。
ls -a:把隐藏文件和普通文件及目录一起显示出来,就得用到。
ls -R:列出了当前目录下包含的子目录中的文件。
ls -l:会产生长列表格式的输出,包含了目录中每个文件的更多相关信息。

在过滤器中使用星号和问号被称为文件扩展匹配(file globbing),指的是使用通配符进行模式匹配的过程。通配符正式的名称叫作元字符通配符(metacharacter wildcards)。除了星号和问号之外,还有更多的元字符通配符可用于文件扩展匹配。可以使用中括号。
如:ls -l my_s*t
ls -l f[a-i] ll

命令如下:
1、创建文件:
touch XXX:创建名为XXX的空文件,并将用户名作为文件的属主。
已存在XXX文件,再次使用touch XXX,会改变文件的修改时间
若要改变文件的访问时间用-a参数,即touch -a XXX。
若要显示访问时间,需要加–time=atime
即ls -l --time=atime XXX

2、复制文件:cp 源地址 目的地址
如果目标文件已经存在,cp命令可能并不会提醒这一点。
cp -i 源地址 目的地址,强制shell询问是否需要覆盖已有文件。

链接文件是Linux文件系统的优势,链接是目录中指向文件真实位置的占位符,在Linux中有两种不同类型的文件链接:符号链接和硬链接。符号链接是实实在在的文件,指向存放在虚拟目录结构中某个地方的另一个文件。
要为文件创建符号链接,原始文件必须事先存在,使用ln -s来创建符号链接,如ln -s 源文件 链接文件

3、重命名文件:mv 源文件名 新文件名
移动文件位置 mv 源文件名 目标文件位置

4、删除文件:rm 文件名
提示删除:rm -i 文件名
强制删除:rm -f 文件名

5、创建目录:mkdir 目录
想同时创建多个目录和子目录,加入-p参数,如:mkdir -p 多层目录

6、删除目录:rmdir 目录
默认情况下,rmdir命令只删除空目录,目录下有文件时,会拒绝删除。

rmdir -i 询问是否删除目录
rmdir -r 目录 删除目录及其下文件
rmdir -rf 强制删除目录及其下文件

7、查看文件类型:
file 文件
file 目录
file 链接文件

8、查看整个文件
cat 命令:显示文本文件中所有数据的得力工具
cat -n 文件:给所有的行加上行号
cat -b 文件:只给有文本的行加上行号
cat -T 文件:用^I字符组合替换所有制表符
more命令:显示文本文件的内容,但会在显示每页数据之后停下来,more命令只支持文本文件中的基本移动。
less命令:一次显示一屏的文件文本,能够识别上下键以及上下翻页键

9、查看部分文件
tail命令:显示文件最后几行的内容,默认情况下,会显示文件的末尾10行
tail -n 2 文件名:指定显示文件末尾N行
tail -f 文件名:可以在其他进程使用该文件时查看文件的内容。tail命令会保持活动状态,并不断显示添加到文件中的内容。这是实时监测系统日志的绝妙方式

head命令:显示文件开头几行的内容,默认情况下,会显示文件的开头10行
head -n 文件名:指定显示文件开头N行

head命令没有tail命令那样支持-f参数特性。

默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户的进程。

ps -ef查看系统上运行的所有进程
-e参数指定显示所有运行在系统上的进程
-f参数扩展了输出

默认情况下,top命令在启动时会按照%CPU值对进程排序。可以在top运行时使用多种交互命令重新排序。
在这里插入图片描述
kill命令可通过进程ID(PID)给进程发信号。默认情况下,kill命令会向命令行中列出的全部PID发送一个TERM信号。只能用进程的PID而不能用命令名。

要发送进程信号,你必须是进程的属主或登录为root用户。
要检查kill命令是否有效,可再运行ps或top命令,看看问题进程是否已停止。

killall命令非常强大,支持通过进程名而不是PID来结束进程。killall命令也支持通配符,这在系统因负载过大而变得很慢时很有用。
如:killall http*

以root用户身份登录系统时,使用killall命令要特别小心,因为很容易就会误用通配符而结束了重要的系统进程。这可能会破坏文件系统。

挂载存储媒体
发行版不支持自动挂载和卸载可移动存储媒体,必须手动完成。
Linux上用来挂载媒体的命令叫做mount,默认情况下,mount命令会输出当前系统上挂载的设备列表。
mount -t type device directory
如:mount -t vfat /dev/sdb1 /media/disk

从Linux系统上移除一个可移动设备时,不能直接从系统上移除,而应该先卸载。
umount命令:卸载设备
格式为:umount [directory | device ]
umount命令支持通过设备文件或者挂载点来指定要卸载的设备。
如果有任何程序正在使用设备上的文件,系统就不会允许卸载它。

使用df命令:查看所有已挂载磁盘的使用情况。
df命令会显示每个有数据的已挂载文件系统。
df -h 会把输出中的磁盘空间按照用户易读的形式显示,通常用M来替代兆字节,用G替代吉字节。

du命令可以显示某个特定目录(默认情况下是当前目录)的磁盘使用情况。这一方法可用来快速判断系统上某个目录下是不是有超大文件。
默认情况下,du命令会显示当前目录下所有的文件、目录和子目录的磁盘使用情况,它会以磁盘块为单位来表明每个文件或目录占用了多大存储空间。对标准大小的目录来说,这个输出会是一个比较长的列表。
du -c:显示所有已列出文件总的大小。
du -h:按用户易读的格式输出大小,即K、M、G
du -s:显示每个输出参数的总计

默认情况下,sort命令按照会话指定的默认语言的排序规则对文本文件中的数据行排序。

grep命令:搜索数据,会在输入或指定的文件中查找包含匹配指定模式的字符的行。grep的输出就是包含了匹配模式的行。
格式:grep [options] pattern [file]

在这里插入图片描述
 gzip:用来压缩文件,压缩在命令行指定的文件,也可以在命令行指定多个文件名甚至用通配符来一次性批量压缩文件。
 gzcat:用来查看压缩过的文本文件的内容。
 gunzip:用来解压文件。

Unix和Linux上最广泛使用的归档工具是tar命令。tar命令是给整个目录结构创建归档文件的简便方法。
tar命令最开始是用来将文件写到磁带设备上归档的,然而它也能把输出写到文件里,这种用法在Linux上已经普遍用来归档数据了。
下面是tar命令的格式:
tar function [options] object1 object2 …

ps和top命令在判断系统的状态时特别重要,能看到哪些应用在运行以及它们消耗了多少资源。
mount命令可以将一个物理存储设备挂载到Linux虚拟目录结构上。umount命令用来移除设备。
sort工具能轻松地对大数据文件进行排序,便于组织数据;
grep实用工具能快速检索大数据文件来查找特定信息。
Linux上有一些不同的文件压缩工具,包括bzip2、gzip和zip。
每种工具都能够压缩大型文件来节省文件系统空间。
tar工具能将整个目录都归档到单个文件中,方便把数据迁移到另外一个系统上。

ps --forest 展示了子shell间的嵌套结构
ps -f也可以表现子shell的嵌套关系,通过PPID列显示出谁是谁的父进程
不使用bash shell命令或是运行shell脚本,也可以生成子shell。一种方法就是使用进程列表。

pwd;ls;cd /etc;pwd;cd;pwd;ls

通过命令列表来实现,只需要在命令之间加入分号(;)即可。
命令列表要想成为进程列表,这些命令必须包含在括号里,生成了一个子shell来执行对应的命令。
(pwd;ls;cd /etc;pwd;cd;pwd;ls)

sleep N将会话暂停10秒钟,然后返回Shell CLI提示符。

外部命令程序通常位于/bin、/usr/bin、/sbin或/usr/sbin中。
ps就是一个外部命令,可以使用which和type命令。当外部命令执行时,会创建出一个子进程。这种操作被称为衍生(forking)。外部命令ps很方便显示出它的父进程以及自己所对应的衍生子进程。
作为外部命令,ps命令执行时会创建出一个子进程。

history命令:通常历史记录中会保存最近的1000条命令。
内建命令和外部命令。外部命令会创建出一个包含全新环境的子进程,而内建命令则不会。相比之下,外部命令的使用成本更高。内建命令因为不需要创建新环境,所以更高效,不会受到环境变化的影响。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值