一、一些指令集
统计一个文件有多少行:
指令:
wc -l 文件名
统计一个文件夹里有多少文件:
指令:
ls -l|grep "^-"|wc -l
统计有多少个目录:
- 只查看当前目录下有多少目录
指令:
ls -l|grep "^d"|wc -l
- 查看当前目录下有多少目录时包括下级的子目录
指令:
ls -lR|grep "^d"|wc -l
作业:
1.查询当前路径下的指定前缀名的所有目的文件数量
二、liunx用户、组、权限
1.ls 与ll
使用ll进行查看当前目录下的目录与文件时,前面第一列所代表的意思:
第一个字母代表文件类型;
后面九个字符分别对应对属主、属组、其他
字符含义
赋权:chmod、chgrp、chown
权限修改
切换用户:su
三、shell程序设计
1.第一个shell程序
使用vi编辑器在其中输入编写程序firstshell,然后使用./firstshell调用程序;
其中,#/bin/bash
是一个解释器,echo是输出关键字;
通过./firstshell
可以直接调用程序,输出helloworld;
2.变量
(1)数据类型
shell中就只有两种数据类型,字符串与整型;
在shell中可以通过在变量前加上readonly
关键字来创建一个相当于常量的变量(加上只读关键字后救只能被读取,无法被修改了)
(2)删除变量
删除变量我们可以是使用unset
来删除变量;
例如:
结果如下:
并不是报而是错而是上面也没有输出,那么可以合理猜测变量亦然还存在只是他内存被修改为空了;
好吧,查询资料可以知道,明显猜错了,没有报错是因为在使用变量作为输出时,原先被unset释放的变量有被创建了一个同名变量,仅此而已;
通过测试,可以看到直接调用变量作为输出也可以直接输出,结果也和上面一样;
(3)键盘输入
可以通过键盘输入变量,使用read 变量
的形式来进行一行数据的读取,回车键结束;
3.算术运算符
格式示例:
#/bin/bash
sum=`expr 1 + 1`
sub=`expr 5 - 2`
chu=`expr 4 / 2`
mul=`expr 3 \* 3`
ehco ${sum}
输出示例:
- 注意:做四则运算时需要注意的就是乘法的
*
需要使用转义符转义一下,即使用\*
,此外取余运算也可以在shell中使用(%)。
4.shell程序设计结构
(1)分支结构
形式:
#!/bin/bash
if ((5>7))
then
echo "五大与七"
else
echo "五小于七"
fi
(2)循环结构
格式示例:
#!/bin/bash
sum=0
for((i=1;i<=100;i++))
do
((sum+=i))
#let sum+=i
#sum=`expr $sum + $i`
#sum=$((sum+i))
#sum=$(($sum+$i))
#((sum=$i+$sum))
done
echo $sum
作业:输出20位斐波那契数列;
#!/bin/bash
p=0
j=1
sum=0
for((i=1;i<=20;i++))
do
echo ${j}
((sum=p+j))
#sum=`expr $p + $j`
p=$j
j=$sum
done