Linux系统开发基础-基础知识点总结

这是博主在学习中总结的,不喜勿喷。
希望对你有帮助。
本文都是一些非常基础的知识点,只是博主学习中总结的,不全面且不系统!!!

下面是主要内容:
第一章 Linux操作系统概述
第二章:Linux系统环境搭建
第三章:Linux操作基础
第四章:linux文件系统
第五章:Linux系统用户与软件管理
第六章:Linux系统网络通信和服务管理
第七章:vi/vim编辑器的使用()
第八章:shell程序设计入门

(用代码块来承载内容,方便大家复制)

1章 Linux操作系统概述
1. 什么是自由软件,什么GPL、GNU?
答:
1).不受限制地自由使用、复制,公开软件原始码供研究、修改和分发的软件。 
2).通用公共许可协议:与传统商业软件许可协议CopyRight对立的,
所以又被戏称为CopyLeft,就是被称为“反版权”的概念。GPL保证任何人有共享和修改自由软件的自由。
3).对Unix向上兼容的完整的自由软件系统。它的目标是创建一套完全自由的操作系统。

2. Linux操作系统的内核版本有什么特点?
答:
1).提供了丰富的网络功能 
2).可靠的系统安全性
3).良好的可移植性 

3. 简述Linux操作系统的组成及特点。
答:
组成:
(1) 设备驱动程序层。
(2) Linux内核。
(3) 系统调用接口。
(4) 语言函数库。
(5) Linux Shell。
(6) Linux应用程序。  
特点:
1.开放性 
2.多用户 
3.多任务 
4.良好的用户界面 
5.设备独立性
6.提供了丰富的网络功能
7.可靠的系统安全性
8.良好的可移植性
9.兼容其他UNIX系统
10.支持多种文件系统



             			第二章:Linux系统环境搭建





利用VMware虚拟机安装操作系统主要有以下目的和意义:
1.单机构建网络环境
2.软件开发跨越平台移植
3.系统学习
4.进行危险操作

Linux系统的启动引导步骤
(1) 加载BIOS 
(2) 进入GRUB 
(3) 加载Linux Kernel
(4) 执行init
(5) 运行/etc/rc.d/rc.sysinit
(6) 执行/etc/inittab 
(7) 执行默认级别中的所有Script
(8) 执行/bin/login程序


VMware下-网络模式:
	1.桥接模式(虚拟机访问网络的最简单途径)
	像是添加一个新的ip地址给虚拟机使用
2.NAT模式(NAT:网络地址转换)
	VMware虚拟机中默认的使用模式
	虚拟机和主机在共享一个对外的IP地址
3.仅主机模式
	完全包含在主机中的专用网络

配置网络:
	1:获取子网频段
		192.168.230.0
	2:获取ip频段
		192.168.230.(3-252)
	3:获取子网掩码
		255.255.255.0   24
	4:获取网关:
		192.168.230.2
	5:获取DNS
		114.114.114.114/1.1.1.1/8.8.8.8

设置网卡:
	1:自动配置  (系统自行设置网络信息   缺点:不能满足个性化需求)
	2:自行配置
		将上面的配置网络信息填写到对应的位置即可

测试:
	获取当前ip:ip addr
	与外网连通性:ping www.badu.com
	与宿主主机测试连接(搜索内打cmd):在宿主主机上 ping 192.168.230.17

通过命令行查看网卡信息:
root@loongwuhen ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 


登录模式:
	1:图形界面模式登录
	2:字符命令模式登录
		1:查询默认的登录模式   systemctl get-default
		2:从图形切换字符  multi-user.target

字符命令提示:
	[root@localhost ~]# 
		root:当前登录的用户
		@
		localhost:当前主机名
		~:用户的宿主目录  (标记会随着目录变化,现在当前所在目录)
		# :超级用户  (root)
		$:普通用户
	 
	
关闭系统:
	注意:linux是多用户 多任务的系统 
	条件:系统管理员才有关机权限
		命令:halt 正常关机
		reboot:重启
		poweroff:关机并关闭电源
		shutdown:维护 (软件维护,硬件维护)
			-k:警告提醒
			-r:重启系统  (reboot)
			-h:关系系统并关闭电源
			-f:跳过检查,快速关机并重启
			-t secs:关机延时 时间是:分钟
			shutdown +10
			-c:取消shutdown命令的执行
			now:立即关机

