IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux笔记 -> 正文阅读

[系统运维]Linux笔记

Linux笔记(没有消息就是好消息)

常用指令

# 切换当前工作目录
cd [dirName]
cd ~ # 回到自己家目录
cd .. # 回到当前目录的上一级目录

# 显示当前所在目录的绝对路径
pwd

# 清除客户端当前显示的内容
clear

# 获得帮助信息
man [命令或配置文件] # 获得帮助信息
help 命令 # 获得shell内置命令的帮助信息
ls -a # 列出所有文件,包括隐藏文件,隐藏文件都是以 . 开头的

linux目录结构

  • /

    系统的根目录,Linux中的所有目录都存在这个目录下面

  • /bin [常用] (/usr/bin、/usr/local/bin)

    是binary的缩写,存放着经常使用的命令

  • /sbin (/usr/sbin、/usr/local/sbin)

    存放系统管理员使用的系统管理程序

  • /root [常用]

    系统管理员的主目录

  • /home [常用]

    存放普通用户的主目录,其中的目录一般是以每个用户的账号命名的

  • /lost+found [隐藏目录]

    当系统非法关机后,这里才会存放一些文件

  • /lib

    系统开机或者其中的应用程序需要用到的一些共享库

  • /etc [常用]

    所有的系统管理所需要的配置文件和子目录

  • /usr [常用]

    用户的很多应用程序和文件存放的位置,类似windows中的program files

  • /boot [常用]

    存放启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件

  • /proc (不要随意修改)

    这个目录时一个虚拟的目录,他是系统内存的映射,访问这个目录来获取系统信息

  • /srv (不要随意修改)

    是service的缩写,存放一些服务启动之后需要提取的数据

  • /sys (不要随意修改)

    这是Linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs

  • /tmp

    存放一些临时文件

  • /dev

    类似windos的设备管理器,把所有硬件用文件的形式存储

  • /media [常用]

    Linux会把识别的一些外部设备挂载到这个目录下,如U盘、光驱等等。

  • /mnt [常用]

    供以临时挂载别的文件系统,可以将外部的存储挂载到此目录中,然后进入该目录就能查看到其中过的内容

  • /opt

    存放主机额外安装软件所需要的软件包

  • /usr/local [常用]

    这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码方式安装的程序

  • /var [常用]

    这个目录存放着不断扩充的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件。

  • /selinux [security-enhanced linux]

    SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置,未开启安全模式此目录就不存在

Vi和Vim的基本使用

vi和vim的三种模式

  1. 正常模式

    以vim打开一个档案就直接进入一般模式了(默认),在该模式下,可以使用上下左右按键来移动光标,你可以使用删除字符和删除整行来处理文档内容,也可以使用复制粘贴来处理你的文件数据

  2. 编辑模式

    按下i、o、a、r(大小写都可以)其中一个,就可以进入该模式

  3. 命令行模式

    在编辑模式下按Esc,再输入一个 : ,就能够进入该模式。在该模式下,你可以使用一些相关指令,完成读取、保存、替换、离开vim、显示啊行号等操作

常用快捷键

# vim中退出,命令行模式输入
:q
:q!

# vim中复制一行或多行,正常模式下输入
yy # 复制当前行
3yy # 复制当前行向下共三行

# 粘贴,正常模式下输入
p

# 删除一行或多行
dd # 删除当前行
5dd # 删除当前行向下共五行

# 查找,命令行模式下
/查找内容 # 按回车插值
n # 按n跳到下一个

# 显示行号,命令行模式下
set nu

# 不显示行号,命令行模式下
set nonu

# 跳转末行,正常模式下
G # 大写

# 跳转首行
gg

# 撤销上一步操作,正常模式下
u

# 跳到指定行,正常模式下
20 shift+g

关机重启

shutdown -h now # h为halt(等等)缩写,现在立刻关机
shutdown -h 1 # 一分钟之后关机,并提醒所连接的终端
shutdown # 与shutdown -h 1功能一样
shutdown -r now # r为reboot缩写,现在立刻重启
halt # 立刻关机
reboot # 立刻重启
sync # 将内存的数据同步到磁盘

