Linux软件编程:Shell命令

  • 操作系统概念:
    • 操作系统可以看成是一个软件,功能用来屏蔽底层不同的硬件平台,为上层应用提供统一的接口和运行环境
  • 操作系统组成:
    • Linux内核
      • Linux内核功能
      • Shell
      • 库函数

1.Shell基本命令

  • 使用形式:

command [-options] arg1 arg2 arg3 ...

  • ls
  • cd
  • mkdir
  • rmdir
  • touch
  • rm
  • pwd
  • cp
  • mv

2. 文件查看命令

  • cat

查看文件信息

cat filename

  • head/tail

查看文件 开头/末尾 内容

head -n 10 filename

tail -n 10 filename

  • 管道

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

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

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

ps -ef | grep bash

  • grep

查看搜索关键字

grep "字符串" filename

  • >

重定向,将原来输出在终端的内容写入到文件中

>

覆盖重定向

>>

追加重定向

  • *、?、[ ]

通配符

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

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

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

  • chnod

修改文件权限

r:读权限

w:写权限

x:执行权限

421

rwx

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

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

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

7 7 7

rwxrwxrwx

chmod 0777 filename

chmod +/-r/w/x filename

  • chgrp

修改文件所属的组

chgrp 用户名 filename

  • chown

修改文件所属的用户

chown 用户名 filenane

  • .tar.bz2 / .gz

压缩:

tar -jcvf filename.tar.bz2 dirname/*

tar -zcvf filename.tar.gz dirname/*

解压缩:

tar -jxvf filename.tar.bz2

tar -zxvf filename.tar.gz

  • find

查找文件

find 目录 -name "filename"

  • 其余命令

1).echo

在终端显示对应内容

2).du

统计文件大小

du -m filename //以MB为单位

du -k filename //以KB为单位

3).fdisk

查看磁盘分区信息

fdisk -l

4).sudo

使用超级用户的权限来执行某个操作

sudo fdisk -l

5).date

查看日期

6).whoami

查看当前登录的用户

7).ps

查看进程信息

ps -ef

8).top

根据CPU占用率查看进程信息

9).ifconfig

查看网卡信息

10).ping

测试与目的主机是否连通

ping 8.8.8.8

11).dpkg工具集

#安装软件

sudo dpkg -i filename.deb

#查看软件是否安装成功

sudo dpkg -l 软件名

#卸载软件

sudo dpkg -P 软件名

12).apt-get工具集

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

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

3.Shell编程

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

  • 解释型语言:边翻译边执行
    • 开发效率高
    • 执行效率低
    • 不适合做数据运算
    • 适合对系统管理
    • python,shell
  • 编译型语言:先编译再执行
    • 开发效率低
    • 执行效率高
    • 适合做数据运算符,有丰富的数据类型
    • c/c++、c#、java

2).shell脚本开发流程

3).shell脚本本质

  • shell脚本本质就是一系列shell命令的集合

4).shell脚本中引号

  • 双引号
    • 双引号中的变量内容会进行替换
  • 单引号
    • 单引号中间内容为字符串常量,不做任何改变,直接操作
  • 倒引号
    • 将倒引号中的内容作为命令来执行

5).shell中的变量

环境变量

  • PWD:存放当前所在目录的绝对路径
  • HOME:登录用户的家目录
  • PATH:系统软件默认的路径

位置变量

  • $0:程序名

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

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

  • ......

  • $#:传入参数的个数

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

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

  • i=0

  • str="hello world"

6).分支

空格非常重要,稍不注意就会报错

  • if

if 表达式

then

语句块

elif 表达式

语句块

else

语句块

fi

  • case

case $变量 in

9)语句块

;;

8)语句块

;;

7)语句块

;;

*)语句块

;;

esa

7).循环

  • for、while、until

#while [$i -le 100]

#for i in 1 2 3 4 5 6

for i in `seq 6`

do

语句块

done

8).数组

9)函数

相关推荐
FairGuard手游加固2 小时前
面具外挂检测方案
linux·运维·服务器
鲨辣椒100862 小时前
Linux软件编程基石——基础指令使用
linux·windows·microsoft
数智工坊2 小时前
【数据结构-栈、队列、数组】3.3栈在括号匹配-表达式求值上
java·开发语言·数据结构
凌康ACG2 小时前
Warm-Flow国产工作流引擎入门
java·工作流引擎·flowable·warm-flow
熬夜有啥好2 小时前
Linux软件编程——Shell命令
linux·运维·服务器
一只自律的鸡2 小时前
【Linux驱动】环境搭建和开发板操作 下篇
linux·运维·服务器
知我心·2 小时前
Java 正则表达式知识点总结
java
indexsunny2 小时前
互联网大厂Java面试实战:微服务与Spring生态技术解析
java·spring boot·redis·kafka·mybatis·hibernate·microservices
模型时代2 小时前
Linux系统安全革命:Amutable公司推出全新验证完整性技术
linux·运维·系统安全