1. Linux系统的自定义分区要求有哪些?
	必须有/:根目录分区,/boot:引导分区,SWAP:交换分区

2. 简述Linux系统的启动过程。
	Linux系统的启动引导步骤
	(1) 加载BIOS 
	(2) 进入GRUB 
	(3) 加载Linux Kernel
	(4) 执行init
	(5) 运行/etc/rc.d/rc.sysinit
	(6) 执行/etc/inittab 
	(7) 执行默认级别中的所有Script
	(8) 执行/bin/login程序

3. 举例说明Windows和Linux系统共存的磁盘分区命名要求。
C:,D:,E:,F:,/dev/hda7 /dev/hda8/dev/hda9/SWAP

4. 多用户情况下,如何保证其他在线用户的作业,而系统还能正常安全关机。

5. 练习系统的开机、登录、注销及关机的方法,并对该过程进行观察和记录。
6. 练习在Windows下利用VMware进行建立并安装Linux虚拟机系统。



			第三章:Linux操作基础



shell
	 查看shell解释器bash的版本执行的命令为:
            	bash –version
shell命令
   一般格式
	命令名称[-选项][参数]

   一些基础操作
	cd:跳转
	ll:列出当前目录下文件
		-a:列出当前目录下所有文件(包括隐藏文件)
	cat:查看文件
	
	mkdir:创建文件夹
	touch:创建新文件
		文件夹内创建文件夹  递归创建  mkdir AWQ2/AWQ3/AWQ4/AWQ5 -P
	使用vi/vim编辑器创建新文件: vim/vi 2.txt  注意:必须保存文件
	cat:新建新文件:
		cat > new.txt
	cat合并文件
	cat file1 file2 > newfile
	编辑文件
		1:vi 编辑器  vi [filename]
		2: vim 编辑器 vim [filename]   注意:vim可能需要安装
	mv:更改文件名 mv [filename] [newname] 
	mv:当前目录名 新目录名        //修改目录名,同样适用与文件操作
  	mv /usr/tmp/tool /opt       //将/usr/tmp目录下的tool目录剪切到 /opt目录下面
  	mv -r /usr/tmp/tool /opt    //递归剪切目录中所有文件和文件夹

	rm 文件名:删除当前目录下的文件
		-f 文件名:删除当前目录的的文件(不询问)
		-r 文件夹名:递归删除当前目录下此名的目录
		-rf 文件夹名:递归删除当前目录下此名的目录(不询问)
		-rf *:将当前目录下的所有目录和文件全部删除
		-rf /* :将根目录下的所有文件全部删除【慎用!相当于格式化系统】*/

	
	pwd:显示当前路径
	tree:树状结构显示
		安装tree:yum install tree -y

	date:查看日期(显示系统当前的日期和时间)
		[root@longwuhen ~]# date
		20200518日 星期一 14:53:48 CST
		日期格式化:
		[root@longwuhen ~]# date +"%Y-%m-%d"
		2020-05-18

	history:查看所有历史命令
		 [  !n ]执行某一历史指令(n为历史命令列表中的编号)
		显示最近的命令:键盘上下键显示

	who:在线用户命令
		-H 显示在线用户一些信息
		-q 统计登录到系统的用户数量

	cat /etc/passwd  :查看本地所有的用户

	cal:查看日历
	[root@longwuhen ~]# cal
     	 五月 2020     
	 日 一 二 三 四  五 六
           	                          1   2
	  3   4  5   6   7    8  9
	10 11 12 13 14 15 16
	17 18 19 20 21 22 23
	24  25 26 27 28 29 30
	31
		-1, --one        只显示当前月份(默认)
 		-3, --three      显示上个月、当月和下个月
 		-s, --sunday     周日作为一周第一天
 		-m, --monday     周一用为一周第一天
		 -j, --julian     输出儒略日
 		-y, --year       输出整年
 		-V, --version    显示版本信息并退出
 		-h, --help       显示此帮助并退出

	unname:显示系统信息
		-a:显示所有信息
		-r:显示发行版本号
		-m:显示所用机器类型
		-i:显示所需要硬件平台
		-v:显示操作系统版本
		-s:输出内核名称

	wc:统记(w:统计字数,c:统计字节数)
	命令格式:wc [选项] [文件]
	[root@longwuhen lianxi]# wc 11.txt
	12 11 33 11.txt(输入各数值各代表为:行数、字数、字节数和文件名)

	su:切换用户命令
		1:新建用户:useradd[username]
		2:给新建的用户添加密码 passwd[username]

	cleaer:清屏

	hostname:查看主机名
	vim /etc/hostname:修改主机名
		修改完成后需要重启 reboot 

	shell命令自动补全:tab键补全

	cp拷贝文件:
		cp file1/dir1 dir2
	递归拷贝:拷贝文件夹内含有文件
		cp -rf dir1 dir2