用户注销

su - 用户名 # 切换用户
su # 切换用户为root
logout # 用户注销

用户管理

useradd 用户名 # 添加一个指定用户名的用户
useradd -d 目录名 用户名 # 添加一个用户并创建指定家目录
passwd 用户名 # 给指定用户修改密码
passwd # 给当前登录用户修改密码
userdel 用户名 # 删除指定用户,并保留其家目录
userdel -r 用户名 # 删除指定用户,并删除其家目录
id 用户名 # 查看指定用户的信息
who am i # 查看当前客户端第一次登录的用户

用户组(用于多用户权限管理)

groupadd 组名 # 添加一个组
groupdel 组名 # 删除一个组
useradd -g 用户组 用户名 # 添加一个指定用户并将其添加到指定用户组
usermod -g 用户组 用户名 # 修改一个指定用户所在的用户组

用户和组的相关文件

  • /etc/password文件

    用户的配置文件,记录用户的各种信息
    每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

  • /etc/shadow文件

    口令的配置文件
    每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告是按:不活动时间:失效时间:标志

  • /etc/group文件

    组的配置文件,记录Linux包含的组的信息
    每行的含义:组名:口令:组标识号:组内用户列表

Linux运行级别

运行级别描述
0关机
1单用户[找回丢失密码]
2多用户状态没有网络服务
3多用户状态有网络服务
4系统未使用保留给用户
5图形界面
6系统重启
init [0123456] # 切换到指定的运行级别
systemctl get-default # 获取默认系统运行级别
systemctl set-default target # 设置系统的默认运行级别

文件目录指令

  • cd指令
cd 目录 # 切换当前工作目录
cd ~ # 切换到当前用户家目录
cd .. # 切换到当前目录的上一级目录
  • mkdir指令
mkdir 目录名 # 创建指定名的目录
mkdir -p 目录名 # 创建多级目录
  • rmdir指令
rmdir 要删除的空目录 # 删除一个空目录
rm -rf 目录名 # 强制删除一个目录,不论是否为空
  • touch指令
touch 文件名称 # 创建空文件
  • cp指令
cp [选项] source dest # 拷贝文件到指定目录
cp -r source dest # 递归拷贝整个文件夹
\cp -r source dest # 强制覆盖不提示拷贝
  • rm指令

    常用选项:

选项描述
-r递归删除整个文件夹
-f强制删除不提示
rm [选项] 要删除的文件或目录
  • mv指令:移动文件或目录或重命名
mv oldFileName newFileName # 重命名
mv 目录名 另一个目录名 # 移动目录
  • cat指令:查看文件内容

    常用选项:

选项描述
-n显示行号
cat [选项] 要查看的文件
  • | 管道符号

    将管道符前面指令的结果交给管道符后面的指令继续执行

cat 要查看的文件 | more # 把cat获得的内容交给more处理
  • more指令

    more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容,more指令中内置了若干快捷键

    常用快捷键:

选项描述
空格键向下翻一页
enter向下翻一行
q立刻离开more
ctrl+f向下滚动一屏
ctrl+b返回上一屏
=输出当前行的行号
:f输出文件名和当前行的行号
more 要查看的文件
  • less指令:分屏查看文件内容,与more指令类似,但是比more更加强大,而且会动态加载文件内容,对于大型文件具有较高的效率

    常用快捷键:

选项描述
空格键向下翻一页
pagedown向下翻一页
pageup向上翻一页
/字串向下搜寻字串的功能:n:向下查找;N:向上查找
?字串向上搜寻字串的功能,同上/
q退出less
less 要查看的文件名
  • echo指令:输出内容到控制台
echo [选项] [输出内容]
  • head指令:显示文件的开头部分内容,默认情况下head会显示文件的前10行内容
head 文件名 # 默认查看10行文件的内容
head -n 5 文件名 # 查看指定行数的文件内容
  • tail指令:输出文件中尾部的内容,默认显示前10行内容
tail 文件 # 查看尾10行内容
tail -n 5 文件 # 查看文件尾5行内容
tail -f 文件 # 实时追踪该文档的所有更新
  • >指令和>>指令

    >输出重定向和>>追加

