Linux系统命令及Shell脚本
2021-11-04 10:16:17 42 举报
AI智能生成
Linux系统命令及Shell脚本
作者其他创作
大纲/内容
进程管理
什么是进程
程序的运行实例
状态
就绪态
runnable
运行态
running
阻塞态
blocked
进程间
关系
互斥
进程间不能同时运行
2个进程→同一打印机
同步
实现
信号量
观察进程
ps
进程瞬态的状态
top
进程动态的状态
快捷键
P
CPU使用率排序
M
Memory使用率排序
终止进程
kill
kill 2877
默认是15
进程正常退出
kill -9 2877
强行停止
信号无法被阻塞或忽略
killall
kill httpd
文本处理工具
sed
以行为单位
stream editor
流编辑器
修改流经它的文本
awk
以列为单位
awk '{print $1, $4}' abc.txt
Shell
shell简介
cat /etc/Shells
/bin/bash
/bin/sh
……
语法结构简单
运行脚本
bash hello.sh
不需要执行权限
./hello.sh
需要执行权限
内建命令
type
确定内建命令
.
执行程序
alias
别名
unalias
取消别名
bg
放到后台
fg
调到前台
jobs
查看暂停的任务
echo
打印字符
export
使变量被子shell识别
local
声明局部变量
ulimit
显示并设置进程资源限度
bash预设的环境变量
BASH
BASH_VERSION
CDPATH
快捷目录
EUID
当前用户的UID
FUNCNAME
HOSTNAME
LANG
PWD
PATH
特殊变量
位置参数
$0
脚本本身
$1
第1个参数
脚本或命令返回值
$?
0:正常退出
数组
定义
declare -a array
array[0] = 0
取值
echo ${array[0]}
echo ${array[@]}
echo ${array[*]}
长度
echo ${#array[@]}
只读变量
readonly a=100
引用
双引号
部分引用
会转义
echo "$he"
100
单引号
全引用
所有字符都是字面意思
echo '$he'
$he
反引号
系统命令
特殊字符
*
任意长度字符串
?
任意单个字符
[]
重定向
基本概念
标准输入设备→其他文件输入
输出到标准输出设备的内容→其他文件
文件标识符
数据流
启动进程时,为进程打开3个文件
标准输入 stdin
0
标准输出 stdout
1
标准错误输出 stderr
2
默认
标准输入
键盘
标准输出
显示器
I/O重定向符号
>
标准输出 覆盖重定向
>>
标准输出 追加重定向
<
标准输入重定向
|
管道:一个命令输出→另一个命令的输入
Linux简介
特点
免费开源
模块化程度高
广泛的硬件支持
安全稳定
多用户、多任务
良好的可移植性
安装
必须分区
根分区/
swap分区
物理内存的2倍
Grub
系统引导工具
加载内核,引导系统启动
/boot分区
放置Linux启动时的文件
DHCP
Dynamic Host Configuration Protocol
动态主机配置协议
对网络节点上的主机进行IP地址配置
系统启动流程
加载BIOS
加电自检
Power On Self Test
引导系统
BIOS读取MBR
512字节
引导程序(446字节)
磁盘分区信息(64字节)
运行Grub
根据配置文件,加载kernel镜像
运行内核加载后的第一个程序:/sbin/init
系统初始化配置
系统变量
网络配置
启动swap
启动服务
根据runlevel
默认为3,启动/etc/rc3.d的所有脚本
/etc/rc.local
生成终端
Linux用户管理
UID,GID
UID(User ID)
根用户
ID=0
完全控制Linux
系统用户
ID=1~499
运行必须有,但不是真实的使用者
mysql, apache
普通用户
真实存在的用户
ID>499
GID(Group ID)
文件路径
/etc/passwd
/etc/shadow
账号管理
新增用户
useradd john
修改密码
passwd john
删除用户
userdel john
切换用户
su
切换成其他用户(需要对方的密码)
sudo
用其他用户的身份执行命令(输入自己的密码)
首先检查/etc/sudoers
输入自己的密码,以root身份执行命令
Linux文件系统
文件系统
明确磁盘或分区上,相关文件的方法和数据结构
硬链接、软链接
硬链接
多个文件名→同一索引节点
缺点
不能给目录创建硬链接
仅在同一文件系统上
ln f1 f1_slink
软链接
包含另一个文件路径名的文件(快捷方式)
可以指向任意目录或文件
可以跨不同的文件系统
ln -s f1 f1_slink
字符处理
管道
固定大小的缓冲区
管道符:|
一个命令的输出→下一个命令的输入
sort、uniq
cat uniq.txt | sort | uniq
cut
截取文本-单位:行
cut -f指定的列 -d'分隔符'
网络管理
网络接口配置
ifconfig
处于活动状态的网络接口
eth0
说明
以太网的第一块网卡
Ehternet的前三个字母
修改IP
ifconfig eth0 192.168.159.130 netmask 255.255.255.0
断开/启用网卡
动态配置,仅当次有效
ifconfig eth0 down
ifconfig eth0 up
IP配置→配置文件
网络配置文件目录
/etc/sysconfig/network-scripts
配置说明
DEVICE
设备的名称
BOOTPROTO
获取IP的方式
dhcp
static
ONBOOT
启动时是否激活该设备
例子
重启网络服务
service network restart
DNS客户端配置
/etc/hosts
加快域名解析
小型局域网用户使用
内部应用系统
不必为此专设DNS服务器
网络测试工具
ping
测试另一台主机是否可达(防火墙)
发送一个ICMP的echo请求包
对端主机回应ICMP的reply回应包
host
查询DNS记录
返回该域名的IP
traceroute
检测数据包的路由器路径
TTL(Time To Live)
IP数据包的生命值
经过一个路由器-1
网络故障排查
1. 网卡是否正常工作
ping 127.0.0.1
主机的回环接口
TCP/IP协议栈的前提
2. 网卡是否出现驱动故障
ping 本机IP
3. ping通同网段的其他主机
确认交换机
4. ping通网管IP
ping通则主机和本地网络正常
5. ping通公网IP
本地的路由设置正确
6. ping通公网的域名
DNS设置正确
0 条评论
下一页