系统升级  注意:非必须要求 否则不需要升级系统
	软件版本升级 yum update (更新到最新版本)
	内核版本升级 (不要随意试试)

	
	

帮助命令:
	命令名称 --help
	man cal   空格翻页 q退出
	info [命令] 空格翻页 q退出

shell相关的配置文件:
	1/etc/profile:系统环境变量   例如:配置jdk环境变量
	2~/.bash_profile:用户环境变量 存在于用户的主目录内
	3~/.bashrc:运行bash读取的配置   配置终端提示符等等  (美化   oh-zsh)
	4~/.bash_history 历史命令记录

shell的重定向:
	标准输入输出:
		键盘输入  显示器输出   I/O
		不是键盘输入,文件/文本/设备等 不是显示器输出,文本/文件/设备
	输入重定向
		文件/文本/设备 输入
		<
	输出重定向  将在线人数输出到user.txt文本中
		>     若被输入的目标已存在 则覆盖
		>>     若被输入的目标已存在 则追加
	错误重定向  将提示信息 输出到指定的文件中  日志记录

shell管道操作: “|”前面的命令的输出是管道线“|”后面命令的输入。
	语法:命令1 | 命令2 | ....
		   输出    输入

Linux的桌面环境
	1.GNOME
	2.KDE



			第四章:linux文件系统




文件系统的含义:
	(1) 指一种特定的文件格式。例如,我们说Linux的文件系统是ext3,MSDOS的文件系统是FAT16,
	而Windows XP的文件系统是NTFS或FAT32,就是指这个意思。
	(2) 指按特定格式进行了“格式化”的一块存储介质。
	当我们说“安装”或“拆卸”一个文件系统时,指的就是这个意思。
	(3) 指操作系统中(通常在内核中)用来管理文件系统以及对文件进行操作的机制及其实现。 

文件的含义
文件是操作系统用来存储信息的基本结构,是存储在某种介质(软盘、硬盘、光盘等)上的一组信息的集合,通过文件名来标识。

文件的成分
	1.索引节点:每个Linux分区中对文件使用的标识符。每个文件有一个inode。
	(inode:译成中文就是索引节点,它用来存放档案及目录的基本信息,包含时间、档名、使用者及群组等。)
	2.数据

Linux系统文件的命名(同Windows系统区别)
	1.同类文件应使用同样的后缀或扩展名。
	2.Linux系统区分文件名的大小写。
	3.以圆点“.”开头的文件名是隐含文件。 

Linux系统的目录结构 
Linux文件系统使用单一的根目录结构,所有的分区都挂载到单一的“/”目录上。
Windows操作系统中,使用驱动器。

CentOS 7系统常用目录:
/:根目录 Linux文件系统的入口,也是处于最高一级的目录
/bin:这个目录是系统中最重要的可执行文件的存放位置,这些可执行文件大都是Linux系统中最常用的命令。
	一般用户和超级用户都会经常使用其中的命令,如:ls、mkdir、mount等
/dev:设备文件存储目录。这个目录中的所有文件都是特殊的文件,Linux系统把所有的外设都看成是文件。
	就是说,用户对代表该外设的文件进行操作实际上就是对该外设进行操作。
/etc:这是系统内部存放配置文件的主要位置,一般与系统关系十分密切的配置文件都放在该目录下。
	也就是说,对系统的配置主要就是对该目录中的文件进行修改。
	一些服务器的配置文件也在这里,比如用户帐号及密码配置文件。
