linux笔记二

本文介绍了Linux系统中查看和管理磁盘的命令,包括查看磁盘信息、挂载和卸载操作。同时讲解了环境变量的概念,展示了如何查看、修改及生效环境变量的方法。此外,文章还涵盖了网络基础,如IP地址的分类。最后,深入探讨了Shell脚本的编写,包括变量、执行方式、字符串操作和数组等基础知识。
摘要由CSDN通过智能技术生成

一、磁盘相关命令

1.查看磁盘信息

sudo fdisk

sudo fdisk -l

2.查看磁盘挂载情况

sudo -h

3.挂载磁盘

sudo mount 设备名(/dev/sda) 挂载的目录

解除挂载

sudo umount /dev/sda1

4.对磁盘的操作

m

n

d

p

f

l

i

t

v

w

q

5.指定磁盘格式

FAT32格式不允许存储单个文件超过4G的

NTFS格式允许

sudo mkfs.fat32 /dev/sda

sudo mkfs.ntfs /dev/sda

二、环境变量

1.概念

环境变量是保存系统运行信息和启动信息的变量。

显示系统中已有环境变量信息:env

显示环境变量的值:$echo 环境变量名

2.常见环境变量

USER 保存当前使用的用户

HOME 保存当前用户的家目录

PWD 保存当前所在路径

OLDPWD 保存上一次所在路径

PATH 保存可执行文件的路径

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

需要在看视频

3.修改环境变量的方式

方式1:只对当前终端生效

直接在当前终端执行

export PATH=$PATH:new path//注意:并不是所有的环境变量都需要追加赋值

生效方式:立即生效

方式2:对当前用户生效

修改用户家目录下的 .bashrc文件

将生命环境变量的语句追加到文件最后,由于该文件每次打开终端都会被执行

所以相当于对当前用户生效(每个用户都有自己的.bashrc文件)

export PATH=$PATH :new path

生效方式:重新打开终端或 source ~/.bashrc

方式3:对所有用户生效 ----不常用

修改 /etc/profile 文件

将声明环境变量的语句追加到文件最后,

由于该文件每次启动系统时都会被执行,所以相当于对所有用户生效

export PATH=$PATH:new path

生效方式:重启系统生效 或者 sudo source /etc/profile 立即生效

三、网络基础

1.ip地址

ip地址:就是主机在网络中的编号

ip地址分类:ipv4(4字节)

ipv6(6字节)

ipv4地址的组成:点分十进制192.168.10.20",把二进制转换为人看着方便的十进制

1100 0000 1010 1000 0000 1010 0001 0100

ipv4地址组成:网络号和主机号组成

四、shell编程

1.shell,shell命令,shell脚本

shell:是命令行解释器

shell命令:终端上敲得命令

shell脚本:一个.sh结尾的文件,其内容是命令的集合,以及一些复杂的逻辑,解释型语言

作用:批量的执行命令

mkdir ~/subdir1 ~/subdir2
cp /etc/passwd subdir1
cp /etc/group subdir2
mv subdir2 subdir
sudo -Jcvf subdir1.tar.xz subdir1
mv subdir1.tar.xz subdir
cd ~/subdir
tar -xvf subdir1.tar.xz
#tar -xvf ~/subdir/subdir1.tar.xz -C ~/subdir或者一步到位
ls

解归档带路径要加-C

格式:tar 选项 /路径/tar包 -C(大写) /路径/目标位置

  • -C 是指要解压到的路径,要注意-C是在文件路径之后的

2.执行方式

方式1:./脚本名

方式2:bash 脚本名

方式3:source 脚本名

三种执行方式的区别:

1、./脚本名方式执行需要家执行权限(chmod u+x 脚本名)其他两种不需要执行权限

2、./脚本名和bash 脚本名是在后台打开了一个新终端执行,并兼执行完的结果返回给当前终端

source 脚本名是在当前终端执行

3.shell中变量

不用提前定义,直接用

shell默认都是字符串类型,没有整型浮点型之分

shell使用变量时,一般都大写

shell每条语句结束后不用加分号

shell中的变量也要符合标识符的命名规范:

1.数字、字母、下划线组成

2.不能以数字开头

3.不能和shell的关键字冲突(ls cd pwd..)

4.shell引用变量的值

$变量名 或${变量名}

清空变量的值

unset 变量名

#!/bin/bash 

# 上面开头的第一行表示指定解析该脚本的默认解析器是 /bin/bash 

# 赋值的语句 = 前后不要加 空格
VALUE1=helloworld
echo VALUE1  #VALUE1
echo $VALUE1 #helloworld

# echo 就是输出的指令  类似于C语言中的 printf  echo自带换行符

# 如果字符串中有空格 那么赋值时就必须加 单引号 或者 双引号了
VALUE2="hello ls"
echo $VALUE2
VALUE3='hello ls'
echo $VALUE3

