欢迎光临
我们一直在努力

Linux:软件编程

目录

一、Linux系统

1. 操作系统概念:

2.认识Linux操作系统

二、shell命令

1.基本命令

2.文件查看命令

三、shell编程

 1.解释型语言与编译型语言

2.shell脚本开发流程

3.shell脚本的本质

4.shell脚本的引号

5.shell中的变量

6.自定义变量

7.分支

8.分支语句

9.循环语句(3种)

10.数组:

11.函数


“The Linux philosophy is 'Laugh in the face of danger'. Oops. Wrong One. 'Do it yourself'. Yes, that's it.”                         

                                                                                                        ——Linus Benedict Torvalds

一、Linux系统
1. 操作系统概念:

1.操作系统诞生原因

        早期每种硬件支持的汇编指令不同,希望通过一款软件,使相同的代码在不同硬件平台上实现相同的功能,这款软件后来成了操作系统

2.操作系统的作用:屏蔽不同底层硬件平台,为上层应用提供统一接口运行环境

3.操作系统的发展:Unix -> Linux -> windows/mac

          Unix:世界上第一款操作系统

          Linux :开源操作系统         (Unix 、Linux 均有纯C语言编写,所以执行效率极高)              windows/mac:由C/C++编写,效率不如Unix 、Linux

4.操作系统的应用:

        ①服务器。因为由纯C编写,效率极高

        ②嵌入式领域(嵌入式的操作系统是裁剪了Linux得到的轻量级操作系统)

        ③GPU,NPU,边缘计算

2.认识Linux操作系统

        ①Linux概念:

        Linux操作系统是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布。目前已有上百种不同的发行版

        它Linux操作系统是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。

        Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

        ②Linux特点:免费、开源、可靠、安全、稳定、多平台         ③Linux操作系统组成:Linux内核、库函数、shell

        ④Linux内核功能:

1.内存管理:哪怕硬件内存再小,也能虚拟到0-4G空间

2.文件系统的管理:Linux系统中,一切皆文件

3.多任务调度

4.多任务通信

5.网络功能管理

6.硬件设备的管理

        ⑤Linu操作系统的组成

图示

shell作用

        ①保护内核:shell作为Linux操作系统的大内总管,防止用户直接和内核交互,把内核搞坏

        ②作为命令解释器:linu是C写的,使用c接口太多太复杂

库函数作用

        提前对用户的输入进行处理,最后传递给Linux内核进行处理

        ⑥Linu操作系统的使用流程

        ⑦Linux基本思想

                Linux的基本思想有两点:

                        第一,一切都是文件;

详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。

                        第二,每个文件都有确定的用途。

        使用形式: command [-options] agr1 agr2 …

1.基本命令

ls

cd

cp

mv

mkdir

rmdir

rm

touch pwd

        这部分内容在我之前的博客中详细介绍过,这里就不赘述。

Linux:Linux基础-> 一、Linux中的操作命令,链接如下https://blog.csdn.net/2301_81830380/article/details/156695328?sharetype=blogdetail&sharerId=156695328&sharerefer=PC&sharesource=2301_81830380&sharefrom=mp_from_link

2.文件查看命令

①cat         功能:查看文件信息(≈vim ,只不过vim不在终端显示,但是在终端的命令可以使用通配符完成更多操作)         示例:cat filename

② head/tail         功能:查看文件 开头/末尾 内容         示例:  head filename //默认查看头十行

                   head -n 10 filename //查看头十行

                   tail -n 50 filename //查看尾五十行

③grep         功能:搜索关键字         格式:grep "字符串” 文件名

        示例:grep “int”  main.c

④管道 |         功能:将前面命令的输出作为后续命令的输入         示例:head -n 10 filename | grep"字符串”                    tai1 -n 100 /usr/include/stdio.h | grep "extern"                    ps -ef | grep bash //查看进程信息

⑤重定向         功能: 将原来输出在终端的内容写入到文件中         >  覆盖重定向         >>  追加重定向 ⑥通配符          *:匹配任意长度任意字符          ?:匹配一位长度任意字符          [ ]:匹配一位长度指定字符

        使用示例:

⑦chmod

        功能:修改文件权限

⑧ chgrp(英文:change group)        功能: 修改文件所属的组         格式:chgrp 用户名 filename

⑨ chown (英文:change owner)         功能:修改文件所属的用户         格式:chown 用户名 filename

