跟我一学linux基础(第四天)

第四天

复习昨天的内容:

PATH存放的是shell命令的默认搜索路径
PATH=内容

PATH=$PATH:路径
export PATH

export PATH=$PATH:路径  <==> export PATH=路径:$PATH
以上方法都是临时生效。

永久生效:vi /etc/配置文件   添加export PATH=$PATH:路径

ps -ef 
df 磁盘的使用情况


文件系统基本概念:用来给用户描述磁盘中的二进制信息,并且给用户提供交互接口。
磁盘文件系统ext4 ntfs、网络文件系统nfs、虚拟文件系统vfs


/bin /sbin 
/etc 
/dev 
/mnt 通常作为挂载点
/lib /usr/lib  存放库文件
/usr/include 存放头文件
/root 代表了超级用户 
/sys 
/proc 


sudo fdisk -l 查看磁盘分区


sda1 
一个磁盘最多4个主分区,一般情况磁盘被分成若干个主分区和若干逻辑分区
sudo mount /dev/sdb1 /mnt


ln命令
硬链接:ln 路径/源文件 路径/目标文件


软链接:ln -s 路径/源文件 路径/目标文件


以后要想知道一些文件是否独立占用空间,只需要查看每个文件的inode节点号


tftp和nfs 
tftp叫做简单文件传输协议。本身功能用来上传或者下载文件(除了目录文件)的。
后面要使用tftp将pc机和开发板建立联系。


uImage xxx.dtb ramdisk.img 都是二进制文件
开发板要从ubuntu中下载这些文件到开发板的内存中运行,最终会在开发板中看到文件系统。


如果工作中需要调试,我们不可能直接选择.img文件,我们选择的是一个可以被挂载到开发板上的文件夹,
这个文件夹内部存放的内容是文件系统。通过nfs网络文件系统将ubuntu中的/rootfs文件夹挂载到开发板上。


今天的内容:

shell脚本:
shell脚本的本质是一系列shell命令的有序集合,同时这些有序集合要存放到一个文件中。
脚本文件一般情况下是以.sh为后缀的。


c语言要想执行,先编译。
脚本是解释型语言,解释器来翻译解释型语言。


解释器:bash sh ksh csh dash ......


执行脚本方法:
1、bash xxx.sh 
2、chmod 777 xxx.sh 
   ./xxx.sh
创建了子脚本,子脚本去运行返回结果给原有脚本
   
3、source xxx.sh 
4、.  ./xxx.sh 
直接执行脚本本身


正常情况下,每个脚本文件的第一行都会指定使用哪种命令行解释器,#!/bin/解释器
如果单独使用#代表了注释。


脚本变量:
自定义变量:
定义时没有所谓的类型,同时定义和初始化要同时进行。
变量的赋值中=左边和右边不能有空格,如果必须要在=的右边加空格,那么字符串的外围加"",引用变量时加""


echo $a <==> echo ${a}


环境变量:PATH HOME


位置变量:$0代表脚本文件名     $1.... $9 ... $n        $#代表参数的个数(不包括脚本文件名) 
代表了给脚本传递的参数


表达式:
string=ABCDEFABCDEFABCD
${string/BCD/xy} 将变量string中的第一个BCD替换成xy
${string//BCD/xy} 变量string中所有的BCD都被替换成xy
${string/#ABCD/xy} 将字符串的头替换成xy,如果ABCD不是头则原样输出
${string/%ABCD/xy} 如果ABCD是字符串的尾部,则替换成xy


${string:3} 去掉前面3个字符
${string:3:5} 从第四个开始取出5个字符


${string#AB} 去掉字符串的头
${string#AB*E} 去掉从头开始到第一个E的部分
${string##AB*E} 去掉从头开始到最后一个E的部分


${string%EF*} 去掉的是从最后一个EF开始后面所有的字符
${string%%EF*} 去掉的是从第一个EF开始后面所有的字符


例子:
从终端输入一个字符串。
判断这个字符串是不是一个普通文件。
如果不是普通文件,打印"这不是一个普通文件"
如果是一个普通文件,提示一句话:"输入yes删除,输入no退出程序,输入的不是yes也不是no提示输入错误"
#!/bin/bash 

echo -n "请输入一个文件:"
read fname

if [ ! -e $fname ]
then
echo "文件不存在"
exit
fi

if [ -f $fname ]
then 
echo "输入yes删除文件,输入no保留文件"
read ans

if [ $ans = yes ]
then 
rm $fname
else if [ $ans = no ]
then 
exit 
else 
echo "选择错误"
exit
fi
fi
else 
echo "不是普通文件"
fi




int a = 1;
switch(a)
{
case 1:
printf();
case 2:
printf();
case 3:
case 4:
语句块;
default:
printf();
}




case 变量引用 in 


模式1)
命令表1
;;
模式2)
命令表2
;;

模式3)
模式4)
命令表4
;;
//上面的模式3和模式4写法是错误的,但是也有替代方法

模式3 | 模式3)
命令表4
;;

*) 相当于是c中default
命令表3
;; 
esac


循环语句:while for until


for(i = 0;i < 5;i ++)


for 变量定义 in 变量引用(单词表) 
do


done
















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值