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)函数

相关推荐
茶杯梦轩15 小时前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
程序员清风15 小时前
用了三年AI,我总结出高效使用AI的3个习惯!
java·后端·面试
beata16 小时前
Java基础-13: Java反射机制详解:原理、使用与实战示例
java·后端
崔小汤呀16 小时前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端
用户03321266636716 小时前
Java 使用 Spire.Presentation 在 PowerPoint 中添加或删除表格行与列
java
何中应16 小时前
vi编辑器使用
linux·后端·操作系统
何中应16 小时前
Linux进程无法被kill
linux·后端·操作系统
何中应17 小时前
rm-rf /命令操作介绍
linux·后端·操作系统
何中应17 小时前
Linux常用命令
linux·操作系统
葛立国17 小时前
从 / 和 /dev 说起:Linux 文件系统与挂载点一文理清
linux