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