⑩压缩和解压缩

        压缩文件格式 .tar .bz2                                .tar .gz

        压缩:                 tar -jcvf filename.tar .bz2 dirname/*

                tar -zcvf filename.tar.gz dirname/*         解压缩:

                tar -jxvf filename.tar.bz2

                tar -zxvf filename.tar.gz

11.find文件查找         功能:查找文件         格式:find 目录 -name “文件名"

12.其余命令

        echo :在终端显示对应的内容         du:统计文件大小   du -m 文件名   (以M为单位显示)

                                      du -k 京件名    (以K为单位显示)

        fdisk:查看磁盘分区信息                 fdisk -1         sudo:使用超级用户的权限来执行某个操作

                        sydo fdisk -1

        date:查看日期         whoami:查看当前登录的用户

        ps:查看进程信息                 ps -ef         top:根据CPU占用率查看进程信息

                q:退出

        ifconfig:查看网卡信息

        ping:测试与目的主机是否连通                         ping 8.8.8.8

        dpkg工具集:

                安装软件:sudo dpkg -i filename.deb(乌班图中所有安装包都是.deb结尾)

                                  #查看软件是否安装成功          sudo dpkg -1 软件名                                   #卸载软件                                sudo dpkg -p 软件名

13.apt-get工具集         可以自己根据配置的源下载对应软件

        根据软件依赖关系安装软件所需要的所有依赖

        步骤:

①检查能否联网 :ping 8.8.8.8 (ctrl + cat 退出)

若无返回,需配网

配网步骤:

        a.设置NAT模式(windows和Linux用同一个IP地址)【桥接模式:主机做服务器,得有一个唯一的IP地址情况下使用。】

        b.        修改乌班图配置文件

        打开配置文件:sudo vim /etc/network/interfaces 输入用户密码

        修改配置文件为如下格式:   auto lo

                                                   iface lo inet loopback

                                                   auto ens33 

                                                   iface ens33 inet dhcp 

        c.保存退出

        :wq

        d.  重启乌班图

        sudo shutdown -r now

        d.     ifconfig:查看网卡信息(看有无IP地址分配)    

        e.检查能否联网 :ping 8.8.8.8 (ctrl + cat 退出)

②配置apt-get工具集的源,修改源为阿里云

点击"Ubunty Software" 右键选择"Software & Updates'

③再点击"close”,若选reverse,则会恢复先前配置

④输入命令

sudo apt-get autoclean 清除源

sudo apt-get update 升级源

sudo apt-get insta11 -f 重建源的依赖关系

⑤使用

#安装软件sudo apt-get insta11 软件名 #卸载软件sudo apt-get remove 软件名 –purge  连同【配置一块删除,即彻底删除】

三、shell编程
 1.解释型语言与编译型语言

        a.解释性语言:边翻译边执行

                特点:开发效率高                            执行效率低

                应用场景:不适合做数据运算(因为解释型语言下,所有数据类型都是字符串)                                   适合对系统管理

                例:python、shell

        b.编译型语言: 先编译再执行

                特点:开发效率低                            执行效率高

                应用场景:适合做数据运算(因为有丰富的数据类型: int ,char ,double….)                                   适合对系统管理

                例:c/c++ 、c# 、 java

2.shell脚本开发流程

        a.编写shell脚本        vim filename.sh

        b.加上执行权限 chmod +x filename.sh

        c.运行        ./filename.sh

3.shell脚本的本质

        本质:一系列shell命令的集合

4.shell脚本的引号

           a.双引号                 双引号中的变量内容会进行替换

           b.单引号                 单引号中的内容为字符串常量,不做任何改变,直接操作

          c.倒引号`(键盘1 左边的按键)

                将倒引号中的内容作为命令来执行

5.shell中的变量

        a.环境变量: shel脚本中用来存放系统相关信息的变量

                RWD:存放当前所在目录的绝对路径

                HOME:登录用户的家目录                 PATH:系统软件默认的路径

                ……

        b.位置变量:         $0  :程序名

        $1   :执行脚本时传入的第一个参数

        $2  :执行脚本时传入的第二个参数

        ……         $#  : 传入参数的个数

        $? : 上一句语句运行的结果

        $$ : 执行脚本对应的进程ID号

        补充:

$:使用变量(makefile就是借鉴shell脚本)

#!/bin/bash:表示 用bin下的bash运行脚本

     #注释

   !表取反

    #!表示不是注释

 注意:别乱加空格

示例:

6.自定义变量

i=0

str="hello world"

7. if分支 

  基本格式  :

if 表达式

then 

        语句块

elif

        语句块

else

        语句块

fi

注意:then和fi相当于C语言中的{ }

test检测文件类型,比较数值

 示例

8.分支语句

        基本形式

*相当于C中的default

9.循环语句(3种)

for 

while

until

示例

10.数组:

11.函数

函数体内部的echo作为函数返回值,函数体外部的echo才会打印

赞(0)
未经允许不得转载:171主机测评 » Linux:软件编程
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址