操作系统基础
操作系统:管理硬件资源、控制程序运行、提供用户交互接口的系统软件
Linux组成:内核(硬件管理、系统调度)、Shell(用户与内核交互、解析命令)、库函数(为应用提供预编译接口,简化开发)
Shell常用命令
基本命令
ls:列出目录下文件/目录
cd:切换工作目录
mkdir:创建新目录
rmdir:删除空目录
touch:创建空文件/修改文件时间戳
rm:删除文件/目录
pwd:显示当前目录绝对路径
cp:复制文件/目录
mv:移动/重命名文件/目录
文件查看
cat filename:查看文件全部内容
head -n 数字 filename:查看文件前n行
tail -n 数字 filename:查看文件后n行
管道 |
前一命令输出作为后一命令输入,实现多命令联动
查看搜索
grep "字符串" 文件名:在文件中搜索包含指定字符串的内容
重定向
command > 文件名:覆盖写入命令输出到文件
command >> 文件名:追加命令输出到文件末尾
通配符
*:匹配任意长度任意字符
?:匹配单个任意字符
[]:匹配括号内指定单个字符
文件权限与归属
chmod 0777 filename:设置文件所有用户可读、写、执行
chmod +/-r/w/x filename:添加/移除文件读、写、执行权限
chgrp 用户名 filename:修改文件所属用户组
chown 用户名 filename:修改文件所属用户
压缩解压
tar -jcvf 文件名.tar.bz2 目录:打包并bz2压缩
tar -zcvf 文件名.tar.gz 目录:打包并gz压缩
tar -jxvf 文件名.tar.bz2:解压bz2格式压缩包
tar -zxvf 文件名.tar.gz:解压gz格式压缩包
文件查找
find 目录 -name "文件名":在指定目录递归查找文件
其他常用命令
echo 内容:终端输出指定内容
du -m 文件名:以MB为单位统计文件大小
du -k 文件名:以KB为单位统计文件大小
fdisk -l:查看系统磁盘分区信息
sudo 命令:以管理员权限执行命令
date:查看系统当前日期时间
whoami:查看当前登录用户名
ps -ef:查看系统所有进程详细信息
top:实时查看进程CPU等资源占用
ifconfig:查看网卡配置与网络信息
ping IP/域名:测试网络连通性
软件安装与配置
dpkg(Debian/Ubuntu本地包管理)
sudo dpkg -i 文件名.deb:安装本地deb软件包
sudo dpkg -l 软件名:查看软件是否安装
sudo dpkg -P 软件名:彻底卸载软件及配置文件
apt-get(在线包管理,自动处理依赖)
sudo apt-get autoclean:清理过期软件包缓存
sudo apt-get update:更新软件源索引
sudo apt-get install -f:修复软件依赖问题
sudo apt-get install 软件名:在线安装软件
sudo apt-get remove 软件名 --purge:彻底卸载软件及配置
网络配置
sudo vim /etc/network/interfaces:编辑网络配置文件
配置语句:设置本地回环、网卡DHCP自动获取IP
sudo shutdown -r now:重启系统使配置生效
Shell编程
语言类型
解释型:边翻译边执行,开发高效,适合运维(Shell、Python)
编译型:先编译后执行,运行高效,适合开发(C/C++、Java、C#)
脚本开发流程
vim 文件名.sh:创建/编辑Shell脚本
chmod +x 文件名.sh:添加脚本执行权限
./文件名.sh:运行当前目录下脚本
引号
"字符串":解析变量,变量替换为实际值
'字符串':纯字符串,不解析变量
命令 :执行命令并返回结果
变量
$PWD:当前目录绝对路径
$HOME:当前用户家目录
$PATH:系统查找可执行文件的路径
$0:脚本文件名
$1/$2:脚本传入第1/2个参数
$#:传入参数总个数
$?:上一条命令执行状态(0成功,非0失败)
$$:当前脚本进程ID
自定义变量:直接赋值,无需声明类型
分支结构
if/elif/else/fi:多条件判断执行不同逻辑
test:辅助判断文件状态、数值大小
case/esac:多值匹配分支判断
循环结构
for:按指定范围/列表循环执行
while:条件满足时循环
until:条件不满足时循环

4231

被折叠的 条评论
为什么被折叠?