/home:这是系统内部存放配置文件的主要位置,一般与系统关系十分密切的配置文件都放在该目录下。
	也就是说,对系统的配置主要就是对该目录中的文件进行修改。
	一些服务器的配置文件也在这里,比如用户帐号及密码配置文件。
/lib: 这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件。
	几乎所有的应用程序都需要用到这些共享库。
lib64:存放与/lib不同格式的二进制函式库,支持64位的函式库
/lost+found:在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。
	当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。
	 有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移动文件到原来的位置上。
/misc:备用目录。
/mnt:这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。
	可以参看/etc/fstab的定义。有时我们可以让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。
	主要看/etc/fstab中怎么定义了;比如光驱可以挂载到/mnt/cdrom 
/opt:表示的是可选择的意思。用于安装一些给所有用户使用的文件或程序
/proc:这个目录中的文件其实不是存放在磁盘上的,该目录的文件系统叫做proc文件系统,是系统内核的映像。
	也就是说,该目录里的文件存放在系统内存中。
	可以通过查看这些文件来了解系统的运行情况,同时也可以通过修改这些文件改变某些内核运行参数。
	比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器: 
		echo 1 > /proc/sys/net/ipv4/icmp_echo_ 
		ignore_all。 
/root:超级权限用户root的缺省主目录,对一般用户来说,是没有该目录的写权限的。
	一般用户自己的文件都拷贝到自己的主目录下,以免打乱原来的系统层次结构。
/sbin:与/bin一样,主要是存放可执行文件,只不过这里的可执行文件主要是给超级用户管理系统时使用的,普通用户几乎没有权限执行其中的程序。
/tftpboot:TFTP(普通文件传输协议)服务器缺省文件主目录。
/tmp:临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文。/var/tmp目录和这个目录相似。 
/usr:这个目录是Linux系统中占用磁盘空间最大的目录,有许多应用程序安装在这里。 (如windows 的Program Files)
/var:存放一些系统记录文件,HTTP和FTP服务器

Linux的文件类型
	普通文件(-)(file *1.文本文件
		2.数据文件
		3.可执行的二进制程序
	目录文件(d)
		每个目录下都有“.----本身、“..----父目录
	设备文件
		1.字符设备(c)
		2.块设备(b)
		3.链接文件(l)
			Linux具有为一个文件起多个名字的功能,称为链接。
			对于某文件的各个链接文件,我们可以给它们指定不同的存取权限,以控制对信息的共享和增强安全性。 

Linux的文件导航命令
	ls:命令(列清单)格式:ls  [选项]  [目录或文件名] 
 		ls –a        //显示所有文件,包含隐藏
 		ls –l         //长格式显示文件详细信息
 		ls –m       //逗号分隔的紧凑方式显示
 		ls –R        //递归显示
 		ls –i         //显示索引节点号

	cd:命令(改变当前工作目录)格式: cd  目录名

	cat:命令
		1.查看文件信息   格式:cat [选项] 文件名 
			-n:为由1开始对所有输出行进行编号显示。
		2.建立小型文件格式:
			 cat > 命名的新文件名
			 ……       // 输入信息
			<ctrl>+d    //存盘并退出
		3.合并文件 格式:cat  文件1  文件2  >  新文件名
	more:命令(逐屏显示文件内容)
		分屏显示文件内容,在正常情况下每个满屏之后终止,并在屏幕底部提示已显示内容占全部内容的百分比。
		如果按回车则显示下一行,按空格键则显示下一屏,按“q”键退出。 

	cp:复制命令	格式:cp  [选项]  源文件或目录  目标文件或目录
		cp -rf Dir1 Dir2       //r为递归拷贝
		cp -f file1 file2       //f为强制,不提示
		cp -f file[1-9] dir1
 		cp ./*  Dir1 //*/

	rm:删除命令	格式:rm  [选项]  文件名 

Linux的文件检索、排序、查找命令
	grep:文件信息检索命令	格式:grep [选项] 字符串 [文件…]

	sort:排序命令 	格式:sort [选项] [文件列表] 
		sort -r file1                  //r为反向
		sort -r -o outf1 file1     //o为输出
		sort -n file1	//n为数值
		sort -k 3 file1             //k为关键字
		sort -n -k 3 file1        
		ls -l | sort -n -r -k 5 

	mkdir:创建目录命令	格式:mkdir [选项] [目录名] 
		-p:递归  在文件夹内再创文件夹
		-m:权限分配

	rmdir:删除目录命令	格式:rkdir [选项] [目录名] 

Linux:文件权限
drwxr-xr-x. 3 root root 17 330 11:12 mk3
第一个字母:表示文件的类型 
		d:文件夹
		I:软链接文件
若第一位是-:表示普通文件 

744:
	第一位: 表示文件的拥有者  可读可写可执行权限
	第二位:表示文件拥有者所在的群组  只读权限
	第三位:表示其他   只读
7 = 4+2+14:可读 2:可写 1:可执行)

