- 操作系统概念:
- 操作系统可以看成是一个软件,功能用来屏蔽底层不同的硬件平台,为上层应用提供统一的接口和运行环境
- 操作系统组成:
- Linux内核
- Linux内核功能
- Shell
- 库函数
- Linux内核
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脚本开发流程
- 编写shell脚本
- vim filename.sh
- 加上执行权限
- chmod +x filename.sh
- 运行
- ./filename.sh
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)函数
