云计算百科
云计算领域专业知识百科平台

Linux软件编程1.(shall命令)

1.Linux系统概述

                常见的Linux系统有Ubuntu、Debian、Redhat、CentOS等。Linux操作系统是操作系统的核心,也称为内核,内核的主要功能为内存管理,多任务管理,文件系统管理,多任务间的通信,网络管理,硬件设备管理

2.shall命令

        shell是操作系统的外壳,主要作用是保护Linux内核,防止用户直接操作内核导致的异常问题 命令解释器的作用,用户可以通过命令给到shell,并转换为对应的内核代码实现功能。

                                

        2.1基本shall命令

                ls 查看文件,cd 进入目录,touch创建文件,rm 删除文件 ,mkdir 创建文件夹, rmdir 删除文件夹, cp拷贝文件,  mv移动文件。这些在之前的Linux系统操作命令里有说明。

        2.2文件查看命令

                1. cat命令:查看文件中的内容

cat 文件名

                2. head命令: 查看文件开头内容

head -n 行数 文件名

                3. tail命令: 查看文件末尾内容

tail -n 行数 文件名

        2.3通配符

                多用来搭配shell命令使用,操作多个文件。

                1. *:匹配任意长度、任意字符的文件名

ls file*.txt

                2. ?:匹配一位长度、任意字符的文件名

ls file_??.txt

                3. []:匹配一位长度、指定字符的文件名

ls file_[1-5].txt //寻找file_1到5的文件
ls file_[^3].txt //寻找除了file_3的文件
ls file_[1,3,5].txt //寻找file_1,3和5的文件

        2.4管道

                将前面命令的输出作为后续命令的输入

./a.out | grep "字符串"
ls file* | grep ".sh"

        2.5重定向

                将原本要输出在终端的内容定向到文件中

覆盖重定向(将原来内容覆盖)

echo "hello world" > file.txt

追加重定向(在原内容末尾添加新内容)

echo "hello world" >> file.txt

        2.6文件查找命令

                1. find命令

                查找文件

find . -name 文件名

                查找包含某个字符串的文件

find . -type f -print0 | xargs -0 grep -l "字符串"

                2. whereis命令:查找二进制可执行程序

whereis valgrind

        2.7常见命令

                1. echo命令: 在终端上显示内容

echo "hello world"

               2. grep命令: 查找包含字符串对应的行并显示

grep "字符串" 文件名

         2.8压缩和解压命令

                .tar.gz格式的压缩和解压

tar -zcvf 文件名.tar.gz 目录名/* //压缩
tar -zxvf 文件名.tar.gz //解压

                .tar.bz2格式的压缩和解压

tar -jcvf 文件名.tar.bz2 目录名/* //压缩
tar -jxvf 文件名.tar.bz2 //解压

        2.9用户管理命令

                1. useradd 新建用户

sudo useradd 用户名

                2. userdel 删除用户

sudo userdel 用户名

                3. passwd 修改密码

sudo passwd 用户名

                4. su 切换用户

su 用户名
exit 退出当前用户

                5. chmod 修改文件权限

chmod 权限值 文件名
0664
110 110 100
rw- rw- r–
rwx:创建该文件的用户对文件是否拥有读写执行权限
rwx:创建文件同组的用户对文件是否拥有读写执行权限
rwx:其余人是否拥有读写执行权限

                6. chown 修改文件的所属用户

chown 用户名 文件名

                7. chgrp 修改文件的所属组

chogrp 组名 文件名

3.shall脚本

        编程语言的分为编译型语言(C、C++、C#、Java)和解释型语言(shell、Python、javascript)

编译型语言先编译再运行,有丰富的数据类型、擅长计算,执行效率高,但开发效率低。

解释型语言边翻译边执行,擅长对系统维护管理,执行效率低,开发效率高。

        3.1shell脚本编程

1. 编写脚本文件

vim filename.sh

2. 使用chmod命令为脚本加上执行权限

chmod +x filename.sh

3. 运行脚本

./filename.sh

        3.2指定脚本对应的运行shell

#!/bin/bash

        3.3shell脚本的输入和输出

1. 输入

#从终端接收用户输入放入filename变量中
read filename

2. 输出

#将变量filename中的内容打印在屏幕上
echo $filename

        3.4shell脚本中的引号

1. 单引号 原封不动打印引号中的内容

echo '$filename'

2. 双引号 将双引号中的变量替换成对应的值打印

echo "$filename"

3. 倒引号 将引号中的内容当做命令来处理

echo `seq 10`

        3.5shell中的变量

1.环境变量 shell自带的一些变量,在程序运行时已经存在了

echo "$HOME"
echo "$PWD"
echo "$PATH"

2. 位置变量

$0 :脚本的名称
$1 :执行脚本时传入的参数1
$2 :执行脚本时传入的参数2
$# :传入参数的个数
$? :上一条shell语句的执行结果
$$ :脚本运行的进程编号

3. 自定义变量

value=0//定义
$value//调用

        3.6分支结构

1)if 分支

if 表达式
then
语句块
else
语句块
fi

2)由test命令实现表达式(test也可以通过[]来替代)

-gt #大于
-lt #小于
-ge #大于等于
-le #小于等于
-eq #等于
-ne #不等于
-b #检测文件是否存在,并判断是否为块设备
-c #检测文件是否存在,并判断是否为字符设备
-d #检测文件是否存在,并判断是否为目录文件
-e #检测文件是否存在
-f #检测文件是否存在,并判断是否为普通文件
-L #检测文件是否存在,并判断是否为链接文件
-p #检测文件是否存在,并判断是否为管道文件
-S #检测文件是否存在,并判断是否为套接字文件

3) case 分支

        3.7循环结构

1)while循环

while 表达式
do
语句块
done

2)until

until 表达式
do
语句块
done

3)for

for i in 数据集
do
语句块
done

        3.8数组

#!/bin/bash
array=("hello" "world" "how" "are" "you")
i=0
echo ================================
for ((i = 0; i < 5; i++))
do
echo ${array[$i]}
done

echo ================================
echo "${array[*]}"

        3.9 函数

#!/bin/bash
add()
{
sum=`expr $1 + $2`
echo "$sum"
return $sum
}
read num1
read num2
#获得函数内输出的字符串
ret=`add $num1 $num2`
#打印函数的运行的值
echo "$?"
#打印函数内输出的字符串
echo "ret = $ret"

赞(0)
未经允许不得转载:网硕互联帮助中心 » Linux软件编程1.(shall命令)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!