Linux Shell的学习
文章平均质量分 50
shell的学习记录
Qiu_SaMa
从事嵌入式单片机项目的开发和设计
展开
-
9.2 sed编辑器基础
1.更多的替换选项s命令的另外一些选项。1.1 替换标记替换命令在替换多行中的文本时能正常工作,但默认情况下它只替换每行中出现的第一处。要让替换命令能够替换一行中不同地方出现的文本必须使用替换标记。替换标记会在替换命令字符串之后设置。s/pattern/replacement/flags有4种可用的替换标记: 形式 描述 1 数字 表明新文本将替换第几处模式.原创 2021-10-07 22:40:38 · 162 阅读 · 0 评论 -
9.1 shell文本处理
通常shell脚本最大的用途就在于解析和显示文本文件中的数据,比如日志文件和错误文件。Linux环境包含了两个非常有用的工具:sed和gawk,两者都能够在shell脚本中处理文本数据。1.sed编辑器sed编辑器被称为流编辑器(stream editor),和普通的交互式文本编辑器恰好相反。在交互式文本编辑器中(如vim),可以用键盘命令来交互式地插入、删除或替换数据中的文本。 流编辑器则会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。sed编辑器可以根据命令来处理数原创 2021-10-06 23:33:43 · 554 阅读 · 0 评论 -
8.2 shtool库的使用
GNU shtool shell脚本函数库提供了一些简单的shell脚本函数,可以用来完成日常的shell功能,例如处理临时文件和目录或者格式化输出显示。1.下载及安装shtool库首先是将GNU shtool库下载并安装到系统中,如此才能在自己的shell脚本中使用这些库函数。shtool库软件包的下载地址是:ftp://ftp.gnu.org/gnu/shtool/shtool-2.0.8.tar.gz下载后将文件复制到主目录中,再使用tar命令提取文件。2.构建库原创 2021-10-04 20:02:42 · 1031 阅读 · 0 评论 -
8.1 shell函数的使用
1.基本的脚本函数1.1创建函数:name(){ Command;}在调用函数时,bash shell会按命令在函数中出现的顺序依次执行,就像在普通脚本中一样。1.2使用函数:在行中指定函数名就行了。同样的,如果再函数被定义前使用,则是非法的。如果重定义了函数,新定义会覆盖原来函数的定义。1.3 返回值Bash shell 会把函数当作一个小型脚本,运行结束时会返回一个退出状态码。(1)默认退出状态码默认情况下,函数的退出状态码是函数中...原创 2021-10-04 19:57:07 · 136 阅读 · 0 评论 -
7.6 控制shell脚本
1.处理信号Linux利用信号与运行在系统中的进程进行通信。可以通过对脚本进行编程,使其在收到特定信号时执行某些命令,从而控制shell脚本的操作。1.1 捕获信号trap命令允许指定shell脚本要监看并从shell中拦截的Linux信号。如果脚本收到了trap命令中列出的信号,该信号不再由shell处理,而是由本地处理。格式:trap cmd signals在trap命令行上,只要列出想要shell执行的命令,以及一组用空格分开的待捕获的信号。可以用数值或Linux信原创 2021-10-04 19:52:37 · 366 阅读 · 0 评论 -
7.5 shell处理数据输出
1.标准文件描述符Linux用文件表述符(file descriptor)来标识每个文件对象。文件描述符是一个非负整数,可以唯一标识会话中打开的文件。每个进程一次最多可以有9个文件描述符。处于特殊目的,bash shell保留了前三个文件描述符(0,1,2): 文件描述符 缩写 描述 0 STDIN 标准输入 1 STDOUT原创 2021-10-04 19:47:07 · 326 阅读 · 0 评论 -
7.4 shell处理用户输入
1.命令行参数命令行参数允许在运行脚本时向命令行添加数据。1.1 读取参数Bash shell会将一些称为位置参数的特殊变量分配给输入到命令行中的所有参数。这也包括shell所执行的脚本名称。位置参数变量是标准的数字:$0:程序名(脚本名); $1:第一个参数; $2:第二个参数; 依次类推,直到$9,第9个参数;可以在shell脚本中像使用其他变量一样使用$1变量,shell脚本会自动将命令行参数的值分配给变量,不需要作任何处理。如果需要输入更多的命令行参数,则每个原创 2021-10-04 19:42:22 · 125 阅读 · 0 评论 -
7.3 shell脚本中的循环命令
1.for命令格式:for var in listdo commandsdone在list参数中,需要提供迭代中要用到的一系列值。在每次迭代中,变量var会包含列表中的当前值。第一次迭代会使用list中的第一个值,第二次使用list中的第二个值,以此类推,直到列表中的所有值都过一遍。在do和done语句之间输入的命令可以是一条或多条标准的bash shell命令。1.1 读取列表中的值for命令最基本的用法就是遍历for命令自身所定义的一系列值。fo..原创 2021-10-04 19:39:46 · 1893 阅读 · 0 评论 -
7.2 Shell脚本使用结构化命令
1.if-then语句最基本的结构化命令就是if-then语句:格式:if cmdthen cmdsfi含义:if 语句会运行 if 后面的那个命令,如果该命令的退出状态码为0,则 then 后面的命令就会被执行;如果 if 后面的命令退出状态码为非0的值,则 then 后面的命令就不会被执行,bash shell会继续执行脚本中的下一个命令。‘ fi ’表示if-then语句到此结束。在 then 部分可以使用不止一条命令,可放置多条命令。...原创 2021-10-04 19:36:46 · 160 阅读 · 0 评论 -
7.1 Linux shell基本脚本
1.使用多个变量shell脚本的关键在于输入多个命令并处理每个命令的结果,甚至需要将一个命令的结果传给另一个命令。shell可以将多个命令串起来,一次执行完成。如果要两个命令一起运行,可以把它们放在同一行中,命令间用分号(;)隔开。(注:shell脚本一行的最大字符数为255个字符。)2.创建shell脚本文件在创建shell脚本文件test1时,必须在文件的第一行指定要使用的shell,其格式为:#!/bin/bash# This script display th..原创 2021-10-04 19:33:39 · 288 阅读 · 0 评论 -
6.3 shell逻辑卷管理
逻辑卷管理器(Logical volume manager,LVM):通过将另外一个硬盘上的分区加入已有的文件系统,动态地添加存储空间。它可以让你在无需重建整个文件系统的情况下,轻松地管理磁盘空间。1.Linux中的LVM1.1 快照最初的Linux LVM允许在逻辑卷在线的状态下将其复制到另一个设备,这一功能叫作快照。1.2 条带化LVM2提过了条带化的功能,它可以跨多个物理硬盘创建逻辑卷。1.3 镜像LVM镜像,是一个实时更新的逻辑卷的完整副本。2原创 2021-10-02 00:14:52 · 138 阅读 · 0 评论 -
6.2 shell操作文件系统
1.创建分区首先,必须在存储设备上创建分区来容纳文件系统。分区可以是整个硬盘,也可以是部分硬盘,以容纳虚拟目录的一部分。fdisk工具用来帮助管理安装在系统上的任何存储设备的分区。它是一个交互式程序,允许输入命令来逐步完成硬盘分区操作。要启动fdisk命令,必须指定要分区的存储设备的设备名,另外还得有超级用户权限。2.创建文件系统要想知道某个文件系统工具是否可用,可以使用‘type’命令:type mkfs.ext4每个文件系统都有自己的创建命令,可以通过man命令查看.原创 2021-10-02 00:12:38 · 108 阅读 · 0 评论 -
6.1 Linux文件系统
1.基本的文件系统1.1 ext文件系统扩展文件系统(extended filesystem),它为Linux提供了一个基本的类Unix文件系统:使用虚拟目录来操作硬件设备,在物理设备上按定长的块来存储数据。ext文件系统采用名为‘索引节点’的系统来存储虚拟目录中所存储文件的信息。索引节点系统在每个物理设备中创建一个单独的表(称为索引节点表)来存储这些文件的信息。存储在虚拟目录中的每一个文件在索引节点表中都有一个条目。1.2 ext2文件系统2.日志文件系统日志文件系统为原创 2021-10-02 00:11:13 · 153 阅读 · 0 评论 -
5.2 shell处理文件权限
1.使用文件权限符1.1 权限符号含义: 1 2 3 4 5 6 7 8 9 10 - r w x r w .原创 2021-10-02 00:09:42 · 740 阅读 · 0 评论 -
5.1 shell用户管理
1.添加新用户命令:useradd2.删除用户命令:userdel默认情况下该命令只会删除/etc/passwd文件中的用户信息,而不会删除系统中属于该账户的任何文件。3.修改用户Linux提供了一些不同的工具来修改已有用户账户的信息: 命令 描述 1 usermod 修改用户账户的字段,还可以指定主要组以及附加组的所属关系 2原创 2021-10-02 00:07:43 · 290 阅读 · 0 评论 -
4.shell中环境变量
bash shell 用环境变量的特性来存储有关shell会话和工作环境信息。这也是存储持久数据的一种简便方法。1.全局环境变量全局环境变量对于shell会话和所有生成的子shell都是可见的。查看全局环境变量的命令:env printenv也可以使用echo命令显示变量的值,使用时注意必须在变量前面加上一个‘$’符号。如:echo $HOME(在变量名前加上'$'符号,可不仅仅是要显示变量的当前值,它能够让变量作为命令行参数。 如:ls $HOME 等...原创 2021-10-02 00:06:14 · 332 阅读 · 0 评论 -
3.4 理解shell的内建命令
1.外部命令:也被称为文件系统命令,是存在于bash shell之外的程序。它们并不是shell程序的一部分。外部命令程序通常位于/bin,/usr/bin,/sbin或/usr/sbin中。当外部命令执行时,会创建出一个子进程。这种操作被称为衍生(forking),外部命令就在衍生的子进程中被执行。2.内建命令:内建命令不要子进程来执行。它是作为shell工具的组成部分存在。如:cd 和 exit命令都内建在bash shell中。好用的内建命令:(1)hi原创 2021-10-02 00:02:54 · 121 阅读 · 0 评论 -
3.3 shell处理数据文件
1.排序数据命令:sort常用参数: -n 把数字识别成数字而不是字符,并按值的大小排序 -M 按月排序 -r 反序排序,升序变降序 2.搜索数据命令:grep格式:grep [options] pattern [file]如:搜索文件中指定字符的行:(在file1中搜索字符t的行)grep -n t file1grep命令还可..原创 2021-10-02 00:00:35 · 146 阅读 · 0 评论 -
3.2 shell监测磁盘空间
1.挂载存储媒体命令:mount要手动在虚拟目录中挂载设备,需要以root用户身份登录,或是以root用户身份运行sudo命令。媒体设备挂载到虚拟目录后,root用户就有了对该设备的所有访问权限,而其他用户的访问则会被限制。可以通过目录权限指定用户对设备的访问权限。使用mount的高级权限,可查看该命令的参数。2.卸载设备从Linux系统上移除一个可移动设备时,不能直接从系统上删除,而应该先将设备‘卸载’。命令:umount格式:umount [directory原创 2021-10-01 16:54:31 · 725 阅读 · 0 评论 -
3.1 shell监测程序
1.进程监测:命令:ps查看系统上运行的所有进程:ps -ef‘-e’参数:表示显示所有运行在系统上的进程;‘-f’参数:表示扩展输出,显示更多的进程信息;命令:top显示进程实时信息。2.结束进程:在Linux中进程之间通过信号来通信。进程的信号就是预定义好的一个消息,进程能识别它并决定是忽略还是作出反应。进程如何处理信号是由开发人员通过编程来决定的。Linux进程信号: 信号 名称 ...原创 2021-10-01 16:53:45 · 101 阅读 · 0 评论 -
2.4 shell查看文件内容
1.查看文件类型:命令:file file myFile2.查看整个文件:(1)命令:cat cat test cat -n test '-n'显示内容加上行号; cat -b test ‘-b’只给有文本内容的行加上行号; (2)命令:moremore命令会显示文本文件的内容,并在显示每页数据后停下来。可以说more命令是个分页工...原创 2021-10-01 16:50:53 · 4523 阅读 · 0 评论 -
2.3 shell处理目录
1.创建目录:Linux中用:mkdir命令如:mkdir New_Dir 要想创建多个目录和子目录,需要加入参数‘-p’:如:mkdir -p New_Dir/Sub_Dir/Under_Dir2.删除目录:删除目录是个棘手的事情,因为删除目录时,很可能会发生一些不好的事情。shell会尽可能防止出现不好的事情。命令:rmdirrmdir test_Dir默认情况下,rmdir命令只能删除空目录,当目录中有文件时,直接使用rmdir命令shell会.原创 2021-10-01 16:47:53 · 208 阅读 · 0 评论 -
2.2 shell处理文件
1.创建文件:创建空文件:touch test_onetouch 命令创建一个指定的新文件,文件的大小是0;touch命令还可以用来修改指定文件的访问时间:touch -a test_one注,当想查看文件的访问时间时,ls -l 命令并不能显示时间,需要加入参数 --time=atime:ls -l --time=atime test_one这样就可以看到文件的访问时间了。2.复制文件:复制命令:cp (copy的缩写)(1)一般cp命令需...原创 2021-10-01 16:47:06 · 377 阅读 · 0 评论 -
2.1 Linux发行版及使用shell
1.Linux发行版定义:我们将完整的Linux系统包称为发行版。不同的Linux发行版通常归类为3类:完整的核心Linux发行版; 特定用途的发行版; LiveCD测试发行版;2.使用shell1.shell提示符:/etc/passwd文件包含了所有系统用户账户列表,以及每个用户的基本配置信息。shell提示符:$,这个符号表示shell在等待用户输入。注:在不同的Linux发行版上,提示符可能会不同,在Ubuntu Linux中为xxx(当前用户ID名)@x.原创 2021-10-01 16:42:17 · 123 阅读 · 0 评论 -
1.2 GNU工具
操作系统除了需要由内核控制硬件设备外,还需要工具来执行一些标准功能,比如控制文件和程序。1.核心GNU工具:用以除了文件的工具; 用以操作文本的工具; 用以管理进程的工具;2.shellGNU/Linux shell是一种特殊的交互式工具。它为用户提供了启动程序,管理文件系统中的文件,和运行在Linux系统上的进程的途径。shell的核心是命令行提示符。它允许你输入文本命令,然后解释命令,并在内核中执行。shell命令:内部命令:完成如复制文件,移动文件,重命名原创 2021-10-01 16:39:30 · 228 阅读 · 0 评论 -
1.1 Linux内核的主要功能
Linux内核的主要功能:系统内存管理, 软件程序管理, 硬件设备管理, 文件系统管理,1.系统内存管理:2.软件程序管理:Linux操作系统将运行中的程序称为进程,内核创建了第一个进程:init,init进程用来启动系统上所有其他进程。当内核启动时,会将init进程加载到虚拟内存中。内核在启动其他任何进程时,都会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。一些Linux发行版使用一个表来管理在系统开机时要自动启动的进程。在Linux系统上,原创 2021-10-01 16:37:19 · 1397 阅读 · 0 评论