文件权限:修改权限   root具备
	文件所有者 以及访问权限
	chown[选项][所有者][:]文件
		-c:显示更改部分的信息
		-f:忽略错误信息
		-h:修复符号链接
		-R:指定目录以及其子目录文件

文件访问权限:
	owner:文件拥有者
	gropu:文件拥有者所在的群组
	others:其他用户
文件权限的表示方法:
	三组九位字母表示法
	三组九位二进制表示法
	三位八进制表示法

-rw-r--r--. 1 root root 29 330 10:55 2.txt
第一位:文件的类型
第2-4位:文件所有者拥有的权限
第5-7位:文件用者所在组的权限
第8-10位:其他用户的权限
r:可读
w:可写
x:可执行
非第一位上的-:表示不具备权限

文件访问权限的修改:
	字母方式:
		chmod[选项]模式 文件名
		u:user 文件或者目录的拥有者
		g:group表示文件/目录拥有者所在的群组
		o:other:其他用户
		a:all 以上所有用户
	权限操作符:
		+:增加权限 u+w:给拥有者增加写的权限 u+r u+x o+x
		-:取消权限 u-w u-r o-x
		=:赋予权限,并取消其他 a=w a=x
	数字方式:
		 chmod  八进制模式 文件名	(4:可读 2:可写 1:可执行)
		示例:
		chmod 644 f1	chmod 700 f2
	

硬链接:把一个或者多个文件和计算机使用的节点号链接起来
	格式:ln 源文件 创建的目标链接文件
	限制:
		不能对目录文件做硬链接;
		不能在不同的文件系统之间做硬链接。 
	特点:
		创建的硬链接文件和源文件节点号相同。
		创建的硬链接文件命名可以和源文件名不同。
		源文件删除了,而链接文件仍具有原来特性。
		创建的硬链接文件属性和源文件相同。
		更改源文件或链接文件属性,则全部更改。

软连接:又称符号链接,是将一个路径名称链接到一个文件,类似于Windows系统中的快捷方式。
	格式: ln –s 源文件 创建的目标链接文件
	特点:
		软链接是一个新文件,它与目标文件有不同的节点号;
		软链接可以对目录文件做符号链接,也可以在不同文件系统之间做符号链接;
 		删除源文件或目录时,不会删除链接,但链接失效;
		软链接的大小是其链接文件的路径名中的字节数。
		在目录长列表中,符号链接作为一种特殊的文件类型显示出来,其第一个字母是l。 




		第五章:Linux系统用户与软件管理




用户和组概述
	账户:使每个用户的工作都能独立的、不受干扰地进行。
	          系统依据账户来区分每个用户的文件、进程、任务,给每个用户提供特定的工作环境。
	用户和组:Linux的账户包括用户账户和组账户两种。组是用户的集合。组分为私有组和标准组。
	                 Linux下当一个用户属于多个组时,其登录后所属的组称为主组,其他的组称为附加组。    

用户和组的配置文件
	passwd文件 
	位置:/etc/passwd		对任何用户均可读。 
	作用:用于保存各用户的帐户信息。

	shadow文件 
	位置:/etc/shadow		只对root用户可读。 
	作用:保存各用户帐户的密码等信息。

	group文件
	位置:/etc/group
	作用:保存各用户帐户的分组信息。

	gshadow文件 
	位置:/etc/ gshadow
	作用:用于定义用户组口令、组管理员等信息。

账户管理:
	用户管理:
		1:新建用户
			useradd [name]
		2: 设置密码
			passwd [name]
		3: 修改用户账户属性
			usermod [参数]name
		4:删除用户
			userdel [参数] name
	组管理:
		1:新建组
			groupadd 
		2:删除组
			groupdel
		3:组改密
			gpasswd


软件包管理: 内部服务不能链接外网 
	rpm包安装:
		rpm -ivh [包名]
	rpm包删除:
		rpm -e [包名]
	rpm包查询
		1:查询已经安装的包
			rpm -qa
		2:查询指定的包是否安装
			rpm -q [包名]
		3:查询包的文件
			rpm -ql [包名]
		
yum常用命令:
	1:查询所有的软件仓库
		yum repolist all
	2:查看可用的仓库
		yum repolist enabled
	3: 包查询
		yum list [包名]
	4:安装
		yum install [包名]
	5:更新
		yum update
	6:删除	
		yum remove [包名]
	7:清理缓存
		yum clear [包名]

ar:
	.tar:普通文件
	.tar.gz:压缩文件
	
使用tar建立包:
	tar cvf [文件名] [目录/文件名]
	c:create 创建
	v:执行
	f:文件
	z:使用gzip压缩文件
	注意:若打包参数中含z,扩展名记得添加.gz
	
tar查询包:
	tar ztf [文件名]
	z:普通的tar包
	t:test tar包
	f:文件名
	
使用tar解压包:
	tar zxvf [tar文件名]
	z:不需要参数  文件名.tar  不要z
	x:释放
	v:执行
	f:文件名
	-C:指定解压目录
	
src:源码包
	1:解压包  tar -zxvf [文件名] -C [目录]
	2: 配置编译 ./configure
	3:编译 make
	4:安装 make install
	
	
用户管理:
rpm yum tar





			第六章:Linux系统网络通信和服务管理
		


网卡配置:
		[root@longwuhen ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 

		注意:修改了网卡配置,需要重启网卡服务:systemctl restart network
		
主机名:
	hostname:
	修改主机名:vim /etc/hostname   修改后需要重启

配置当前活动的网卡:
	ifconfig:
		查看当前活动网卡信息:ifconfig [netname]   ip addr获取网卡名称
		重设ip:ifconfig [netname] ip地址
		给指定网卡配置多ip 虚拟ip
			ifconfig [netname] : n ip
		启停网卡:
			ifconfig [netname] up|down
		测试网络连通性:
			ping -c 5 www.baidu.com   发出5次ping测试 结束ping  使用 ctrl+c 结束

进程管理:
	at:定时作业
	含义:指定系统在将来的某个时间执行作业。
	1、创建at作业格式为:
	at sometime 
	command list            #作业列表
	……
	<ctrl>+d                  #组合键,保存并结束
	例子:
		① 在第二天该时刻执行:
		at now +1 day
		② 在51日凌晨1点执行:
		at 1:00am May 1

	
	
进程控制:
	进程查看  ps -ef   ps -aux
		-a:列出所有用户进程
		-e:列出包括系统进程在内的所有进程
		-l:显示进程的详细列表
		-f:显示进程的详细信息
		-x:没有与终端关联的进程
		-u:显示一些用户信息
	free:资源显示
	top:监控  p:cpu  M:内存  T:进程	
		pid:进程号
		u:切换显示用户的进程
		k:结束进程   k pid   kill
		ctrl+c:退出监控
	sleep:延迟多少时间再执行  s
	kill:结束进程
		kill pid:安全结束进程
		kill -9 pid:强制结束进程
		
init进程:
chkconfig:已经被systemctl取代了
service:已经被systemctl取代了




			第七章:vi/vim编辑器的使用






vim编辑器:
	下载:yum install vim -y

	3种模式
		1:命令模式
			进入vim编辑器
		2:底层命令行模式
		3:编辑模式
			i 键后进入编辑模式
			编辑完成后 esc退出编辑模式 shift+: 进入命令行模式 保存退出
				w:写入
				q:退出
				wq:保存并退出
				q!:强制退出






			第八章:shell程序设计入门







shell是:命令行解释器

shell脚本的创建及执行:
	创建:vim [文件名]	不需要权限
		脚本内容:
		#!/bin/bash
		echo:输出语句
	执行:
		1:sh文件名 不需要权限
		2./文件名   在挡墙目录下执行脚本
		需要给定执行权限	chmod +x 文件名 (推荐使用)
shell的变量
	1:系统变量
		$HOME $PWD $SHELL $USER...
	2:用户自定义变量
		基本语法:
			1:定义变量:变量=值	 注意:=前后没有空格
			2:撤销变:unset 变量
			3:输出变量值:在变量前加上$
			4:声明静态变量:readonly  注意:unset不可使用  A: 无法反设定: 只读 variable
	3:显示当前shell中的所有变量  set
	4:定义变量的规则
		1:变量名称可以由字母 数字 下划线组成  但不可以以数字开头
		2:等号两侧不可以有空格
		3:变量名一般大写

将命令的返回值赋值给变量:
	1:反引号 运行反引号内的命令 并把结果返回给变量	esc下面的键  ``   A=`ls -al`
	2: $()   等价于反引号 推荐使用

环境变量:
	基本语法
	1:export 变量名=变量值  (将shell变量输出为环境变量)   配置jdk环境变量用过
	2:source 配置文件名 (不重启的情况下,使修改过的配置文件激活)
	3:echo $变量名  (查询环境变量的值)
	
位置参数变量:
	执行含有位置参数输出变量是,需要带上参数
	基本语法规则:
		$n:n为数字
		$0:表示自己
		$1-9:表示第一个到第九个参数   十以上的参数 需要使用{}包括  ${10}
		$*:表示命名行中的所有参数,把所有的参数看成一个整体
		$@:表示命名行中的所有参数,把所有的参数区分对待
		$#:表示命名行中所有参数的个数
		
预定义变量:
	shell事先设计号的变量,可以直接在shell脚本中使用
	基本语法
		1:$$ (获取当前进程号 pid)
		2:$! (后台运行的最后一个进程的进程号 pid) &:后台运行
		3:$? (描述执行命名的状态  若值为0 表示上一个命名执行成果 若值非0 否则失败 具体返回值看程序结果)
		
运算符:
	基本语法规则
		1"$((运算式))"  $[运算式]  推荐使用$[]
		2:expr m +n  注意:expr运算符间需要空格
		3:expr m -n  定义临时变量  TEMP
		4:expr \*,/,%  乘除取余
		
条件判断:
	常用的条件判断:
		1:两两比较
			=:字符串比较
			-lt:小于
			-le:小于等于
			-eq:等于
			-gt:大于
			-ne:不等于
			-ge:大于等于
		2:字符比较:
			=:判断字符串
		3:文件权限判断:
			-r:当前用户是否可读
			-w:当前用户是否可写
			-x:当前用户是否可执行
		4:文件内容判断:
			-s:是否为非空文件
			!-s:表示空文件
		5:文件类型判断
			-f:文件存在并且是一个常规文件
			-e: 文件存在
			-d:文件存在并且是一个目录
		6:非空判断
			非空输出true  $?验证  0:true 1:false
	语法格式:
	if [ 判断 ]
	then
		echo 
	fi

流程控制:
	语法规则:
	if [条件判断]
	then
		echo "输出1"
	elif [条件判断]
	then
		echo "输出2"
	fi
	
case:
	基本语法:
	case $变量名 in
	"值1")  如果变量的值等于值1,则执行程序1
	;;
	"值2")  如果变量的值等于值2,则执行程序2
	;;
	*)  所有条件均不满足
	....
	esac

for循环:for i in "$*/$@"
	基本语法:
	1:
		for 变量 in 值12...
	do
	程序
	done
	2:
	for ((初始值;循环控制条件;变量变化))
	do
	程序
	done
	
while循环:
	语法规则:
	while [条件判断]
	do
	程序
	done
	
逻辑与&&
	把两个或以上命令链接在一起
	com1 && com2   
	com1不成功 则com2不执行
逻辑或 ||
	把两个或以上命令链接在一起
	com1 && com2   
	com1不成功 则com2执行
	
控制台输入:
	read [选项]
	-p:给出提示
	-t:规定的时间内
	
函数:
	1:系统函数
	basename:返回路径 获取文件名
	basename [pathname][suffix]
	dirname: 返回路径部分
	2:自定义函数
	funcation 方法名字(){
		程序
	}
	调用方法名字()
	




		













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值