焦点热议:【linux】Linux基础以及安装 Linux常用知识总结
【第一小结】Linux 基础以及安装
linux 是一个UNIX类操作系统Linux 具有UNIX 的所有特性并且具有自己的特点: 开放性:源码开放,遵循OSI国际标准多用户多任务强大的稳定性:可以常年累月的开机不关机,工作良好的用户界面设备独立性:在Linux中只有文件的概念,Linux 没有可执行程序.exe这种说法,都只是看成一种文件丰富的网络功能:Linux独有安全性良好的可移植性标准兼容性:Linux是一个与POSIX相兼容的操作系统X Windows系统:适用于unix 机器的一个图形系统内存保护模式:Linux 使用处理器的内存保护模式来避免进程访问分配给系统内核或者其他进程的内存。Linux的主要组成部分:Linux内核、Linux shell 、Linux 文件系统、Linux 实用程序(utilities)和Linux应用程序(applications) 【Linux 内核】是Linux心脏,控制硬件、管理内存、提供接口、处理基本I/O;管理文件系统,为程序分配内存和CPU时间等。【linux shell】常见由:bourne shell(sh)、korn shell (ksh)、C shell(csh)、Bourne-again shell(bash)linux内核版本介绍:分为两种版本一种是内核版本(kernel)、一种是发行版本(distribution) major.minor.patchlevel 内核版本,其中major 为主版本、minor 为此版本如果minor 为奇数说明这个版本不是很稳定,minor 为偶数说明这个版本会比较稳定;patchlevel 表示修改次数。有几百种发行版本,目前比较流行的有:centos、ubuntu、red hat等等。linux与其他操作系统的基本区别(Windows、MS-DOS、OS/2、UNIX) MS-DOS没有完全发挥出CPU 的所有功能,linux开发了所有特性。并且是在CPU的保护模式下工作的。linux与unix相比,linux 是免费的、linux支持大多数硬件、unix更适用于相对成熟的领域。例如一些安全工程等最顶尖的硬件支持项目等。linux 与windows 相比:linux 的应用目标是网络、可选GUI、文件扩展名可设置、重新引导、命令区分大小写。linux安装这里就不多说了centos 就直接根据引导安装就好了linux的用户类型:linux 分为根用户(系统管理员)和普通用户两大类 root就是根用户,拥有超级管理员的权限普通用户由root 用户创造所有用户在系统中有唯一的用户名普通用户命名的时候不能够以数字、下划线作为第一个字符。linux的运行级别:所谓运行级别就是操作系统中当前正在运行的功能级别,这个级别从0~6 具有不同的功能。 运行级别可以通过telinit 命令来通知init具体见下表:级别 | 功能 (资料图) |
0 | 关机 |
1 | 单用户模式 |
2 | 多用户模式 |
3 | 完全多用户模式 |
4 | 没有用到 |
5 | X11 |
6 | 重启 |
【第二小结】Linux 的文件系统
linux 文件系统概述:通常把操作系统中与管理文件有关的软件和数据成为文件系统。linux 文件系统是采用树形结构的,根目录是/ 其他所有目录都是根目录的延伸linux 文件系统的特点: 采用树形结构,从根目录开始linux 的虚拟文件系统允许众多不同类型的文件系统共存,并支持跨文件系统的操作。linux 的文件是无结构字符流式文件,不考虑文件内部的逻辑结构,只把文件简单看做是一系列字符的序列。linux 的文件可由文件拥有者或超级用户设置相应的访问权限而受到保护。linux 把所有外部设备看做文件,可以使用与文件系统相同的系统调用和函数来读写外部设备。linux文件系统的组成下面介绍每个目录的含义:
/bin :二进制目录
/home :用户主目录的基点 目录,默认情况下每个用户的主目录都设置在该目录。
/lib :存放标准程序设计库的目录,又叫动态链接共享库目录,目录中存放的文件作用类似Windows 里的dll 文件
/etc:存放系统管理和配置文件目录
/dev :存放设备特殊文件目录,例如声卡文件,磁盘文件等
/usr : 最庞大的目录,存放应用程序的目录
/proc:虚拟目录,是系统内存的映射,可直接访问这个目录来获取系统信息。
/root :系统管理员的主目录
/var :存放系统产生的经常变化文件目录,例如打印机、日志文件等等
/tmp:存放公用临时文件目录
linux 文件系统类型(ext文件系统) ext 是扩展文件系统。但是由于ext 在稳定性、速度和兼容性方面存在缺陷,现在已经很少使用了后续linux 引入了 二级扩展文件系统(ext2),ext2是linux 默认的文件系统ext2是非日志文件系统,在关键行业应用中,这是个致命缺陷再后来ext2改进成为了ext3 ,ext3是一个日志文件系统,并且与ext2兼容ext3的特点:(1)高可用(恢复快、异常关机不需要检查)(2)数据的完整性(3)文件系统的速度快(4)数据转换(ext2 与ext3相互转换十分的方便,不需要格式化重新分区等等,只需要一个命令:tune2fs)(5)多种日志模式(journal日志、ordered预定、writeback回写);其中journal 模式将所有数据和元数据的改变都计入日志,安全,但是速度慢、需要更多额外磁盘访问;ordered 模式只有对文件系统元数据的改变才计入日志,但是保证数据在元数据之前被写入磁盘,是默认的ext3日志模式;writeback模式只有对文件系统元数据的改变才写入日志,但是元数据与数据之间的顺序不保证,这个是最快的日志模式后来呢出现了ext4 文件系统(ext3与ext4可以任意相互转换)ext4 是一种更高级的文件系统其他文件系统介绍(MS-DOS:使用在DOS\MS\OS/2的操作系统上;Swap:linux 中的交换分区;NTFS :Windows NT 文件系统)在linux中,每一个分区都是一个文件系统,都有自己的一个目录结构层次。linux 的最重要特征就是支持多种文件系统;linux 之所以支持多种文件系统,是因为其存在一个虚拟的文件系统(VFS)linux 文件目录的概念文件:是一组有名字由创建者定义的,具有文件名的一组相关元素的集合,文件可以是文本、视频、音频。
文件名:最多255字节、不可以使用"/"、转义字最好不要用、开头避免使用+ . - (linux 中. 开头是隐藏文件)
文件扩展名:linux中是有扩展名但是扩展名不代表这个文件可以执行,这个和Windows不太一样,linux 文件能不能执行与你文件的执行权限有关系。linux 的文件扩展名其实是任意长度的。
文件类型:
普通文件。也叫作常规文件,"-rw-r--r--" 其中第一个字符- 代表这个是一个普通文件。
目录文件。"drwxr-xr-x"的字符串,其中第一个字母d 就是代表目录文件。
设备文件。在Linux中输入输出设备被看做是特殊文件。"crw-rw-rw" c代表字符设备;"brw-rw----" b代表块文件。
符号链接文件。内容只有一个字符串,软连接的意思。以l 开头。
目录:是linux 文件系统中的一种特殊文件。
工作目录和用户主目录:工作目录是用户登录到linux 后所处于的目录;用户主目录是/home/ 下
路径:用/ 分开(Windows和它不一样,Windows是\)。分为绝对路径和相对路径。
文件操作命令(持续更新) cat 将文件以及内容输出到标准输出(屏幕)或者文件中(重定向)more 展示文本文件内容。一次一屏,满屏后停滞,可以做其他操作:回车则是向下一行移动、空格是显示文本的下一屏内容、d 表示向下半屏(默认11行)、b 表示向上显示一整屏、q 表示退出。less 和 more相似。允许用户page UP 、page DOWN-N 显示行号。tailf 等同于tail -f-n 表示 打印几行(末尾)-c 表示 打印几个字节(末尾)head -n 表示 打印几行(首行开始)-c 表示 打印几个字节(首行开始)改变文件或者目录存取权限的命令 用户和用户组 linux 内部使用UID标识各个用户,linux为每个文件都分配了一个文件所有者,成为文件主,文件主为linux 的用户,对文件的控制取决于文件主或超级用户。用户组是具有相同特性的用户的集合体。linux 中的每一个用户都属于一个用户组。系统可以对一个用户组的所有用户进行集中管理。linux中使用GID来表示用户组。linux 中规定了4中类型的用户:超级用户、文件主、同组用户、其他用户。存取权限 就是用来确定谁可以通过何种方式对文件和目录进行访问。linux系统中规定了三种:读(r)、写(w)、执行(x)读:对文件只允许指定用户展示里面内容;对文件夹只允许展示里面有什么样的文件写:对文件允许指定用户增删改查(打开、修改);对文件夹允许从该目录中删除或添加新的文件。执行:对文件就是说可以执行;对目录就是说可以使用cd 进入这个目录、可以在这个目录下进行查找。【chmod 命令】 rwx rwx rwx (文件主权限) (组用户权限) (其他用户权限)格式:chmod [who] [opt] [mode] 文件或目录名who 表示对象 : u 表示文件所有者g 表示同组用户o 表示其他用户a 表所有用户opt 表示操作: + 表示添加某个权限- 表示取消某个权限= 表示赋予给定的权限,并且取消原有的权限mode 表示权限: r 表示可读w 表示可写x 表示可执行上面说的事用字符表示的权限增减,其实我们还可以使用字符来代替
rwx看成二进制数,如果该位有权限,用1 表示,没有则用0 表示,例如:rwx r-x r- - 可表示为 111 101 100 , 再将其转换成一位八进制数就是754
常见权限数字表示如下表:
权限 | 对应二进制 | 二进制对应八进制 |
rwx rw- rw- | 111 110 110 | 766 |
rw- r-- r-- | 110 100 100 | 644 |
rwx r-x r-x | 111 101 101 | 755 |
r-- --- --- | 100 000 000 | 400 |
r-x r-- r-- | 101 100 000 | 540 |
chgrp [选项]... 所属组 文件或目录...
说明:chgrp 命令改变指定文件所属组的用户组,其中所属组可以使用户组的ID 也可以是用户组的组名。文件是用空格分开的要改变的文件列表,支持通配符。一般来说 ,linux 中一般只有超级用户才有这个权限。
一般用的选项是:-R //递归改变目录以及下面的所有子目录和文件的属组。
【chown命令】格式:chown [选项]... [用户][:[组]] 文件...
说明:chown 命令将指定文件的拥有者改为指定的用户或组。用户可以是用户名或者是用户ID。文件是用空格隔开的文件列表,支持通配符。在linux下一般只有超级用户才能使用该命令。
一般的选项是:-R /递归方式将其该变所属用户
连接文件命令链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。linux系统下的链接有两种一种是硬链接一种是软连接(符号链接)。
硬链接:指通过索引结点来进行的链接。在linux中,内核为每一个新创建的文件分配一个Inode(索引结点),文件属性保存在索引结点里,系统是通过索引结点(而不是文件名)来定位一个文件。在linux中可以通过命令让多个文件名指向同一索引结点,这样一个文件就有不同的文件名。
硬链接有两个限制:
(1)不允许给目录创建硬链接
(2)只有在同一文件系统中的文件之间才可以创建硬链接
软连接:软连接文件包含到另一个文件的路径名。当需要在不同的目录下用到相同的文件时,不需要再每一个目录下都存放该文件,只要在某个固定的目录下存放,然后在其他的目录下用命令link即可。这样不必重复的占用磁盘空间。
软连接没有硬链接的限制,可以给目录创建链接,可以链接不同文件系统的文件。当然,软连接也有硬链接没有的缺点。如果一个文件的绝对路径发生变化,则软连接会失效,但是硬链接不会出现这个情况。此外,软连接文件还需要系统额外空间用于建立新的索引结点和保存源文件的路径。
【ln 命令】格式:ln [选项]... 源文件或目录 目标文件或目录
常用选项: -s :对源文件建立软连接而不是硬链接。
例子:
[root@localhost tmp]# ls -il
总用量 2008
67289348 -rw-r--r--. 2 root root 294 4月 10 18:10 asdfasdfasdf.txt
67289348 -rw-r--r--. 2 root root 294 4月 10 18:10 asdfasdfasdf.txtas
67289347 lrwxrwxrwx. 1 root root 21 4月 11 15:14 asdfasdfasdf.txtas.ruan -> /tmp/asdfasdfasdf.txt
前面的数字是inode号
硬链接的数目会添加而软连接的链接数目不会添加
硬链接文件大小跟源文件相同。软连接不同。
硬链接有自己的文件名,软连接的文件名通常是指向其链接的原文件。
【第三小结】Linux 的vim 编辑器
首先linux中vi是一个全屏幕编辑器现在的vi版本基本都是运行了vim(VI Improved),vim在VI的基础上增加了很多新功能。VI 与VIM 的使用方法一致。linux中有一种编辑器那就是行编辑器VIM的工作模式:命令行模式(command mode)、插入模式(insert mode)、末行模式(last line mode)【命令行模式】在shell 环境中启动VIM的时候,初始就是进入命令模式。在该模式下键盘上输入任何字符都作为编辑命令来解释。如果输入的命令合法那就执行不合法就不会执行,报错;要注意这个模式输入不会再屏幕上打印东西也不需要回车键确认。[按下退出键就可以进入到命令行模式]
【插入模式】只有在插入模式下才可以进行文本输入。[需要在命令行模式下插入命令i、附加命令a、打开命令o、修改命令c、替代命令r、替换命令s都可以进入插入模式]
在这个模式下所有的输入都会被VIM记录到文件中
想要回到命令行模式那就按下退出键
【末行模式】[在命令模式下按下:(英文冒号)进入末行模式]此时vim 会将光标停留在显示窗口最后一行显示一个: 等待用户输入命令。
VIM的编辑命令 【移动光标】可以再命令行模式和插入模式都可以;使用方向键;也可以使用H(左)J(下)K(上)L(右)
文本插入 插入(i \ I)附加(a \ A)打开(o \ O)文本删除 x表示删除当前字X表示删除光标左边字符dd 表示删除一整行dw表示删除当前字文本复制与粘贴 yy:表示复制行p: 表示粘贴文本查找 /+字符串 开始搜索(向下)字符串下一次出现的位置?+字符串 开始搜索(向上)字符串上一次出现的位置重复与取消 u表示取消操作后按下.. 表示重复两次(其他同理)【第四小结】Linux 系统管理基础
linux系统启动过程| (加电)
加载BIOS
|
预引导(LILO/GRUB)
|
加载系统内核映像(kernel boot)
|
init ===rc.sysinit/rc
|
建立用户接口 === login
|
shell ---->用户执行linux命令
【加载BIOS】
BIOS包括CPU、设备、启动顺序、磁盘、内存、时钟信息
BIOS第一步是加电自检,然后依据BIOS内设置的引导顺序从硬盘、软盘或者CDROM中读入“主引导记录”(MBR;master boot record;大小512字节,其中存放了预启动信息、分区表信息)系统找到BIOS所指定的硬盘的MBR以后,将其调到物理内存中。其实被调到物理内存的内容是Boot Loader,具体到用户的PC机,就是LILO 或者 GRUB。
【加载Boot Loader】
Boot Loader 是在操作系统内核运行之前运行的一个小程序,这段小程序,可以初始化硬件设备信息、建立内存空间的映射图。从而将系统的软硬件环境逮到一个合适的状态,以便为最终调用操作系统内核做好准备。
Boot Loader 分为很多种其中GRUB 和LILO 是常见的Boot Loader 。现在大多数linux 版本都是使用GRUB 。
【加载内核映像】
根据GRUB设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。
系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一些列的初始画函数并初始化各种设备。完成linux 核心环境的建立。
【执行init进程】
内核被夹在后,第一个运行的程序就是/sbin/init 进程,他会读取/etc/inittab文件,其中存放了系统启动的运行级别等信息,系统根据此文件的设置来进行初始化工作。
在设置了运行级别后,init回调用脚本程序负责启动或者停止该运行级别特定的各种服务,由于需要管理的服务很多,因此需要rc脚本程序、(rc 位置在/etc/rc.d/rc)负责为每一个运行级别按照正确的顺序调用相应的命令脚本程序。
【进入登录状态】
此时系统为用户建立登录接口,等待用户输入ysername 以及password。
登陆成功后,系统会给出shell提示符。开始执行shell。
系统的运行级别linux 系统的运行级别分为7种
运行级别 | 释义 |
0 | 系统停机状态,默认不允许设置,不然开不了机 |
1 | 单用户;root权限;用于系统维护;禁止远程登录 |
2 | 多用户(无NFS支持;NFS是网络文件系统) |
3 | 完全多用户(有NFS支持,启动后会进入命令行;标准的启动级别) |
4 | 系统保留未使用 |
5 | 多用户模式。GUI图形化界面 |
6 | 系统正常关闭并重启,默认情况不可设置不然不可以启动 |
runlevel
进入其他运行级别init N
linux 系统关闭linux关闭系统有三种:关掉、不关电源只关机、重新引导。
【shutdown命令】
只有使用shutdown才可以安全的关闭linux
只有root才有权限
shutdown 用shell写的
执行后会以广播的形式通知正在系统中工作的所有用户,系统将在指定的时间内关闭,请保存文件,停止作业,注销用户。此时login用户被冻结。当所有用户从系统中注销或者指定时间到了,shutdown就会发送信号给init程序,要求系统改变运行级别
选项
-f 重启时不执行fsck(检查和修复文件系统)
-F重启时执行fsck
-h将系统关机
-k只是发送信息给所有用户,不会真正关机
-n不调用init程序关机,转成shutdown程序自己进行(加快关机速度,但是不建议)
-rshutdown 后重启系统
常用shutdown -h now //立即关机
【halt命令】
halt 是最简单的关机命令
halt 直接执行就可以关机了
halt 也可以带参数:
-f 没有调用shutdown而强制关机或重启
-i 关机或重启之前,关掉所有的网络接口
-p 关机时调用poweroff,此选项为默认选项
【reboot命令】
与halt类似,不同的地方在于reboot是重启,halt是关机
【init命令】
init 切换 系统状态
init 0 关机
init 6 重启
用户管理超级用户root
普通用户
特殊用户
除了超级用户和普通用户外,在linux系统中还存在一些特殊的与系统和程序服务相关的用户。例如 bin daemon shutdown halt 等等。这些都是任何linux系统默认都要安装并要求的,例如 mail news games gopher ftp mysql 以及sshd 等账号则是与具体的服务或程序组有所关联,如果没有这些程序,系统也是可以正常运行的。
默认情况下这些用户都是不可以登录的。如果给这些用户授权登录口令后,就可以使用这些用户登录系统,但是为了安全,一般不会给这些用户授权口令。
linux 的用户管理的信息包括:(1)用户账号(用户名)的增删改
(2)组账号的增删改
(3)用户账号属性信息的增删改
(4)账号的密码修改
(5)账号所属组信息修改,组ID等
linux 的用户管理的方法(1)GUI
(2)相关配置文件(/etc/passwd 文件 /etc/shdow文件 /etc/group 文件)
(3)用户管理命令
这里主要介绍下用户管理命令
【useradd 命令】
作用是添加用户
useradd yyq
-d 指定用户主目录
-u 指定用户ID
-g 已存在一个组,新增用户要加入主要组
-G 已存在一个组,新增用户要加入附加组
-c comment 用户的注释信息
【usermod命令】
可以修改用户属性
【userdel命令】
删除用户
-r 说明不仅要删除用户还要删除用户的主目录
【groupadd】
新建用户组
groupadd -g groupname
【groupmod】
修改指定组的信息
【groupdel】
删除组
【groups】
查看自己属于哪个组
设备管理linux 中的设备文件分为:字符设备、块设备、网络设备三种。
字符设备
是linux最简单的设备文件。数据组织的单位是字节。
对字符设备发出读、写请求的时候。实际的硬件I\O就会立即做出相应。
一般来说鼠标、串口、键盘等都是属于字符设备。
块设备
是文件系统的基础,数据组织的单位为块。系统对其读写数据时,需要使用缓冲区。再块文件读写文件的时候需要用到一块系统内存作为缓冲区。当用户进程对设备请求能够满足要求的时候就返回请求的数据,如果不能就调用请求函数来进行实际的I\O操作。
硬盘、光盘驱动器等都是块设备
网络设备
网络适配器等
所有的设备文件都是放到/dev下,都是linux 系统在安装的时候自动创建的。
【第五小结】Linux 网络管理
一些常用的网络命令(这里太熟悉了,介绍下不太熟悉的netstat)
//回头复习下tcpdump 的教程以及数据包的分析
【netstat 命令】
用于查看网络状态
netstat -antpu //常用查看命令
netstat -a //显示所有已经建连接的接口
netstat -rn //显示路由表状态,
其他参数:
-s 按照各个协议直接分别显示其统计数据
-t 显示tcp协议的数据
-u 显示UDP协议的数据
一些常用的服务器搭建(mail服务器、FTP服务器、DNS服务器)
【第六小结】Linux shell 编程
shell 简介在各类操作系统中,用户与操作系统内核打交道都要通过特定的接口。shell是linux 系统的外壳,为用户与linux内核之间的交互提供媒介。同事shell管理用户和操作系统之间的交互,等待用户输入命令,向操作系统解释用户输入,并且处理各种各样的操作系统输出。
说白了shell就是一个用户接口、命令解释器。
shell 种类介绍sh:bourne(壳牌) shell,在所有的unix上都可以使用。
csh:C shell
ksh:Korn shell
linux中可执行文件的分类如下linux 命令:放在/bin /sbin下的文件
内置命令:基于效率考虑,将一些常用的命令作为内置
实用程序:放在/usr/bin 之类的文件
用户程序:经过编译的可执行文件
shell 脚本:shell 写的脚本
那么当输入一个命令后,shell 首先判断它是否是内置命令,如果是就通过shell 内部的解释器进行解释。将其结果交给内核完成。
如果是外部命令或者实用程序就试图在硬盘中查找其命令并将其调入内存,再将其解释为系统功能调用并转发到内核进行执行。
在shell 查找命令的时候,有两种情况,第一种是用户给出了命令的路径。第二种是没有给出路径(shell就在环境变量PATH所规定的路径中依次去寻找,如果有就调用到内存,如果没有就报错)
找到以后,shell 将启动一个新的进程对其执行,并将命令上的参数、选项传递给可执行文件,这个过程成为睡眠(sleep)状态,当命令(可执行文件)执行完毕,又将shell 唤醒,然后等待下一次输入。
标准的输入\输出执行一个shell命令时,linux通常会自动打开三个文件:标准输入(stdin:通常对应终端键盘)、标准输出(stdout:对应屏幕)、标准错误输出(stderr:对应屏幕)
【输入重定向】
command [参数] < 文件名
把命令或者是可执行的标准输入重定向到指定文件中。也就是说输入不来自键盘,而是来自一个文件。
【输出重定向】
command [参数] > 文件名// >> 是追加
默认情况下> 后面的文件存在,则这个文件将会被重写
管道shell 中使用管道将一个命令的输出作为另一个命令的输入。
管道破裂:
特殊字符通配符(*)
(*)代表任何字符串,包括0个
(?) 代表任何单个字符
([]) 代表指定的一个字符范围,只要文件中[]位置处的字符在[]中指定的范围内,那么这个文件名就会和[]匹配。
引号:单引号、双引号、反引号
单引号括起来的字符都当成是普通字符出现,包括特殊字符
双引号由双引号括起来的字符例如($ \ 、‘ “)来说都保留原始的意思。
反引号表示反引号内被解析成shell命令
注释:shell中使用#作为注释
别名命令别名通常是其他命令的缩写。用来减少键盘输入。命令格式为
alias alias-name = "original-command"
定义别名以后,除非退出bash 不然别名是不会失效的。
命令历史history
【shell 脚本】
什么是shell 脚本其实就是shell script。shell是脚本不需要编译。是一行一行的按顺序执行的。shell 脚本的执行方式 加权限,然后使用shell 文件名直接执行 这种方式表示启动一个新的shell执行该脚本。但是这个方式执行时,当前系统path变量中如果没有包含这个目录,需要加上./或者是绝对路径执行sh 加上shell 名称 这种方式表示启动一个新的shell执行脚本。shell脚本名(这种方式是在当前shell 下执行的)shell 变量一个变量就是一个被命名的一块存储空间
一个shell变量名字可以包含数字、大小写字母 下划线开头不允许是数字。
大小写敏感
和python一样不需要提前声明直接使用
【环境变量】
使用env
【用户自定义变量】
作为临时的存储空间,过程中可以改变,名字长度不限,使用小写变量名。一个没有被初始化的shell变量自动地被初始化为一个空串。
var_name =value
//如果字符串里包含空格,就必须用引号它它们括起来。
//注意等号两边不能有空格。
引用变量就在前面加上$
清除变量使用:unset varname
【位置变量】
shell 提供的位置变量由 $0 $1 $2 $3 $4 $5 $6 $7 $8 $9
其中$0 存放脚本名,然后依次排开
当命令行上命令参数超过9个,shell提供了shift 命令可以把所有参数变量左移一个位置,使$2 变成 $1, 原来的$1将会被丢弃,$0保持不变
【特殊变量】
$# 表示传递给脚本的实际参数个数
$$ 当前shell脚本的进程号
$@ 表示位置参数的值
$* 位置参数的值,各个参数之间在环境变量IFS中定义的字符隔开
$! 上一个后台命令的进程号
$? 执行最后一条命令的退出状态
shell 脚本的输入输出输入命令 read
从终端上读取一个参数 一般不使用引号
格式:read var_name [var_name2 。。。 ]
输出命令 echo
export命令:
可将在shell脚本中定义的变量导出到子shell中,并使之在子shell中有效。
shell 条件测试格式如下:
(1)test 条件表达式
(2)[条件表达式]
使用第二种方法需要在[]前后保留一个空格不然shell 会报错
例子;判断文件是否存在
if test -f yyq.txt
then
......
fi
if [ -f file ]
then
.....
fi
【字符串比较条件】
字符串比较 | 结果 |
string1 = string2 | 相同为真 |
string1 != string2 | 不同为真 |
-n string | 字符串不空则为真 |
-z string | 字符串为空(一个空串)则为真 |
【算数比较条件】
算数比较 | 结果 |
表达式1 -eq 表达式2 | 相等为真 |
表达式1 -ne 表达式2 | 不同为真 |
表达式1 -gt 表达式2 | 1大于2为真 |
表达式1 -ge 表达式2 | 1大于等于2为真 |
表达式1 -lt 表达式2 | 1小于2为真 |
表达式1 -le 表达式2 | 1小于等于2为真 |
!表达式 | 表达式假为真 |
【文件测试】
文件比较 | 结果 |
-d file | 如果文件是一个目录则为真 |
-e file | 如果文件存在则为真,通常来说整个用不了,一般都用-f |
-f file | 如果文件存在则为真 |
-g file | 如果文件的SGID位置被设置则为真 |
-r file | 如果文件可读则结果为真 |
-s file | 如果文件长度不为0则为真 |
-u file | 如果文件的SUID位置被设置则为真 |
-w file | 如果文件可写结果为真 |
-x file | 如果文件可执行则结果为真 |
【AND运算】
AND运算允许用户按照这样的方式执行一系列命令:只有前面的运算都执行后成功才会执行 后面的语句。AND 在linux 中为&&。
【OR运算】
OR列表结构允许持续执行一系列命令直到有一条命令返回的是false,它右边的下一条命令才能被执行。使用 ||
shell 的算术运算所有的shell 变量的值都以字符串的形式存储。如果需要做算术运算,则需要先转换成字符串才能够进行运算,得到结果以后在返回字符串,以保证Shell的执行正确
bash 使用3中方法对数值数据进行算术运算
(1)使用expr命令
(2)使用shell 扩展$((expression))
(3)使用let 命令
【expr命令】
expr 命令将它的参数作为一个表达式来求职
expr expression
例子:
注意:在使用expr的时候,运算符前后要有空格,且乘法运算需要使用转义(\)即(\*)的形式
【$((expression))】
该命令用于计算一个expression并返回它的值
例如
使用$((expression))的时候,内部如果使用乘法,不需要转义
【let命令】
用来求算术表达式的值,如果最后的值为0,则let 命令返回1,否则返回0。语法格式为
let expression
shell控制结构【if语句】
if 后面不像是python 一样需要:
shell 不是缩进敏感的编程语言
可以使用elif
一般与[] 命令合用,在使用[]的时候需要在[ ] 这两个符号的前后加上空格。不然会报错
if 还可以嵌套
如果在写的时候需要与else在同一行的语句前面需要使用“;”
case语句case是一个多分支结构,根据变量与哪种模型匹配确定执行相应的语句序列
case variable in //case支持匹配模式,每一个模式中还可以使用通配符或逻辑符号
partern1) statements;;
partern2) statements;;
..
parternN) statements;;//每个模式行都是以双分号结尾。
*) statements;;
esac
for 语句for 结构可以用来循环处理一组值,
for variable in values
do
statements
done
其中variable 表示变量名
例子
values里面变量 用空格隔开
还可以这样写
while默认情况下shell中的变量值都是字符串,所以for在处理一些对于字符串的循环上十分方便,但是在需要执行特定次数命令的场合就显得有些笨拙了。
这个时候就需要while来协助他
while condition
do
statements
done
until和while刚好相反,判断条件为真的时候退出循环
break 以及 continue默认情况下break 只跳出一层循环
continue跳出当前循环
shell 函数在一个脚本程序中执行另外一个脚本程序要比执行一个函数慢得多。返回执行结果变得更加困难,而且可能存在非常多的小脚本。这个时候使用函数是一个正确的方向
【函数定义】
shell 定义一个函数
function_Name() {
statements
}
//它和python 还不太一样,python 是使用def xx
【函数调用】
通常将函数看成是脚本中的一段代码。在使用函数前必须先定义函数。使用时利用函数名直接调用
函数中可以使用return 命令让函数返回
return 默认返回0(当他没有被明确声明的时候)返回0代表执行成功,返回1 表示有错
【第七小结】shell 一些高难度的东西
【gdb程序调试工具】
程序中的错误通常分为:
(1)编译时出错
(2)运行时出错
(3)逻辑错误和语法错误
找到这些错误并加以修正的过程就叫做debug
gdb是linux 一个强大的调试工具,用来调试c 或者是C++
具体可以查下网上
【linux 中的进程间信号】
linux 程序间通信通常由管道、消息、共享存储区、信号等方式
这里主要讨论信号
kill -l 命令可以查看linux 支持几种信号
常见的几种
SIGHUP(sighup):终端发起的终止信号
SIGINT(sigint):来自键盘的中断信号(ctrl+c)
SIGQUIT(sigquit):来自键盘的退出信号(ctrl+\键)
SIGFPE:浮点异常信号
SIGKILL :该信号结束接收信号的进程
标签:
相关推荐:
精彩放送:
- []焦点热议:【linux】Linux基础以及安装 Linux常用知识总结
- []全球观速讯丨三星数码相机怎么样?三星NX1000套机多少钱?
- []快照回档是什么意思?造成快照回档的原因有哪些?
- []焦点观察:什么牌子的按摩椅最好?按摩椅品牌介绍
- []每日简讯:夏普投影仪报价多少钱?夏普投影仪报价参考
- []【天天新要闻】发烧级音响怎么挑选?发烧级音响选购技巧介绍
- []世界视讯!微信扫码登录过程解析:polling与longpolling
- []招商银行上班时间是几点到几点?招商银行上班营业时间
- []【世界独家】电脑音频输出设备如何解决?电脑未安装任何音频输出设备解决方法
- []什么是Python?人工智能和Python又有什么关系呢?
- []刘陵与汉武帝是什么关系?刘陵与汉武帝的关系介绍
- []看点:什么是SEO优化?怎么做好seo搜索引擎优化?
- []世界百事通!竖怎么组词?竖组词大全100个
- []热点在线丨深圳到香港地铁怎么坐?港铁官网为你解答
- []新手如何获取搜索引擎的流量?获取搜索引擎的流量渠道
- []今日观点!手机用什么功能?小米红米说明书介绍
- []环球今日讯!5930酷派怎么刷机?酷派5930自动刷机流程
- []可用动态规划解决的问题是什么?动态规划解决问题的4个方法
- []环球快讯:什么是WAP模拟器?为什么wap模拟器能够在电脑上浏览手机站点?
- []天天观点:linux下文件或文件夹的创建(touch)命令详解
- []微资讯!胶片打印机畅销产品有哪些?胶片打印机有哪些性能配置?
- []全球速讯:关于煞笔是什么意思?英文翻译怎么说?
- []什么是“戏剧游戏”?戏剧互动小游戏“大家来找茬”
- []当前时讯:新手如何学习3D建模?新手小白3D模型教程
- []前沿资讯!什么是供应链管理?供应链网站系统开发的七项原则
- []passwd如何设置或修改用户密码?passwd命令用法详解
- []全球简讯:三星c3630c好吗?三星c3630c评测如何?
- []世界速看:海水密度是怎么变化的?海水密度随深度的变化规则
- []Zookeeper是什么?Zookeeper分布式服务框架的应用场景管理
- []英国现在几点准确时间?英国首都伦敦的当地时间是什么?
- []环球观热点:英孚英语一年收费怎样?价格贵不贵?
- []天天时讯:程序员最喜欢的10个编程学习网站 你知道几个?
- []当前看点!云平台是什么意思?云服务平台有哪些?
- []弘阳服务2022年收入11.03亿元 毛利率为23.2%
- []世界观速讯丨沃森生物:公司正在力争相关产品的早日获批上市
- []环球速递!福晟国际预期2022年亏损加大 净亏损7.5亿元至10亿元
- []众安在线(06060.HK):3月23日南向资金增持18.59万股
- []环球快讯:植物神经紊乱最特效药_植物神经紊乱特效药有哪些
- []环球快讯:小人得志的意思是什么
- []【新要闻】弘阳服务:2022年实现收入11.03亿元
- []金融街物业:2022年实现收入13.88亿元
- []中电光谷:2022年实现收入55.23亿元
- []【世界独家】资源控股已配发11.61亿股予认购人 抵消1.16亿港元债务
- []永泰地产:2022年实现收入40.96亿港元
- []全球今头条!河北保定一公司高薪招工赴泰国被指实为拉人去缅甸,警方已在调查
- []热门:北辰实业2023年度拟提供担保总额不超400亿元
- []陆家嘴:重组后陆家嘴集团持股量增至30.43亿股 占比升至63.38%
- []奥士康:3月22日公司高管徐文静减持公司股份合计3.64万股
- []每日聚焦:永泰地产:终止2015年认股权计划 并采纳2023年认股权及股份奖励计划
- []视焦点讯!陆家嘴拟133.19亿元收购陆家嘴集团、前滩投资所持多家公司股权
- []太龙股份:3月22日公司高管黄国荣、苏芳减持公司股份合计138万股
- []通讯!狄耐克:3月22日公司高管赵宏减持公司股份合计3900股
- []环球微头条丨北辰实业计划2023年提供财务资助总额度为30亿元
- []观热点:恒大债务规模曝光:总负债1.898万亿,保交楼还需至少2500亿元
- []信息:广州浪奇披露内部资源整合事项 部分索赔案已开庭审理
- []当前热讯:顾家家居:3月21日公司高管刘春新、李云海、廖强增持公司股份合计22.39万股
- []全球热点!豫园股份:2022年实现收入501.17亿元
- []明阳智能:3月23日公司高管沈忠民减持公司股份合计160.85万股
- []保利发展收问询函:要求说明125亿定增中14个投资项目情况
- []全球热点评!北京昌平朱辛庄一地块以上限价格成交 市场要回暖?
- []民营房企新增投资开始回暖,大规模投资或待下半年
- []看点:中国太空“种菜”成果丰硕,多种作物“落地”后产量大增
- []【当前热闻】宝兰德:3月22日史晓丽、赵艳兴减持公司股份合计11.92万股
- []华润置地与一家银行订立30亿元定期贷款融资协议 期限为3年
- []每日动态!豫园股份022年营收501.18亿元 归母净利38.26亿元
- []天天快资讯丨武商集团5亿元超短期融资券完成兑付 利率2.69%
- []福星股份为旗下江北置业2亿元贷款提供担保 期限48个月
- []世界关注:豫园股份终止实施第三期员工持股计划 称不会对财务状况产生影响
- []世界最新:南极电商:关于公司信息请关注公司在《证券时报》及巨潮资讯网站披露的公告为准
- []被爆抢的朱辛庄地块 “摇号”进京的上海大华
- []河南信阳2023首次住宅土拍结果公布 成功出让3宗宅地
- []新消息丨和胜股份:麒麟电池的设计大幅提升了动力电池性能,将有效带动行业需求发展
- []【环球速看料】阳光电源:外部第三方机构预测今年储能装机规模100GWh,与去年相比市场规模翻倍
- []迪阿股份:年初主要受春节假期影响,通常开店数量相对较少
- []世界即时看!瑞安房地产料今年商办租金有一个比较大的提升空间
- []全球新消息丨中交地产为四个项目公司提供4.64亿元财务资助
- []要闻速递:商洛市人防办调研组赴镇安调研人防工作
- []世界微速讯:瑞安房地产指瑞安新天地不急于上市
- []有些人跪久了就不会站了! 文心一言虽有缺点,但绝不是“套壳货”
- []双汇发展:双汇熟食店依托产能布局,目前主要集中在河南、山东等地
- []全球新消息丨新疆天业联手国电投建设运营200MW光伏储能项目
- []硅片价格走势分化 供应错配暂未缓解
- []什么是电容储能,有哪些机理类型?
- []天天精选!熬过了疫情,支线小飞机未来将如何继续在不确定中求生?
- []环球新消息丨瑞安房地产:2022年实现收入155.65亿元
- []环球微速讯:新希望服务2022年收入11.39亿元 在管面积2882万平过半位于西南
- []全球微动态丨大华以12.995亿元摇号竞得北京昌平朱辛庄地块
- []首个海参电商标准发布:盐分含量比国标少60% 蛋白质高于国标40% 动态随机抽样检测
- []世界快资讯丨嘉创地产登陆港交所 上市首日跌11.11%
- []世界简讯:维科技术:公司将在定期报告中披露对应期末时点的股东人数信息,届时请关注公司定期报告
- []世界观点:美晨生态:目前公司经营一切正常
- []瑞鹄模具:公司暂无军工企业客户
- []焦点精选!中海物业2022年营收126.89亿港元 总在管面积3.2亿平方米
- []天天新资讯:海南免税店可以买多少钱的东西?
- []福立旺:截至2023年3月20日,公司股东户数为7115户
- []重点聚焦!信科移动:目前公司暂无更名考虑及相关计划,请您持续关注后续公告了解公司发展情况
- []天天消息!如何实现数据容灾?数据容灾的实现方式及备份的重要性
- []世界热消息:12.995亿元!上海大华“摇号”摘得昌平朱辛庄0028地块
- []天天快资讯:win8取消了无线临时网络功能 虚拟WiFi功能有哪些?
- []首开27亿底价竞得昌平新城东区三期0001地块
- 世界时讯:固态和液态电解电容的区别是什么?如何区分?
- 菲菱科思:公司主要从事数据通信网络设备产品的研发和制造,主要产品有交换机、路由器和无线产品等
- 最新快讯!上实发展人事变动 汪良俊因到龄退休辞去副总裁职务
- 焦点精选!首开27亿元竞得北京昌平新城地块
- 【BT金融分析师】奈飞股价暴跌17%,分析师称不太看好其在国际市场的付费共享服务
- 苹果给Macbook设计的显示器 到底有多好用?
- 每日热门:香港屋宇署1月共批出23份建筑图则
- 佛教阿兰若是什么意思?关于佛教阿兰若解释
- 《岳阳楼记》中的沙鸥翔集是什么意思?沙鸥翔集的含义
- 【新要闻】什么是网络托管?托管网站的服务器必须受到保护吗?
- 环球观察:开户行如何查询
- 省呗借钱可靠吗
- 全球即时:广东省外赴港跨境列车今日开售 重庆、杭州位列TOP10热门赴港城市
- 张卫健版西游记叫什么名字
- 焦点热讯:山区冷水适合养什么鱼?
- 流动比率是什么意思
- 天天快消息!信用卡逾期了怎么跟银行协商解决
- 环球滚动:封隔器是什么?关于封隔器的介绍
- 环球精选!支付宝转账到银行卡如何免手续费?支付宝余额宝转出教程
- 热点在线丨如何使用Office2010激活工具?Office2010激活工具及其使用方法
- 望月鳝真的存在吗?望月鳝有科学依据
- 客运站陷入关停风潮:它们将“开往何处”?
- 联想超级本怎么样?联想U310与4000元以下的差距在哪?
- 【环球时快讯】索尼dv哪款好?市场上价格如何?
- 世界热资讯!3米的棉麻面料怎么做?下摆裹身连衣裙的裁剪制作教程
- 天天消息!appleappstore怎么设置?appleappstore重启电脑方法
- 【环球时快讯】谷歌智能眼镜多少钱?谷歌眼镜功能报价
- 每日讯息!n=4,k=2classSolution 如何遍历解空间树?
- 每日看点!苹果手机开机慢怎么办?苹果手机开机慢的原因及处理方法
- 天天微资讯!如何制作鼠标跟随效果?鼠标跟随效果制作教程
- 世界滚动:妙可蓝多2022年年报简析:增收不增利
- 山西:2023年将建设200个乡镇服务标准化快递综合服务站
- 每日头条!观点物业大会 | 郑颖斌:城市服务能很好地平衡物企业绩波动
- BT是什么?BT(BitTorren比特流)的原理及使用方法
- 观点物业大会 | 郑颖斌:环卫行业市场化率不断提高 走向存量市场
- 世界最新:珠海斗门7个老旧小区将升级改造 总改造面积约21.81万㎡
- 山东威达:新一代人工智能技术与数控机床融合应用,将为数控机床产业带来新的变革和发展机遇
- 美原油交易策略:耶伦讲话拖累股市,提防油价重回跌势风险
- 天天通讯!3月23日科大讯飞涨停分析:智能手表,智能音箱,脑科学概念热股
- 当前视点!观点物业大会 | 郑颖斌:环卫未来将向集中化、智能化等方面发展
- 3月23日阿科力涨停分析:新冠疫苗,页岩气概念热股
- 天天观速讯丨3月23日汇通能源涨停分析:物业管理概念热股
- 五一出境游市场火爆:数万元长线团满员,上班族“拼假”出游
- 全球热消息:马蜂窝发布春季“旅行蜂向标”,寺庙成年轻人春游新宠,热度上涨138%
- 太平洋车险怎么样
- 天天报道:一类卡二类银行卡区别
- 环球快资讯丨水滴筹平台收取多少手续费
- 京东白条怎么关闭
- 山东强盛集团的保安大爷有多硬核 你大爷还是你大爷!!
- 每日聚焦:一阴吞三阳是什么意思
- 德信地产:预计2022年净利润将同比下降约21-23.5亿元
- 前沿资讯!迪威迅:公司截止2023年3月20日股东人数为一万九千七百多人
- 最资讯丨广发证券:地产行业仍处于成熟期 本轮周期核心建材公司业绩有韧性复苏
- 每日热议!大胜达:、公司将按相关法律法规的规定做好信息披露工作,请关注公司指定信息披露媒体上的公告
- 要闻速递:物业服务内涵不断进化 | 物企创新能力报告分析
- 环球新消息丨北京保障房中心与六家金融机构签1800亿战略合作意向
- 百年老字号新玩法,广药王老吉Dr.Ji项目推动文化出海
- 天天热文:东软载波:公司没有6G相关产品
- 焦点热议:品牌价值是物业企业对外拓展的有力保证 | 物企品牌价值报告分析
- 【东海期货3月23日宏观金融日报】美联储如期加息25BP,全球市场短期波动加大
- 香港置业: 料今年首季二手住宅注册量将超越去年水平
- 环球热消息:零售股震荡走低 午后丽尚国潮触及跌停、新华百货跌超3%
- 每日头条!《中国工业发展报告2022》发布
- 【热闻】美联: 港年初至今整体物业注册量共录15,656宗 比上季升33.6%
- 【世界报资讯】自如久未融资又再传上市,拿什么吸引资本市场?
- 环球聚焦:TVB母公司电视广播一度涨超44% 旗下附属公司与优酷达成合作
- 传称松下再作价1亿元出售大连冷链公司 在华业务拟专注个人消费
- 中海物业:2022年实现收入126.89亿元
- 头条焦点:携程集团与雅辰酒店集团达成合作 双方将深耕市场营销等多领域
- 环球最新:熵基科技:公司与微软正在就OpenAI相关接口进行测试
- 小赢卡贷上征信吗
- 洪泽区气象台发布霾黄色预警【Ⅲ级/较重】【2023-03-23】
- 网贷逾期了暂时还不上怎么办
- 海尔智家1亿元新设科技公司,经营范围含体育健康服务
- 【焦点热闻】【东海期货3月23日产业链日报】贵金属篇:美联储小幅加息,金银偏强
- 【东海期货3月23日产业链日报】能化篇:数据利好及加息计价,油价回涨
- 今日热闻!中国信托业协会:信托业投向房地产的资金信托余额同比降幅超30%
- 天天即时:国创高新:公司一直高度关注科技创新的最新成果与突破
- 当前报道:中国信托业协会:截至2022年四季度末,投向房地产的资金信托余额同比下降30.52%
- 三五互联:请参见公司于2023年3月3日在互动易平台上已回复的内容
- 当前热议!中手游业绩:总营收27.14亿,研发投入增长69.5%,《仙剑世界》4月27日发布实录PV
- 上实城市开发:2022年归属股东净利润4.06亿港元
- 全球微动态丨海南:今年计划筹集保障性租赁住房3455套(间)
- 每日速读!捷信上征信能撤销吗
- 同程“游”向纵深处
- 速讯:tony大神动画作品有哪些?tony大神动画7部作品分享?
- 上市航司2月国际运力暴涨,但还恢复不到2019年的两成
- 微头条丨银行贷款需要什么条件
- 环球视讯!怎么学泰国语?学泰国语的步骤有哪些?
- 环球快报:12333是什么电话
- 全球热消息:尼康D300S和尼康D90有什么区别?尼康D300S和尼康D90的区别介绍?
- 热头条丨美国有哪些潮牌服装?美国潮牌服装介绍?
- 家里墙壁发霉怎么处理?家里墙壁发霉的处理方法有哪些?
- 论文进展情况怎么写?论文进展情况写法?
- 氨基酸的种类由什么决定?蛋白质的基本组成单位是什么?
- 微信微粒贷安全吗
- 今亮点!usd是什么货币
- 学习卡怎么用?学习卡的使用流程是怎样的?
- 全球热门:广州鞋子批发市场有哪些?广州鞋子批发市场资料介绍?
- 今日要闻!苦瓜里含多少苦瓜素?苦瓜的营养成分有哪些?