ls -l > 文件
cat 文件1 > 文件2
  • ln指令:创建软链接,类似windows中的快捷方式
ln -s 原文件或目录 软链接名 # 创建软链接
rm 软链接名 # 删除一个软链接
  • history指令:查看历史执行的指令
history # 查看所有历史命令
history 10 # 查看最近使用过的10条指令
!10 # 执行历史编号为10的指令

时间日期指令

  • date指令:显示当前日期
date # 显示当前时间
date +%Y # 显示当前年份
date +%m # 显示当前月份
date +%d # 显示当前是哪一天
date "%Y-%m-%d %H:%M:%S" # 格式化输出年月日时分秒

date -s 字符串时间 # 设置系统当前时间
  • cal指令
cal # 查看本月日历
cal 2021 # 查看2021年的每个月的日历

查找指令

  • find指令

    常用选项:

选项描述
-name<文件名>按照指定文件名查找文件
-user<用户名>查找指定用户的的所有文件
-size<文件大小>按照指定文件大小查找文件
find [搜索范围] [选项]
find / -size +200M # 查找根目录下大于200m的文件
find / -size -200M # 查找根目录下小于200m的文件
find / -size 200M # 查找根目录下等于200m的文件
  • locate指令:快速定位文件路径,通过查找事先建立的locate数据库实现快速定位
  • updatedb更新当前的locate数据库
locate 搜索文件
  • which指令:查看某个指令所在的目录
which ls # 查看ls指令所在的目录
  • grep指令

    常用选项:

选项描述
-n显示匹配行及行号
-i忽略字母大小写
grep [选项] 查找内容 源文件

压缩和解压

  • gzip/gunzip指令:gzip用于压缩文件,gunzip用于解压缩文件
gzip 文件 # 压缩指定文件
gunzip 文件.gz # 解压缩文件命令
  • zip/unzip指令:zip用于压缩文件,unzip用于解压

    zip常用选项

选项描述
-r递归压缩,即压缩目录

unzip常用选项

选项描述
-d<目录>指定解压后文件的存放目录
zip [选项] xxx.zip 将要压缩的内容 # 将要压缩的内容
unzip [选项] xxx.zip # 解压缩文件
  • tar指令:tar指令是打包指令,最后打包的文件是.tar.gz文件

    选项说明:

选项描述
-c产生.tar打包文件
-v显示详细信息
-f指定压缩后的文件名
-z打包同时压缩
-x解包.tar文件
-C指定解压文件到那个目录
tar [选项] xxx.tar.gz 打包的内容

Linux组的概念

  • 所有者:一般文件的创建者就是该文件的所有者
ls -ahl # 查看文件的所有者
chown 用户名 文件名 # 修改文件所有者
  • 所在组:文件所在的组,当一个用户创建一个文件时,该文件所在的组默认就是该文件所有者所在的组
chgrp 新的组 文件 # 将指定文件所在组修改为新的组
usermod -g 新组名 用户名 # 修改用户的所在组
usermod -d 目录名 用户名 # 修改用户的家目录

Linux中rwx权限

在使用ls -l命令时显示内容如下:

drwxr-xr-x. 2 root root 4096 8月  10 23:51 公共

0-9位说明:

  1. 第0位确定文件类型(d , - , l , c , b)

    -是普通文件,如hello.txt

    l是链接,相当于windows中的快捷方式

    d是目录,相当于windows中的文件夹

    c是字符设备文件,鼠标,键盘

    b是块设备,比如硬盘

  2. 第1-3位确定所有者(该文件的所有者)拥有该文件的权限 -User

  3. 第4-6位去顶所属组(同用户组的)拥有该文件的权限 -Group

  4. 第7-9位去欸的那个其他用户拥有该文件的权限 -Other

rwx权限详解

  • rwx作用到文件

    • r 代表可读(read):可以读取、查看
    • w 代表可写(write):可以修改,但是不代表可以删除,删除一个文件的前提是对该文件所在的目录有写权限,才能删除该文件
    • x 代表可执行(execute):可以被执行
  • rwx作用到目录

    • r 代表可读(read):可以读取,ls查看目录内容
    • w 代表可写(write):可以修改,对目录内创建+删除+重命名目录
    • x 代表可执行(execute):可以进入该目录
  • 查看文件或目录时每列信息代表的含义

