Linux基础知识
2022-02-18 17:26:03 40 举报
AI智能生成
Linux是一种自由和开源的类Unix操作系统。它是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
作者其他创作
大纲/内容
基础命令
常用系统工作
echo 命令
用于在终端输出字符串或变量提取后的值
date命令
date 命令用于显示及设置系统的时间或日期
date "+%Y-%m-%d %H:%M:%S"
date 命令中输入以“+”号开头的参数
reboot 命令
reboot 命令用于重启系统
默认只能使用 root 管理员来重启
poweroff 命令
poweroff 命令用于关闭系统
wget 命令
wget 命令用于在终端中下载网络文件
格式为“wget [参数] 下载地址”
wget http://www.linuxprobe.com/docs/LinuxProbe.pdf
ps命令
ps 命令用于查看系统中的进程状态
top 命令
top 命令用于动态地监视进程活动与系统负载等信息
pidof 命令
pidof 命令用于查询某个指定服务进程的 PID 值
格式为“pidof [参数] [服务名称]”
pidof sshd
kill命令
kill 命令用于终止某个指定 PID 的服务进程
格式为“kill [参数] [进程 PID]”
killall 命令用于终止某个指定名称的服务所对应的全部进程
格式为:“killall [参数] [进程名称]”
killall httpd
系统状态检测
ifconfig 命令
ifconfig 命令用于获取网卡配置与网络状态等信息
uname 命令
uname 命令用于查看系统内核与系统版本等信息
在使用 uname 命令时,一般会固定搭配上-a 参数来完整地查看当前系统的内核名称、主
机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统
名称等信息。
uname -a
uptime 命令
uptime 用于查看系统的负载信息
它可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。
平均负载值指的是系统在最近 1 分钟、5 分钟、15 分钟内的压力情况(下面加粗的信息部分);
负载值越低越好,尽量不要长期超过 1,在生产环境中不要超过 5
平均负载值指的是系统在最近 1 分钟、5 分钟、15 分钟内的压力情况(下面加粗的信息部分);
负载值越低越好,尽量不要长期超过 1,在生产环境中不要超过 5
free 命令
free 用于显示当前系统中内存的使用量信息
格式为“free [-h]”
free -h
who 命令
who 用于查看当前登入主机的用户终端信息
last 命令
last 命令用于查看所有系统的登录记录
sosreport 命令
sosreport 命令用于收集系统配置及架构信息并输出诊断文档
工作目录切换
pwd 命令
pwd 命令用于显示用户当前所处的工作目录
cd 命令
cd 命令用于切换工作路径
格式为“cd [目录名称]”
cd -
//切换到root根目录
//切换到root根目录
ls 命令
ls 命令用于显示目录中的文件信息
格式为“ls [选项] [文件] ”
ls -ld /etc
文本文件编辑命令
cat 命令
cat 命令用于查看纯文本文件(内容较少的)
more 命令
用于查看纯文本文件(内容较多的
head 命令
head 命令用于查看纯文本文档的前 N 行
格式为“head [选项] [文件]”
head -n 20 initial-setup-ks.cfg
//查看文本中前 20 行的内容
//查看文本中前 20 行的内容
tail 命令
tail 命令用于查看纯文本文档的后 N 行或持续刷新内容
格式为“tail [选项] [文件]”。
tail -n 20 文件名
实时查看最新日志文件时
tail -f /var/log/messages
diff 命令
diff 命令用于比较多个文本文件的差异
diff --brief diff_A.txt diff_B.txt
vim命令
文本编辑
文件目录管理
touch 命令
touch 命令用于创建空白文件或设置文件的时间
touch linuxprobe 命令
//创建出一个名为 linuxprobe 的空白文本文件
//创建出一个名为 linuxprobe 的空白文本文件
mkdir 命令
mkdir 命令用于创建空白的目录
mkdir linuxprobe
mkdir -p a/b/c/d/e
//-p 参数来递归创建出具有嵌套叠层关系的文件目录
//-p 参数来递归创建出具有嵌套叠层关系的文件目录
cp 命令
cp 命令用于复制文件或目录
格式为“cp [选项] 源文件 目标文件”
cp install.log x.log
mv 命令
mv 命令用于剪切文件或将文件重命名
格式为“mv [选项] 源文件 [目标路径|目标文件名
mv x.log linux.log
rm 命令
rm 命令用于删除文件或目录
file 命令
用于查看文件的类型
tar 命令
tar 命令用于对文件进行打包压缩或解压
tar -czvf etc.tar.gz /etc
grep 命令
grep 命令用于在文本中执行关键词搜索
find 命令
find 命令用于按照指定条件来查找文件
find /etc -name "host*" -print
//获取到该目录中所有以 host 开头的文件列表
管道符&重定向&环境变量
输入输出重定向
输入重定向
输出重定向
命令 > 文件
将标准输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件
将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 &>> 文件
将标准输出与错误输出共同写入到文件中(追加到原有内容的
后面
管道命令符
其执行格式为“命令 A | 命令 B”
把前一个命令原本要输出到屏幕的数据当作是后一个命令的标准输
入
grep "/sbin/nologin" /etc/passwd | wc -l
//被限制用户信息进行统计
//被限制用户信息进行统计
命令行的通配符
星号(*)
匹配零个或多个字符
问号(?)
代表匹配单个字符
中括号内加上数字[0-9]
匹配 0~9之间的单个数字的字符
中括号内加上字母[abc]
匹配 a、b、c 三个字符中的任意一个字符
转义符
反斜杠(\)
使反斜杠后面的一个变量变为单纯的字符串。
PRICE=5
echo "Price is \$$PRICE"
echo "Price is \$$PRICE"
“$”乖乖地作为美元符号,那么就需要使用反斜杠(\)来进行转义
单引号('')
转义其中所有的变量为单纯的字符串
双引号("")
保留其中的变量属性,不进行转义处理
PRICE=5
echo "Price is $PRICE"
echo "Price is $PRICE"
输出以双引号括起来的字符串
反引号(``)
把其中的命令执行后返回结果
echo `uname -a`
将反引号与 uname -a 命令结合,输出本机的 Linux
版本和内核信息:
版本和内核信息:
环境变量
把名为 LINUX 的一般变量转换成全局变量
export LINUX
shell脚本命令
if 条件测试语句
单分支结构
由 if、then、fi 关键词组成
相当于口语的“如果……那么……”
#!/bin/bash
DIR="/media/cdrom"
if [ ! -e $DIR ]
then
mkdir -p $DIR
fi
//if 目录不存在
then
创建目录
fi
then
创建目录
fi
双分支结构
由 if、then、else、fi 关键词组成
相当于口语的“如果……那么……或者……那么……”
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null
if [ $? -eq 0 ]
then
echo "Host $1 is On-line."
else
echo "Host $1 is Off-line."
fi
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null
if [ $? -eq 0 ]
then
echo "Host $1 is On-line."
else
echo "Host $1 is Off-line."
fi
if ping通
then
提示服务器在线
else
提示服务器不在线
fi
then
提示服务器在线
else
提示服务器不在线
fi
多分支结构
由 if、then、else、elif、fi 关键词组成
相当于口语的“如果……那么……如果……那么……”
#!/bin/bash
read -p "Enter your score(0-100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ; then
echo "$GRADE is Excellent"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] ; then
echo "$GRADE is Pass"
else
echo "$GRADE is Fail"
fi
read -p "Enter your score(0-100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ; then
echo "$GRADE is Excellent"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] ; then
echo "$GRADE is Pass"
else
echo "$GRADE is Fail"
fi
if 分数为85-100分之间
显示成绩优秀
如果是70-84之间
显示通过
否则显示失败
显示成绩优秀
如果是70-84之间
显示通过
否则显示失败
for 循环语句
允许脚本一次性读取多个信息,然后逐一对信息进行操作处理,当要处理的数据有范围时
while 条件循环语句
是一种让脚本根据某些条件来重复执行命令的语句,它的循环结构往往在执行前并不确定最终执行的次数,完全不同于 for 循环语句中有目标、有范围的使用场景
用户身份&文件权限
用户分类
管理员 UID 为 0
系统用户 UID 为 1~999
普通用户 UID 从 1000 开始
常用命令
useradd 命令用于创建新的用户
groupadd 命令用于创建用户组
passwd 命令用于修改用户密码、过期时间、认证信息等
userdel 命令用于删除用户,格式为“userdel [选项] 用户名”。
文件权限归属
getfacl 命令
getfacl 命令用于显示文件上设置的 ACL 信息,格式为“getfacl 文件名称”
su 命令可以解决切换用户身份的需求
sudo 命令
限制用户执行指定的命令:
记录用户执行的每一条命令;
配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
验证密码的后 5 分钟内(默认值)无须再让用户再次验证密码
记录用户执行的每一条命令;
配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
验证密码的后 5 分钟内(默认值)无须再让用户再次验证密码
存储架构&磁盘划分
目录文件
/dev 以文件形式存放任何设备与接口
/etc 配置文件
/home 用户家目录
/root 系统管理员的家目录
/tmp 任何人均可使用的“共享”临时目录
/media 用于挂载设备文件的目录
/opt 放置第三方的软件
/var 主要存放经常变化的文件,如日志
常用命令
mount 命令
mount 命令用于挂载文件系统,格式为“mount 文件系统 挂载目录”
umount 命令
umount 命令用于撤销已经挂载的设备文件,格式为“umount [挂载点/设备文件]”
fdisk 命令
它提供了集添加、删除、转换分区等功能于一身的“一站式分区服务
du 命令
用于查看文件数据占用量的 du 命令
RAID 与LVM 磁盘阵列
RAID技术
RAID 0 技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,
RAID 1
它是把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备
份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用
份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用
RAID 5
RAID5 技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。
就是 RAID 5 技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试
重建损坏的数据。RAID 这样的技术特性“妥协”地兼顾了硬盘设备的读写速度、数据安全性
与存储成本问题
重建损坏的数据。RAID 这样的技术特性“妥协”地兼顾了硬盘设备的读写速度、数据安全性
与存储成本问题
LVM 磁盘阵列
LVM 技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行
卷组合并。这样一来,用户不必关心物理硬盘设备的低层架构和布局,就可以实现对硬盘分
区的动态调整。
卷组合并。这样一来,用户不必关心物理硬盘设备的低层架构和布局,就可以实现对硬盘分
区的动态调整。
卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也
可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立
后可以动态地扩展或缩小空间。
LVM 的删除顺序是依次移除逻辑卷、卷组和物理卷。
收藏
收藏
0 条评论
下一页