#单引号和双引号的区别
#双引号中可以引用其他变量的值 而单引号不可以
VALUE4=hqyj
VALUE5="hello $VALUE4"
echo $VALUE5  #hello hqyj
VALUE6='hello $VALUE4'
echo $VALUE6  #hello $VALUE4

# $变量名 和 ${变量名} 区别
VALUE7=beijing
VALUE8=$VALUE7nihao
echo $VALUE8 #空的 因为会把 VALUE7nihao 当作变量名了 没有这个变量 值就是空的
VALUE9=${VALUE7}nihao
echo $VALUE9 #beijingnihao

# unset 可以清空变量的值
VALUE10=1234
echo ${VALUE10}  #1234
unset VALUE10
echo ${VALUE10}  #空的

shell中既可以使用自定义的变量,也可以使用环境变量。看视频

#!/bin/bash 
BEIJING=12345
echo $BEIJING
echo $PATH

练习:

定义两个变量AA和BB,让AA保存环境变量PATH的值

让BB保存环境变量 HOME 的值

交换AA和BB的值,并输出。

5.shell中的位置变量

位置变量相当于C语言中 main函数的参数

$0 脚本名

./脚本名

bash 脚本名

source 脚本名

$1-$9 表示执行脚本时 在命令行传的 第1到第9个参数

如果参数超过9个 就需要用 ${} 了,如${20}

$@ 命令行所有参数

$* 命令行所有参数

$$ 执行脚本进程号

$# 命令行所有参数个数

$? 上一条命令是否执行成功(成功 0 失败 1)

6.变量的作用域

shell中如果没有特殊说明,变量都是全局变量

如果想要局部变量,加local关键字

#!/bin/bash 
#shell中的函数定义
function my_func(){
    VALUE1=hello
    local VALUE2=beijing
}

my_func  #shell中的函数调用

echo $VALUE1  #hello
echo $VALUE2  #空的

7.只读变量

使用 readonly 关键修饰的变量都是只读变量

#!/bin/bash 
readonly VALUE1=hello
VALUE1=beijing  #错误的  只读的
echo $VALUE1

8.命令置换符

作用:将命令执行的结果赋值给变量

`` 注意:这个不是单引号 这是反引号 键盘上1前面的按键

$()

#!/bin/bash 

LIST1=`ls`
echo $LIST1 

LIST2=$(pwd)
echo $LIST2

9.shell中的注释

shell中本质上只有单行注释 使用 # 表示注释

如果想使用多行注释,可以用下面的用法:

:<<EOF
    多行
    注释
EOF

注意:这种用法实际上是利用了输入重定向符的规则,如果注释的内容中

有输入的指令,注释可能会出问题,所以,不建议使用

10.字符串相关的操作

i.求字符串长度--strlen

#!/bin/bash 
STRING1="hello world"
STRING2=${#STRING1}
echo $STRING2
echo ${#STRING}

ii. 字符串的拷贝--strcpy

#!/bin/bash 
STRING1="hello world"
STRING2=$STRING1
echo $STRING2

iii.字符串的追加--strcat

#!/bin/bash 
STRING1="love"
STRING2=${STRING}seventeen
STRING3="${STRING}seventeen"
STRING4="LOVE" "SEVENTEEN"#双引号里面随便加空格 两个双引号中间不能加空格
echo STRING2
echo STRING3
echo STRING4

STRING3="abcd"
STRING3="$STRING1 $STRING3 hqyj"
echo $STRING3

STRING4="hello "" world"  #双引号里面随便加空格 两个双引号中间不能加空格
echo $STRING4

STRING5='hello '' world'  #单引号里面随便加空格 两个单引号中间不能加空格
echo $STRING5

iv.字符串截取

#!/bin/bash 
STRING1="EFHGOEIGJERO  ERGERGREG"
#       0123                321
STRING2=${STRING1:4}#从STRING1第4位开始 一直截取到最后
echo $STRING2

STRING3=${STRING1:4:4}#从STRING1第4位开始 截取4个字符
echo $STRING3

STRING4=${STRING1:0-6:6}#从STRING1的倒数第6位 一直截取到最后
echo $STRING4

正着数从0开始,倒着数从1开始

带空格的字符串要用双引号或单引号括起来,到这截需要0-

11.shell中的数组

shell中只有一维数组,用()表示也不需要提前定义

shell中数组也是字符串类型

ARR=(1 4 89 HELLO 'nihao' "dkdfd")
ARR2=([0]=123  [5]="asd")
echo ${ARR[@]}
echo ${ARR2[*]}

#给数组元素重新赋值
ARR[0]="wasd"

#获取数组元素的值
# ${数组名[下标]}
echo ${ARR[0]}

#获取数组元素的个数
# ${#数组名[@]}
# ${#数组名[*]}
echo ${#ARR[*]}
echo ${#ARR2[@]}

#数组元素的追加
ARR3=(${ARR[@]} "321" 'weef')#在后面追加
echo ${ARR3[@]}

ARR4=(123 wife ${ARR2[@]}  )

数组元素的追加用()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值