【DAY21】Linux软件编程基础&Shell 命令、脚本及系统管理实操

一、操作系统

1.概念

操作系统本质是一个软件,功能用来屏蔽底层不同的硬件平台,为上层应用提供统一的接口和运行环境

2.组成

二、Shell命令

1.基本命令

请查看:

https://blog.csdn.net/2503_92576274/article/details/156693714?fromshare=blogdetail&sharetype=blogdetail&sharerId=156693714&sharerefer=PC&sharesource=2503_92576274&sharefrom=from_link

2.文件查看命令

1.cat failname //查看文件的全部内容,内容显示在终端

2.查看文件 开头/末尾 内容

head -n 10 filename

tail -n 10 filename

3.管道

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

head -n 10 filename | grep "字符串"

tail -n 100 /usr/include/stdio.h | grep "extern"

ps -ef | grep bash

4.查看搜索

grep**(搜索关键字)**

grep "字符串" 文件名

5. 重定向

(将原来输出在终端的内容写入到文件中 )

覆盖重定向:

命令 > 文件名 : 执行命令后的内容,写入到新的文件中,覆盖该文件原来的内容

追加重定向:

command >> failename : 执行命令后的内容,补充到该文件后面

6. 通配符

*:匹配任意长度任意字符

?:匹配一位长度任意字符

\[\]:匹配一位长度指定字符

7.chmod(修改文件权限)

r:读权限

w:写权限

x:执行权限

421
rwx

rwx:创建文件的用户对文件是否拥有读写执行的权限

rwx:创建文件用户的同组用户对文件是否拥有读写执行的权限

rwx:其余人是否拥有读写执行的权限

7 7 7

rwx rwx rwx

chmod 0777 filename

chmod +/-r/w/x filename

8.chgrp(修改文件所属的组)

chgrp 用户名 filename

9.chown(修改文件所属的用户)

chown 用户名 filename

10. (1)压缩

tar -jcvf filename.tar.bz2 dirname/*

tar -zcvf filename.tar.gz dirname/*

(2)解压缩

tar -jxvf filename.tar.bz2

tar -zxvf filename.tar.gz

11.文件查找

find 目录 -name "文件名"

12.其余命名

1.echo(在终端显示对应的内容, 相当于printf)

2.du(统计文件大小)

du -m 文件名

du -k 文件名

3.fdisk(查看磁盘分区信息)

fdisk -l

4.sudo(使用超级用户的权限来执行某个操作)

sudo fdisk -l

  1. date (查看日期)

6.whoami(查看当前登录的用户 )

7.ps(查看进程信息)

ps -ef

8.top(根据cpu占用率产看进程信息)

top

q(退出)

9.ifconfig(查看网卡信息)

10.ping(测试与目的主机是否连通)

ping 8.8.8.8

13.dpkg工具集

#安装软件

sudo dpkg -i filename.deb

#查看软件是否安装成功

sudo dpkg -l 软件名

#卸载软件

sudo dpkg -P 软件名

14. apt-get工具集

可以自己根据配置的源下载对应软件

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

1. 上网

ping 8.8.8.8

1.让虚拟机使用NAT模式

点击"虚拟机"

点击"设置"

点击"虚拟网络适配器"

选择"NAT模式"

点击"确定"

2.修改Ubuntu配置文件

打开配置文件

sudo vim /etc/network/interfaces

修改配置文件格式:

auto lo

iface lo inet loopback

auto ens33

iface ens33 inet dhcp

保存、退出:wq

3.重启Ubuntu

sudo shutdown -r now

2. 配置apt-get工具集的源

  1. 点击"Ubuntu Software"

  2. 右键选择"Software & Updates"

  3. 点击"close"

  4. 输入命令

sudo apt-get autoclean

sudo apt-get update

sudo apt-get install -f

3. 软件安装

#安装软件

sudo apt-get install 软件名

#卸载软件

sudo apt-get remove 软件名 --purge

15.shell编程

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

解释型语言:边翻译边执行

  • 开发效率高
  • 执行效率低
  • 不适合做数据运算
  • 适合对系统管理

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

  • 开发效率低
  • 执行效率高
  • 适合做数据运算符,有丰富的数据类型
  • c/c++、c#、java

2.shell脚本开发流程

1.编写shell脚本

vim filename.sh

2.加上执行权限

chmod +x filename.sh

3.运行

./filename.sh

3.shell脚本本质

一系列shell命令的集合

4.shell脚本中的引号

  1. 双引号

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

  1. 单引号

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

  1. 倒引号

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

5.shell中的变量

  1. 环境变量

shell脚本中用来存放系统相关信息的变量

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

HOME:登录用户的家目录

PATH:系统软件默认的路径

2.位置变量

$0:程序名

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

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

$#:传入参数的个数

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

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

3.自定义变量

i=0

str="hello world"

6.分支

1.if基本格式

if 表达式 man test //查看test用法

then

语句块

elif 表达式 read 从终端接收变量

语句块

else

语句块

fi

2.case

case $变量 in

9)语句块

;;

8)语句块

;;

7)语句块

;;

*)语句块

;;

esac

7.循环

expr: 计算表达式

seq:序列

8.数组

9.函数

相关推荐
方便面不加香菜2 小时前
Linux--基础IO(一)
linux·运维·服务器
鼎讯信通5 小时前
风电光缆运维提质增效:G-4000A 光缆故障追踪仪破解风场巡检难题
运维·网络·数据库
三十..5 小时前
MySQL 从入门到高可用架构实战精要
运维·数据库·mysql
跨境数据猎手6 小时前
大数据在电商行业的应用
大数据·运维·爬虫
linyanRPA6 小时前
影刀RPA店群自动化实战:多店铺活动自动报名与促销管理架构设计
运维·自动化·办公自动化·rpa·python脚本·爬虫自动化·店群自动化
mounter6257 小时前
现代 Linux 内存管理的演进与变革:从传统 LRU 到多代架构 MGLRU
linux·服务器·kernel
会Tk矩阵群控的小木7 小时前
安卓群控系统对于游戏工作室实战教程
android·运维·游戏·adb·开源软件·个人开发
赵渝强老师7 小时前
【赵渝强老师】Kubernetes(K8s)中的金丝雀升级
linux·docker·云原生·容器·kubernetes
佛山个人技术开发7 小时前
GitCode SSH连接配置教程
运维·ssh·gitcode
Qt程序员7 小时前
Linux RCU 原理与应用
linux·c++·内核·linux内核·rcu