image-20210818231447061

rwx可以用数字标识:r=4,w=2,x=1 ,因此rwx=4+2+1=7

后面的每一列说明:

示例描述
1文件:硬链接数量 目录:子目录数量
root所有者(用户)
root所在组
0文件大小(字节),如果是文件夹,显示4096字节
8月 18 20:09最后修改时间
cat.txt文件名或目录名

修改权限

使用chmod指令,可以修改文件/目录的权限

u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)

  • 第一种方式:使用+,-,=变更权限
chmod u=rwx,g=rx,o=x 文件/目录名 # 给文件或目录赋予指定的权限
chmod o+w 文件/目录名 # 给其他用户赋予写的权限
chmod a-x 文件/目录名 # 给所有用户去掉执行权限
  • 第二种方式:通过数字变更权限

    r=4,w=2,x=1 rwx=4+2+1=7

chmod u=rwx,g=rx,o=x 文件目录名
chmod 751 文件目录名 # 这条语句与上面一条语句等价

修改所在组和所有者

chown指令

chown 新所有者 文件/目录 # 改变所有者
chown 新所有者:新所在组 # 同时修改所在组和所有者
# -R 如果是目录,则使其下的所有子目录或文件递归生效

chgrp指令

chgrp 新的所在组 文件/目录 # 改变文件或目录的所在组

Linux定时任务调度

  • 任务调度:是指系统在某个时间执行的特定的命令或程序

  • 任务调度的分类

    • 系统工作:有些重要的工作必须周而复始地执行,如病毒扫描
    • 个别用户工作:个别用户可能希望执行某些程序,比如对数据库的备份
  • crontab指令:对定时任务进行设置

    常用选项:

选项功能
-e编辑crontab定时任务
-l查询crontab任务
-r删除当前用户所有的crontab任务

先执行crontab -e

然后输入 */1 * * * * ls -l /etc/ > /tmp/to.txt

之后就可以开启一个调度任务,该任务会每分钟执行一次

? ls -l /etc/ > /tmp/to.txt

  • cron表达式解释

*/1 * * * *

项目含义范围
第一个 “*”一小时当中的第几分钟0-59
第二个 “*”一天当中的第几小时0-23
第三个 “*”一个月当中的第几天1-31
第四个 “*”一年当中的第几月1-12
第五个 “*”一周当中的星期几0-7(0和7都代表周日)
  • at任务调度机制
    • at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。
    • 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
    • at命令是一次性定时计划任务,执行完一个任务后不再执行此任务
    • 在使用at命令时,必须保证atd进程的启动,可以使用如下命令来查看atd进程是否启动
ps -ef | grep atd
  • at指令

    常用选项:

选项描述
-m当指定的任务被完成后,将给用户发送邮件,即使没有标准输出
-Iatq的别名
-datrm的别名
-v显示任务被执行的时间
-c打印任务的内容到标准输出
-V显示版本信息
-q <队列>使用指定的队列
-f <文件>从指定文件读入任务而不是从标准输入读入
-t <时间参数>以时间参数的形式提交要运行的任务
at [选项] [时间] # 输入指令后,再输入需要执行的任务,然后按两次Ctrl+D
atq # 查看当前存在的任务
atrm [任务号] # 移除指定任务 

Linux磁盘分区机制

  • lsblk指令:查看系统当前磁盘及分区信息
