这是博主在学习中总结的,不喜勿喷。
希望对你有帮助。
本文都是一些非常基础的知识点,只是博主学习中总结的,不全面且不系统!!!
下面是主要内容:
第一章 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 方法名字(){
程序
}
调用方法名字()