您的位置:首页 > 运维架构 > Linux

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

2020-07-21 04:13 1551 查看

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

下面是主要内容:
第一章 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
2020年 05月 18日 星期一 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 3月  30 11:12 mk3
第一个字母:表示文件的类型
d:文件夹
I:软链接文件
若第一位是-:表示普通文件

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

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

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

-rw-r--r--. 1 root root 29 3月  30 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
② 在5月1日凌晨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 值1 值2...
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 方法名字(){
程序
}
调用方法名字()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: