普洱市交通建设集团官方网站,wordpress建站双语,哪里有做效果图的网站,含有友情链接的网页Linux基础学习笔记
Linux目录结构#xff1a;
具体的目录结构: /bin [重点] (/usr/bin 、 /usr/local/bin)
• 是Binary的缩写, 这个目录存放着最经常使用的命令 /home [重点]
• 存放普通用户的主目录#xff0c;在Linux中每个用户都有一个自己的目录#xff0c;一…Linux基础学习笔记
Linux目录结构
具体的目录结构:
Ø /bin [重点] (/usr/bin 、 /usr/local/bin)
• 是Binary的缩写, 这个目录存放着最经常使用的命令
Ø /home [重点]
• 存放普通用户的主目录在Linux中每个用户都有一个自己的目录一般
该目录名是以用户的账号命名的。
Ø /root [重点]
• 该目录为系统管理员也称作超级权限者的用户主目录。
/lib
• 系统开机所需要最基本的动态连接共享库其作用类似于Windows里的DLL文件。几
乎所有的应用程序都需要用到这些共享库。
Ø /lostfound
• 这个目录一般情况下是空的当系统非法关机后这里就存放了一些文件。
Ø /etc [重点]
• 所有的系统管理所需要的配置文件和子目录 my.conf
Ø /usr [重点]
• 这是一个非常重要的目录用户的很多应用程序和文件都放在这个目录下类似与
windows下的program files目录。
Ø /boot [重点]
• 存放的是启动Linux时使用的一些核心文件包括一些连接文件以及镜像文件
Ø /proc
• 这个目录是一个虚拟的目录它是系统内存的映射访问这个目录来获取系统信息。
Ø /srv
• service缩写该目录存放一些服务启动之后需要提取的数据。
Ø /sys
• 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs
Ø /tmp
• 这个目录是用来存放一些临时文件的。
Ø /dev
• 类似于windows的设备管理器把所有的硬件用文件的形式存储。
Ø /media [重点]
• linux系统会自动识别一些设备例如U盘、光驱等等当识别后linux
会把识别的设备挂载到这个目录下。
Ø /mnt [重点]
• 系统提供该目录是为了让用户临时挂载别的文件系统的我们可以将外部的存储挂
载在/mnt/上然后进入该目录就可以查看里的内容了。 d:/myshare
Ø /opt
• 这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。
默认为空。
Ø /usr/local [重点]
• 这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。
Ø /var [重点]
• 这个目录中存放着在不断扩充着的东西习惯将经常被修改的目录放在这个目录下。
包括各种日志文件。
Ø /selinux [security-enhanced linux] 360
• SELinux是一种安全子系统,它能控制程序只能访问特定文件。
Linux实操
vi和vim的基本介绍
所有的 Linux 系统都会内建 vi 文本编辑器。
Vim 具有程序编辑的能力可以看做是Vi的增强版本可以主动的以字体颜色辨别
语法的正确性方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别
丰富在程序员中被广泛使用。
l vi和vim常用的三种模式
正常模式:
以 vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中 你可以使用『上下左右』按键来移动光标你可以使用『删除字符』或『删除整行』来处理档案内容
也可以使用『复制、贴上』来处理你的文件数据。
插入模式:
按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可.
命令行模式
在这个模式当中 可以提供你相关指令完成读取、存盘、替换、离开 vim 、显示行号等的动作则是在此模式中达成的
快捷键练习 拷贝当前行 yy , 拷贝当前行向下的5行 5yy并粘贴。 删除当前行 dd , 删除当前行向下的5行 5dd 在文件中查找某个单词 [命令行下 /关键字 回车 查找 , 输入 n 就是查找下一个 ] 设置文件的行号取消文件的行号.[命令行下 : set nu 和 :set nonu] 编辑 /etc/profile 文件使用快捷键到底文档的最末行[G]和最首行[gg] 在一个文件中输入 “hello” ,然后又撤销这个动作 u 编辑 /etc/profile 文件并将光标移动到 20行 shiftg
关机重启命令
基本介绍:
shutdown –h now 立该进行关机
shudown -h 1 “hello, 1 分钟后会关机了”
shutdown –r now 现在重新启动计算机
halt 关机作用和上面一样.
reboot 现在重新启动计算机
sync 把内存的数据同步到磁盘.
用户登录和注销
基本介绍:
登录时尽量少用root帐号登录因为它是系统管理员最大的权限避免操作失误。可
以利用普通用户登录登录后再用”su - 用户名’命令来切换成系统管理员身份.
在提示符下输入 logout 即可注销用户
添加用户
基本语法
useradd 用户名
细节说明 当创建用户成功后会自动的创建和用户同名的家目录 也可以通过 useradd -d 指定目录 新的用户名给新创建的用户指定家目录
指定/修改密码
基本语法
passwd 用户名
删除用户
基本语法
userdel 用户名
切换用户
介绍
在操作Linux中如果当前用户的权限不够可以通过 su - 指令切换到高权限用户比如root
基本语法
su – 切换用户名
细节说明 从权限高的用户切换到权限低的用户不需要输入密码反之需要。 当需要返回到原来用户时使用exit指令
查看当前用户/登录用户
基本语法
whoami/ who am I
用户组
介绍
类似于角色系统可以对有共性的多个用户进行统一的管理。
新增组
• 指令
groupadd 组名
删除组
• 指令(基本语法)
groupdel 组名
• 指令(基本语法)
useradd –g 用户组 用户名
增加一个用户 zwj, 直接将他指定到 wudang
修改用户的组
• 指令(基本语法)
usermod –g 用户组 用户名
用户和组的相关文件
/etc/passwd 文件
用户user的配置文件记录用户的各种信息
每行的含义用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
/etc/shadow 文件
口令的配置文件
每行的含义登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警
告时间:不活动时间:失效时间:标志
/etc/group 文件
组(group)的配置文件记录Linux包含的组的信息
每行含义组名:口令:组标识号:组内用户列表
指定运行级别
基本介绍:
运行级别说明
0 关机
1 单用户【找回丢失密码】
2多用户状态没有网络服务
3多用户状态有网络服务
4系统未使用保留给用户
5图形界面
6系统重启
常用运行级别是3和5 要修改默认的运行级别可改文件
/etc/inittab的id:5:initdefault:这一行中的数字
命令init [012356]
帮助指令
man 获得帮助信息
• 基本语法
man [命令或配置文件]功能描述获得帮助信息
help指令
• 基本语法
help 命令 功能描述获得shell内置命令的帮助信息
文件目录类
pwd 指令
• 基本语法
pwd (功能描述显示当前工作目录的绝对路径)
ls指令
• 基本语法
ls [选项] [目录或是文件]
• 常用选项
-a 显示当前目录所有的文件和目录包括隐藏的。
-l 以列表的方式显示信息
cd 指令
• 基本语法
cd [参数] (功能描述切换到指定目录)
• 常用参数
绝对路径和相对路径
cd ~ 或者cd 回到自己的家目录
cd … 回到当前目录的上一级目录
mkdir指令
mkdir指令用于创建目录
• 基本语法
mkdir [选项] 要创建的目录
• 常用选项
-p 创建多级目录
rmdir指令
rmdir指令删除空目录
• 基本语法
rmdir [选项] 要删除的空目录
• 使用细节
rmdir 删除的是空目录如果目录下有内容时无法删除的。
提示如果需要删除非空目录需要使用 rm -rf 要删除的目录
touch指令
touch指令创建空文件
• 基本语法
touch 文件名称
cp指令
cp 指令拷贝文件到指定目录
• 基本语法
cp [选项] source dest
• 常用选项
-r 递归复制整个文件夹
• 使用细节
强制覆盖不提示的方法\cp
rm指令
rm 指令移除文件或目录
• 基本语法
rm [选项] 要删除的文件或目录
• 常用选项
-r 递归删除整个文件夹
-f 强制删除不提示
• 使用细节
强制删除不提示的方法带上 -f 参数即可
mv指令
mv 移动文件与目录或重命名
• 基本语法
mv oldNameFile newNameFile (功能描述重命名)
mv /temp/movefile /targetFolder (功能描述移动文件)
cat指令
cat 查看文件内容
• 基本语法
cat [选项] 要查看的文件
• 常用选项
-n 显示行号
• 使用细节
cat 只能浏览文件而不能修改文件为了浏览方便一般会带上 管道命令 | more
more指令
more指令是一个基于VI编辑器的文本过滤器它以全屏幕的方式按页显示文本文件的内容。
more指令中内置了若干快捷键详见操作说明
• 基本语法
more 要查看的文件
/etc/profile
操作 功能说明
空白键 (space) 代表向下翻一页
Enter 代表向下翻『一行』
q 代表立刻离开 more 不再显示该文件内容。
CtrlF 向下滚动一屏
CtrlB 返回上一屏 输出当前行的行号
:f 输出文件名和当前行的行号
less指令
less指令用来分屏查看文件内容它的功能与more指令类似但是比more指令更加强大支持各种显示终端。less指令在显示文件内容时并不是一次将整个文件加载之后才显示而是根据显示需要加载内容对于显示大型文件具有较高的效率。
• 基本语法
less 要查看的文件
操作 功能说明
空白键 向下翻动一页
[pagedown] 向下翻动一页
[pageup] 向上翻动一页
/字串 向下搜寻『字串』的功能n向下查找N向上查找
?字串 向上搜寻『字串』的功能n向上查找N向下查找
q 离开 less 这个程序
echo指令
echo输出内容到控制台。
• 基本语法
echo [选项] [输出内容]
head指令
head用于显示文件的开头部分内容默认情况下head指令显示文件的前10行内容
• 基本语法
head 文件 (功能描述查看文件头10行内容)
head -n 5 文件 (功能描述查看文件头5行内容5可以是任意行数)
tail指令
tail用于输出文件中尾部的内容默认情况下tail指令显示文件的前10行内容。
• 基本语法 tail 文件 功能描述查看文件头10行内容 tail -n 5 文件 功能描述查看文件头5行内容5可以是任意行数 tail -f 文件 功能描述实时追踪该文档的所有更新 指令 和 指令 输出重定向和 追加 • 基本语法 ls -l 文件 功能描述列表的内容写入文件a.txt中覆盖写 ls -al 文件 功能描述列表的内容追加到文件aa.txt的末尾 cat 文件1 文件2 功能描述将文件1的内容覆盖到文件2 echo “内容” 文件
ln 指令
软链接也成为符号链接类似于windows里的快捷方式主要存放了链接其他文件的路径
• 基本语法
ln -s [原文件或目录] [软链接名] 功能描述给原文件创建一个软链接
• 细节说明
当我们使用pwd指令查看目录时仍然看到的是软链接所在目录。
history指令
查看已经执行过历史命令,也可以执行历史指令
• 基本语法
history 功能描述查看已经执行过历史命令
时间日期类
date指令-显示当前日期
• 基本语法 date 功能描述显示当前时间 date %Y 功能描述显示当前年份 date %m 功能描述显示当前月份 date %d 功能描述显示当前是哪一天 date “%Y-%m-%d %H:%M:%S”功能描述显示年月日时分秒
date指令-设置日期
• 基本语法
date -s 字符串时间
cal指令
查看日历指令
• 基本语法
cal [选项] 功能描述不加选项显示本月日历
搜索查找类
find指令
find指令将从指定目录向下递归地遍历其各个子目录将满足条件的文件或者目录显示在终
端。
• 基本语法
find [搜索范围] [选项]
• 选项说明
locate指令
locaate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径
的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统查询速度较快。
为了保证查询结果的准确度管理员必须定期更新locate时刻。
• 基本语法
locate 搜索文件
• 特别说明
由于locate指令基于数据库进行查询所以第一次运行前必须使用updatedb指令创建locate
数据库。
grep指令和 管道符号 |
grep 过滤查找 管道符“|”表示将前一个命令的处理结果输出传递给后面的命令处理。
• 基本语法
grep [选项] 查找内容 源文件
• 常用选项
gzip/gunzip 指令
gzip 用于压缩文件 gunzip 用于解压的
• 基本语法
gzip 文件 功能描述压缩文件只能将文件压缩为*.gz文件
gunzip 文件.gz 功能描述解压缩文件命令
zip/unzip 指令
zip 用于压缩文件 unzip 用于解压的这个在项目打包发布中很有用的
• 基本语法
zip [选项] XXX.zip 将要压缩的内容功能描述压缩文件和目录的命令
unzip [选项] XXX.zip 功能描述解压缩文件
• zip常用选项
-r递归压缩即压缩目录
• unzip的常用选项
-d目录 指定解压后文件的存放目录
tar 指令
tar 指令 是打包指令最后打包后的文件是 .tar.gz 的文件。
• 基本语法
tar [选项] XXX.tar.gz 打包的内容 (功能描述打包目录压缩后的文件格式.tar.gz)
• 选项说明
Linux组基本介绍
在linux中的每个用户必须属于一个组不能独立于组外。在linux中每个文件
有所有者、所在组、其它组的概念。 所有者 所在组 其它组 改变用户所在的组
文件/目录 所有者
一般为文件的创建者,谁创建了该文件就自然的成为该文件的所有者。
查看文件的所有者
指令ls –ahl 修改文件所有者
• 指令chown 用户名 文件名
组的创建
基本指令
groupadd 组名
当某个用户创建了一个文件后这个文件的所在组就是该用户所在的组。
查看文件/目录所在组
• 基本指令
ls –ahl
• 基本指令
chgrp 组名 文件名
其它组
除文件的所有者和所在组的用户外系统的其它用户都是文件的其它组。
改变用户所在组
在添加用户时可以指定将该用户添加到哪个组中同样的用root的管理权限可以改变某
个用户所在的组。
改变用户所在组 usermod –g 组名 用户名 usermod –d 目录名 用户名 改变该用户登陆的初始目录
权限的基本介绍
ls -l 中显示的内容如下
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9位说明 第0位确定文件类型(d, - , l , c , b) 第1-3位确定所有者该文件的所有者拥有该文件的权限。—User 第4-6位确定所属组同用户组的拥有该文件的权限—Group 第7-9位确定其他用户拥有该文件的权限 —Other
rwx权限详解
rwx作用到文件 [ r ]代表可读(read): 可以读取,查看 [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是
对该文件所在的目录有写权限才能删除该文件.
[ x ]代表可执行(execute):可以被执行
rwx作用到目录 [ r ]代表可读(read): 可以读取ls查看目录内容 [ w ]代表可写(write): 可以修改,目录内创建删除重命名目录 [ x ]代表可执行(execute):可以进入该目录
文件及目录权限实际案例
ls -l 中显示的内容如下
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
10个字符确定不同用户能对文件干什么
第一个字符代表文件类型 文件 (-),目录(d),链接(l)
其余字符每3个一组(rwx) 读® 写(w) 执行(x)
第一组rwx : 文件拥有者的权限是读、写和执行
第二组rw- : 与文件拥有者同一组的用户的权限是读、写但不能执行
第三组r-- : 不与文件拥有者同组的其他用户的权限是读不能写和执行
可用数字表示为: r4,w2,x1 因此rwx4217
1 文件硬连接数或 目录子目录数
root 用户
root 组
1213 文件大小(字节)如果是文件夹显示 4096字节
Feb 2 09:39 最后修改日期
abc 文件名
修改权限-chmod
基本说明
通过chmod指令可以修改文件或者目录的权限。
第一种方式 、-、 变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和) chmod urwx,grx,ox 文件目录名 chmod ow 文件目录名 chmod a-x 文件目录名
第二种方式通过数字变更权限
r4 w2 x1 rwx4217
chmod urwx,grx,ox 文件目录名
相当于 chmod 751 文件目录名
修改文件所有者-chown
基本介绍
chown newowner file 改变文件的所有者
chown newowner:newgroup file 改变用户的所有者和所有组
-R 如果是目录 则使其下所有子文件或目录递归生效
修改文件所在组-chgrp
基本介绍
chgrp newgroup file 改变文件的所有组
crond 任务调度
crontab 进行 定时任务的设置。
概述
任务调度是指系统在某个时间执行的特定的命令或程序。
任务调度分类1.系统工作有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作个别用户可能希望执行某些程序比如对mysql数据库的备份。
基本语法
crontab [选项]
常用选项
快速入门
设置任务调度文件/etc/crontab
设置个人任务调度。执行crontab –e命令。
接着输入任务到调度文件
如*/1 * * * * ls –l /etc/ /tmp/to.txt
意思说每小时的每分钟执行ls –l /etc/ /tmp/to.txt命令
参数细节说明
• 5个占位符的说明
参数细节说明
• 特殊符号的说明
参数细节说明
• 特定时间执行任务案例
crond 相关指令: conrtab –r终止任务调度。 crontab –l列出当前有那些任务调度 service crond restart [重启任务调度]
分区基础知识
分区的方式
mbr分区:
1.最多支持四个主分区
2.系统只能安装在主分区
3.扩展分区要占一个主分区
4.MBR最大只支持2TB但拥有最好的兼容性
gtp分区:
1.支持无限多个主分区但操作系统可能限制比如 windows下最多128个分区
2.最大支持18EB的大容量1EB1024 PB1PB1024 TB
3.windows7 64位以后支持gtp
windows下的磁盘分区
原理介绍
Linux来说无论有几个分区分给哪一目录使用它归根结底就只有一个根目录一个独
立且唯一的文件结构 , Linux中每个分区都是用来组成整个文件系统的一部分。
Linux采用了一种叫“载入”的处理方法它的整个文件系统中包含了一整套的文件和目
录且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一
个目录下获得。
示意图
硬盘说明 Linux硬盘分IDE硬盘和SCSI硬盘目前基本上是SCSI硬盘 对于IDE硬盘驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型这里是指
IDE硬盘了。“x”为盘号a为基本盘b为基本从属盘c为辅助主盘d为辅助从属
盘,“~”代表分区前四个分区用数字1到4表示它们是主分区或扩展分区从5开始就
是逻辑分区。例hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为
第二个IDE硬盘上的第二个主分区或扩展分区。
对于SCSI硬盘则标识为“sdx~”SCSI硬盘是用“sd”来表示分区所在设备的类型的其余
则和IDE硬盘的表示方法一样。
查看所有设备挂载情况
命令 lsblk 或者 lsblk -f
磁盘情况查询
查询系统整体磁盘使用情况
• 基本语法
df -h
查询指定目录的磁盘占用情况
• 基本语法
du -h /目录
查询指定目录的磁盘占用情况默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
–max-depth1 子目录深度
-c 列出明细的同时增加汇总值
进程管理
基本介绍
在LINUX中每个执行的程序代码都称为一个进程。每一个进程都分配一
个ID号。
每一个进程都会对应一个父进程而这个父进程可以复制多个子进程。例
如www服务器。
每个进程都可能以两种方式存在的。前台与后台所谓前台进程就是用户目
前的屏幕上可以进行操作的。后台进程则是实际在操作但由于屏幕上无法
看到的进程通常使用后台方式执行。
一般系统的服务都是以后台进程的方式存在而且都会常驻在系统中。直到
关机才才结束。
显示系统执行的进程
基本介绍
ps命令是用来查看目前系统中有哪些正在执行以及它们执行的状况。
可以不加任何参数.
显示系统执行的进程
ps详解 指令ps –aux|grep xxx 比如我看看有没有sshd服务 指令说明
• System V展示风格
• USER用户名称
• PID进程号
• %CPU进程占用CPU的百分比
• %MEM进程占用物理内存的百分比
• VSZ进程占用的虚拟内存大小单位KB
• RSS进程占用的物理内存大小单位KB
• TT终端名称,缩写 .
• STAT进程状态其中S-睡眠s-表示该进程是会话的先导进程N-表示进程拥有比普通
优先级更低的优先级R-正在运行D-短期等待Z-僵死进程T-被跟踪或者被停止等等
• STARTED进程的启动时间
• TIMECPU时间即进程使用CPU的总时间
• COMMAND启动进程所用的命令和参数如果过长会被截断显示
终止进程kill和killall
介绍:
若是某个进程执行一半需要停止时或是已消了很大的系统资源时此时可以考虑停止该
进程。使用kill命令来完成此项任务。
基本语法
kill [选项] 进程号功能描述通过进程号杀死进程
killall 进程名称 功能描述通过进程名称杀死进程也支持通配符这在系统因负
载过大而变得很慢时很有用
常用选项
-9 :表示强迫进程立即停止
查看进程树pstree
基本语法
pstree [选项] ,可以更加直观的来看进程信息
常用选项
-p :显示进程的PID
-u :显示进程的所属用户
服务(service)管理
介绍:
服务(service) 本质就是进程但是是运行在后台的通常都会监听某个端口等待其它程
序的请求比如(mysql , sshd 防火墙等)因此我们又称为守护进程是Linux中非常重要的
知识点。【原理图】
service管理指令
service 服务名 [start | stop | restart | reload | status]
在CentOS7.0后 不再使用service ,而是 systemctl
查看服务名:
方式1使用setup - 系统服务 就可以看到。
方式2: /etc/init.d/服务名称
服务的运行级别(runlevel):
查看或者修改默认级别 vi /etc/inittab
Linux系统有7种运行级别(runlevel)常用的是级别3和5
• 运行级别0系统停机状态系统默认运行级别不能设为0否则不能正常启动
• 运行级别1单用户工作状态root权限用于系统维护禁止远程登陆
• 运行级别2多用户状态(没有NFS)不支持网络
• 运行级别3完全的多用户状态(有NFS)登陆后进入控制台命令行模式
• 运行级别4系统未使用保留
• 运行级别5X11控制台登陆后进入图形GUI模式
• 运行级别6系统正常关闭并重启默认运行级别不能设为6否则不能正常启动
开机的流程说明
chkconfig指令
• 介绍
通过chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭
• 基本语法 查看服务 chkconfig --list|grep xxx chkconfig 服务名 --list chkconfig --level 5 服务名 on/off
动态监控进程
介绍
top与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处在于top在执行一段时间可以更新正在运行的的进程。
基本语法
top [选项]
选项说明
交互操作说明
查看系统网络情况netstat
• 基本语法
netstat [选项]
• 选项说明
-an 按一定顺序排列输出
-p 显示哪个进程在调用
检测主机连接命令ping
是一种网络检测检测工具它主要是用检测远程主机是否正常或是两部主机间
的介质是否为断、网线是否脱落或网卡故障。
如: ping 对方ip地址
Shell编程
Shell是一个命令行解释器它为用户提供了一个向Linux内核发送请求以便运行程序的
界面系统级程序用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
Shell脚本的执行方式
脚本格式要求 脚本以#!/bin/bash开头 脚本需要有可执行权限
编写第一个Shell脚本
• 需求说明
创建一个Shell脚本输出hello world!
脚本的常用执行方式
• 方式1(输入脚本的绝对路径或相对路径)
1)首先要赋予helloworld.sh 脚本的x权限
2)执行脚本
• 方式2(sh脚本)
说明不用赋予脚本x权限直接执行即可。
Shell的变量
Shell的变量的介绍
1Linux Shell中的变量分为系统变量和用户自定义变量。
2系统变量 H O M E 、 HOME、 HOME、PWD、 S H E L L 、 SHELL、 SHELL、USER等等
比如 echo $HOME 等等…
3显示当前shell中所有变量set
shell变量的定义
• 基本语法
1)定义变量变量值
2)撤销变量unset 变量
声明静态变量readonly变量注意不能unset
shell变量的定义
• 定义变量的规则 变量名称可以由字母、数字和下划线组成但是不能以数字开头。 等号两侧不能有空格 变量名称一般习惯为大写
• 将命令的返回值赋给变量
1Als -la 反引号运行里面的命令并把结果返回给变量A
2A$(ls -la) 等价于反引号
设置环境变量
基本语法 export 变量名变量值 功能描述将shell变量输出为环境变量 source 配置文件 功能描述让修改后的配置信息立即生效 echo $变量名 功能描述查询环境变量的值
快速入门 在/etc/profile文件中定义TOMCAT_HOME环境变量 查看环境变量TOMCAT_HOME的值 在另外一个shell程序中使用 TOMCAT_HOME
注意在输出JAVA_HOME 环境变量前需要让其生效
source /etc/profile
位置参数变量
介绍
当我们执行一个shell脚本时如果希望获取到命令行的参数信息就可以使用到位置参数变量
比如 ./myshell.sh 100 200 , 这个就是一个执行shell的命令行可以在myshell 脚本中获取到参数信息
基本语法
$n 功能描述n为数字$0代表命令本身$1-$9代表第一到第九个参数十以上的参数十以上的参
数需要用大括号包含如${10} ∗ 功能描述这个变量代表命令行中所有的参数 * 功能描述这个变量代表命令行中所有的参数 ∗功能描述这个变量代表命令行中所有的参数*把所有的参数看成一个整体 功能描述这个变量也代表命令行中所有的参数不过 功能描述这个变量也代表命令行中所有的参数不过 功能描述这个变量也代表命令行中所有的参数不过把每个参数区分对待
$#功能描述这个变量代表命令行中所有参数的个数
预定义变量
基本介绍
就是shell设计者事先已经定义好的变量可以直接在shell脚本中使用
基本语法
$$ 功能描述当前进程的进程号PID
$! 功能描述后台运行的最后一个进程的进程号PID
$ 功能描述最后一次执行的命令的返回状态。如果这个变量的值为0证明上一个命令正确执行如果这个变量的值为非0具体是哪个数由命令自己来决定则证明上一个命令执行不正确了。
运算符
基本语法 “ ( ( 运算式 ) ) ”或“ ((运算式))”或“ ((运算式))”或“[运算式]” expr m n
注意expr运算符间要有空格 expr m - n expr *, /, % 乘除取余
条件判断
判断语句
• 基本语法
[ condition ]注意condition前后要有空格
#非空返回true可使用$?验证0为true1为false
判断语句
• 常用判断条件
两个整数的比较 字符串比较
-lt 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于
按照文件权限进行判断
-r 有读的权限
-w 有写的权限
-x 有执行的权限
3)按照文件类型进行判断
-f 文件存在并且是一个常规的文件
-e 文件存在
-d 文件存在并是一个目录
流程控制
if 判断
• 基本语法
if [ 条件判断式 ];then
程序
fi
或者
if [ 条件判断式 ]
then
程序
elif [条件判断式]
then
程序
fi
注意事项1[ 条件判断式 ]中括号和条件判断式之间必须有空格 (2) 推荐使用第二种方式
case语句
• 基本语法
case $变量名 in
“值1”
如果变量的值等于值1则执行程序1
;;
“值2”
如果变量的值等于值2则执行程序2
;;
…省略其他分支…
*
如果变量的值都不是以上的值则执行此程序
;;
esac
for循环
• 基本语法1
for 变量 in 值1 值2 值3…
do
程序
done
• 基本语法2
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
while循环
• 基本语法1
while [ 条件判断式 ]
do
程序
done
read读取控制台输入
基本语法
read(选项)(参数)
选项
-p指定读取值时的提示符
-t指定读取值时等待的时间秒如果没有在指定的时间内输入就不再等待了。。
参数
变量指定读取值的变量名
函数
函数介绍
shell编程和其它编程语言一样有系统函数也可以自定义函数。系统函数中
我们这里就介绍两个。
系统函数
• basename基本语法
功能返回完整路径最后 / 的部分常用于获取文件名
basename [pathname] [suffix]
basename [string] [suffix] 功能描述basename命令会删掉所有的前缀包括最后一个‘/’
字符然后将字符串显示出来。
选项
suffix为后缀如果suffix被指定了basename会将pathname或string中的suffix去掉。
系统函数
• dirname基本语法
功能返回完整路径最后 / 的前面的部分常用于返回路径部分
dirname 文件绝对路径 功能描述从给定的包含绝对路径的文件名中去除文件名非目录的部分
然后返回剩下的路径目录的部分
自定义函数
• 基本语法
[ function ] funname[()]
{
Action;
[return int;]
}
调用直接写函数名funname [值]