[root@localhost ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0   17G  0 part /
└─sda3   8:3    0    2G  0 part [SWAP]
sr0     11:0    1 1024M  0 rom  

lsblk -f # 查看磁盘分区的详细信息
  • 分区指令fdisk
fdisk /dev/sdb # 对sdb磁盘进行分区

? 分区中常用的一些命令

命令描述
m显示命令列表
p显示磁盘分区 同fdisk -l
n新增分区
d删除分区
ww写入并退出

步骤说明:开始分区后输入n,新增分区,然后选择p,分区类型位主分区,两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q

  • 格式化磁盘:没有格式化的磁盘分区是不能够使用的
mkfs -t ext4 /dev/sdb1
  • 挂载磁盘
mount [磁盘分区文件] [要挂载的目录] # 挂载磁盘分区
umount [磁盘分区文件] # 将指定磁盘分区卸载掉
  • 查看磁盘使用情况
df -h # 查看当前系统中的磁盘使用情况信息
  • 查看目录磁盘使用情况
du -h # 查询指定目录的磁盘占用情况,默认为当前目录

? 常用选项:

选项描述
-s指定目录占用大小汇总
-h带计量单位
-a含文件
–max-depth=1子目录深度
-c列出明细的同时,增加汇总值

Linux网络配置

  • 修改Linux的IP地址信息

首先要修改Linux的ip地址,需要输入如下命令

vim /etc/sysconfig/network-scripts/ifcfg-ens33

并添加如下选项

# ip地址换成自己想要指定的网段
BOOTPROTO="static"
IPADDR=192.168.200.130
GATEWAY=192.168.200.2
DNS1=192.168.200.2

然后再重启Linux或者重启网络服务

rebootservice network restart
  • 修改Linux的主机名
hostname # 查询当前的主机名
  • 修改主机名
# 在文件中直接修改主机名并保存退出,然后重启Linux
vim /etc/hostname
  • 配置Linux中的hosts主机映射
# 在文件中添加IP和主机名的映射关系,与windows中修改host文件一样
vim /etc/hosts
  • 在windows中查看和清理dns域名缓存
ipconfig /displaydns # 查看DNS域名解析缓存
ipconfig /flushdns # 手动清理dns缓存

Linux进程

  • ps指令
# 常用选项组合
ps -a # 显示当前终端的所有进程信息
ps -u # 以用户的格式显示进程信息
ps -x # 显示后台进程运行的参数
ps -ef # 以全格式显示当前所有的进程,-e显示所有进程,-f全格式
  • kill指令和killall指令
kill [选项] 进程号 # 通过进程号杀死/终止进程
killall 进程名称 # 通过进程名称杀死进程,也支持通配符
kill -9 进程号 # 强制终止一个进程
/bin/systemctl start sshd.service # 重启sshd服务
  • pstree指令

    常用选项:

选项描述
-p显示进程的PID
-u显示进程的所属用户

Linux服务管理

服务的本质就是进程,但是通常是运行在后台并监听某个端口,等待其他进程的请求,比如mysqld,sshd,防火墙等等,因此我们又称守护进程

  • service指令:centos7后能使用service管理的服务在/etc/init.d中
service 服务名 [start|stop|restart|reload|status]
setup # 可以查看系统运行的服务
  • systemctl指令
systemctl get-default # 获取系统默认启动级别
systemctl set—default [运行级别target]#设置系统默认启动级别
  • chkconfig指令
# 列出部分服务在不同级别是否启动
chkconfig --list [| grep xxx]

# 设置某个服务在某个级别是否启动
ckhconfig --level 5 服务名 on/off
  • systemctl指令:可以在/usr/lib/systemd/system查看可管理服务
systemctl [start|stop|restart|status] 服务名 # 管理服务
systemctl list-unit-files # 查看服务开机启动状态
systemctl enable 服务名 # 设置服务开机启动
systemctl disable 服务名 # 关闭服务开机启动
systemctl is-enabled 服务名 # 查询某个服务是否是自启动的
  • firewall指令
# 打开端口
firewall-cmd --permanent --add-port=端口号/协议

# 关闭端口
firewall-cmd --permanent --remove-port=端口号/协议
# 重新载入
firewall-cmd --reload
# 查看端口是否开放
firewall-cmd --query-port=端口/协议
  • top指令:动态监控

    常用选项:

选项功能
-d 秒数指定top命令每隔几秒更新,默认是3秒
-i使top不显示任何闲置或者僵死进程
-p通过指定监控进程ID来仅仅监控某个进程状态
top [选项]

交互操作指令:

操作功能
P以CPU使用率排序,默认项
M以内存的使用率排序
N以PID排序
q退出top
  • netstat指令:查看系统网络情况
netstat -an # 按一定顺序排列输出
netstat -p # 显示哪个进程在调用

RPM管理

rpm -qa [|grep xx] # 查询当前系统安装的rpm包
rpm -qi 软件包名 # 查询软件包信息
rpm -ql 软件包名 # 查询软件包中的文件
rpm -qf 文件全路径 # 查询文件所属的软件包
rpm -e 软件包名 # 删除指定软件包
rpm -e --nodeps 软件包名 # 强制删除软件包

# 安装rpm包 i=install安装 v=verbose提示 h=hash进度条
rpm -ivh rpm包全路径名称

Yum管理

yum list[|grep xxx] # 查询yum服务器是否有某个软件
yum install 软件名 # 安装指定软件

Linux Shell编程

推荐shell文件使用.sh后缀名

Shell变量

  1. 定义变量:变量名=值

  2. 撤销变量:unset 变量名

  3. 生命静态变量:readonly 变量名

#!/bin/bash
#声明一个变量A
A=100
#输出变量需要加上$
echo A=$A
#撤销一个变量
unset A
#声名一个静态变量B,不能unset
readonly B=2

#在要将某个命令的值赋给变量时需要加上反引号或者使用$()
C=`date`
C=$(date)

注意:定义变量的时候等号两边不能加空格

设置环境变量

  1. export 变量名=变量值:将shell变量输出为环境变量/全局变量
  2. source 配置文件:让修改的配置信息立即生效
  3. echo $变量名:查询环境变量的值

shell脚本中的多行注释::<<! !

位置参数变量

$n:n为数字,$0代表命令本身,$1- 9 代 表 第 一 到 第 九 个 参 数 , 十 以 上 的 参 数 需 要 使 用 大 括 号 括 起 来 , 9代表第一到第九个参数,十以上的参数需要使用大括号括起来, 9使{10}

$*:这个变量代表命令行的所有变量,所有变量为一个整体

@ : 这 个 变 量 与 @:这个变量与 @*类似,但是会把每个参数区分对待

$#:这个变量代表命令行的参数个数
顺序排列输出
netstat -p # 显示哪个进程在调用


# RPM管理

```bash
rpm -qa [|grep xx] # 查询当前系统安装的rpm包
rpm -qi 软件包名 # 查询软件包信息
rpm -ql 软件包名 # 查询软件包中的文件
rpm -qf 文件全路径 # 查询文件所属的软件包
rpm -e 软件包名 # 删除指定软件包
rpm -e --nodeps 软件包名 # 强制删除软件包

# 安装rpm包 i=install安装 v=verbose提示 h=hash进度条
rpm -ivh rpm包全路径名称

Yum管理

yum list[|grep xxx] # 查询yum服务器是否有某个软件
yum install 软件名 # 安装指定软件

Linux Shell编程

推荐shell文件使用.sh后缀名

Shell变量

  1. 定义变量:变量名=值

  2. 撤销变量:unset 变量名

  3. 生命静态变量:readonly 变量名

#!/bin/bash
#声明一个变量A
A=100
#输出变量需要加上$
echo A=$A
#撤销一个变量
unset A
#声名一个静态变量B,不能unset
readonly B=2

#在要将某个命令的值赋给变量时需要加上反引号或者使用$()
C=`date`
C=$(date)

注意:定义变量的时候等号两边不能加空格

设置环境变量

  1. export 变量名=变量值:将shell变量输出为环境变量/全局变量
  2. source 配置文件:让修改的配置信息立即生效
  3. echo $变量名:查询环境变量的值

shell脚本中的多行注释::<<! !

位置参数变量

$n:n为数字,$0代表命令本身,$1- 9 代 表 第 一 到 第 九 个 参 数 , 十 以 上 的 参 数 需 要 使 用 大 括 号 括 起 来 , 9代表第一到第九个参数,十以上的参数需要使用大括号括起来, 9使{10}

$*:这个变量代表命令行的所有变量,所有变量为一个整体

@ : 这 个 变 量 与 @:这个变量与 @*类似,但是会把每个参数区分对待

$#:这个变量代表命令行的参数个数

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-31 15:52:22  更:2021-08-31 15:52:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:25:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码