飞道的博客

Linux基础(较全)

544人阅读  评论(0)

Linux

0.目录

1.Linux简介

1.1 Linux是什么

  • Linux是一种自由和开放源码的类UNIX操作系统,1991年由林纳斯托瓦兹创建,主要受Minix和UNIX思想启发。

  • Linux遵循GNU通用公共许可证(GPL),所有人都可以自由使用源代码,也可以自由修改并重新发部

  • Linux是基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统

  • Linux能运行主要的UNIX工具软件、应用程序和网络协议,继承了UNIX以网络为核心的设计思想。

1.2 Linux发行版?

LInux发行版简单的来说就是将Linux内核和应用软件做封装

市场上主流的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等

1.3 LInux应用领域?

从嵌入式设备到超级计算机、并到服务器领域确定了地位、通常服务器使用LAMP(Linux+Apache+Mysql+PHP)和LNMP(Linux+Nginx+Mysql+PHP)组合

目前,linux不仅在家庭中,企业中使用国家层面也在使用Linux

1.4 Linux vs Windows?

比较 Windows Linux
界面 界面统一,外壳程序固定所有 Windows 程序菜单几乎一致,快捷键也几乎相同 图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux 的终端机是从 UNIX 传承下来,基本命令和操作方法也几乎一致。
驱动程序 驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时很难支持。另外,有时硬件厂商未提供所需版本的 Windows 下的驱动,也会比较头痛。 由志愿者开发,由 Linux 核心开发小组发布,很多硬件厂商基于版权考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题(是否存在和安装方法)会一筹莫展。但是在开源开发模式下,许多老硬件尽管在Windows下很难支持的也容易找到驱动。HP、Intel、AMD 等硬件厂商逐步不同程度支持开源驱动,问题正在得到缓解。
使用 使用比较简单,容易入门。图形化界面对没有计算机背景知识的用户使用十分有利。 图形界面使用简单,容易入门。文字界面,需要学习才能掌握。
学习 系统构造复杂、变化频繁,且知识、技能淘汰快,深入学习困难。 系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易。
软件 每一种特定功能可能都需要商业软件的支持,需要购买相应的授权。 大部分软件都可以自由获取,同样功能的软件选择较少。

2.Linux安装

VMware虚拟机:www.vmware.com

VMware特点:

  • 不需要分区和重启即可同一PC上两种操作系统
  • 本机和虚拟机可以网络通信
  • 可以随时修改虚拟机配置

安装步骤:

2.1 系统分区

  1. 分区表
    • MBR分区表
      • 最大2.1TB,4分区数
      • 主分区(最多四个)
      • 扩展分区(1个,不能写数据)
      • 逻辑分区
    • GPT分区表
      • 最大9.4ZB,没有限制分区数(理论)
  2. 格式化
    • 又称逻辑格式化,是指用户选定文件系统(类型:ext4)
  3. 挂载

2.2 注意事项

  • linux严格区分大小写

  • linux一切皆文件

  • linux不靠扩展名区分文件类型

  • linux所有存储设备都不许挂载后才能使用

  • Windows程序不能直接在linux中使用

3.常用目录结构

目录 作用
/bin 存放系统命令的目录
/sbin 存放系统命令的目录
/boot 系统启动目录
/dev 设备文件目录
/etc 配置文件目录
/home 普通用户家目录
/lib 系统调用的函数库
/mnt 挂载目录
/opt 软件安装目录
/proc 虚拟文件目录(内核、进程、外部设备状态、网络状态)
/sys 虚拟文件目录(内核相关)
/root root家目录
/tmp 临时目录
/usr 系统软件资源目录
/var 动态数据保存目录(缓存、日志、软件运行文件)

4.常用命令

命令 作用
目录操作 ls 查看文件
cd 切换目录
pwd 查看当前目录
mkdir 创建目录
rmdir 删除目录
文件操作 touch 创建空文件、修改元数据
stat 查看详细信息
cat 查看文件内容
more 分屏查看文件内容
less 分行查看文件内容
head 查看文件头部
tail 查看文件尾部
ln 软连接
目录文件都可操作 rm 删除
cp 复制
mv 移动或者重命名
权限控制 chmod 修改权限
chown 修改文件所有者和所属组
chgrp 修改文件所属组
帮助命令 man 显示联机帮助手册
info 完整的帮助信息
help 查看内置命令信息
搜索命令 whereis 搜索系统命令(帮助文档位置)
which 搜索系统命令
locate 搜索普通文件
find 在目录中搜索文件
grep 显示匹配的行
|管道 管道
文本操作 awk 匹配截取
grep 匹配
cut 截取
sed 截取
压缩、解压命令 zip 压缩
unzip 解压.zip
gzip 压缩
gunzip 解压.gz
bzip2 压缩
bunzip2 解压.bz2
tar -c 压缩
tar -x 解压.tar
tar -z .tar.gz
tar -j .tar.bz2
关机重启 sync 刷新文件系统缓冲区(数据同步)
shutdown 关机-h或重启-r
reboot 重启
halt 关机(不安全)
poweroff 关机(不安全)
init 关机或重启(不安全)
网络命令 ifconfig 配置网络接口
ping 通过ICMP网络探测
netstat 查看网络状态、查看端口
write 向指定用户发信息
wall 向所有用户发信息(包括自己)
mail 给其他用户发邮件
系统痕迹命令 w 显示正在登陆的用户信息
who 显示正在登陆的用户信息(简单)
last 查看所有登陆过的用户信息
lastlog 查看最后登陆过的用户信息
lastb 查看登陆错误信息
挂载命令 mount 挂载
umount 卸载

5.VI编辑器

vi 、vim 打开文件,进入编辑模式

三种模式:编辑模式、输入模式、末行模式(有不同叫法)

5.1 编辑模式

5.1.1 模式切换

: 进入末行模式
i、a、o 进入输入模式(前、后、下行)
I、A、O进入输入模式(行首、行尾、上行)

5.1.2 移动光标

  • 字符间
    h: 左;j: 下;k: 上;l: 右
  • 单词
    w: 移至下一个单词的词首
    e: 跳至当前或下一个单词的词尾
    b: 跳至当前或前一个单词的词首
  • 行内
    0: 绝对行首
    ^: 行首的第一个非空白字符
    $: 绝对行尾
  • 行间
    G:文章末尾
    3G:第3行
    gg:文章开头
  • 翻屏
    ctrl:f,b

5.1.3 编辑

  • 删除&替换单个字符
    x:删除光标位置字符
    3x:删除光标开始3个字符
    r:替换光标位置字符
  • 删除命令 : d
    dw,dd
  • 复制粘贴&剪切
    yw,yy
    p
    P
  • 撤销&重做
    u 撤销
    ctrl+r 重做 撤销的操作
    . 重复上一步的操作

5.1.4 退出

  • 直接退出

    ZZ:没修改退出

  • 进入末行模式退出

    wq:保存并退出

    q!:不保存退出

5.2 输入模式

  • 标准输入

  • 模式切换

    Esc进入编辑模式

5.3 末行模式

  • 模式切换

    Esc Esc 进入编辑模式

  • 退出

    :q 退出 没有动过文件
    :wq 保存并退出 动过了,不后悔
    :q! 不保存并退出 动过了,后悔了
    :w 保存
    :w! 强行保存
    :wq --> :x

  • 高级操作

    :set 设置 set nu 设置行数
    / 查找
    s/// 查找并替换

6.软件安装

软件包分为源码包和二进制包

6.1 二进制包安装

6.1.1 RPM包安装

  • 命令

    安装命令:rpm -ivh 包全名

    服务启动:service 服务名 start

    升级命令:rpm -Uvh 包全名

    卸载命令:rpm -e 包名

  • 默认安装位置

    /etc/ 配置文件

    /usr/bin/ 可执行文件

    /usr/lib/ 函数库

    /usr/share/doc/ 使用手册

    /usr/share/man/ 帮助文件

6.1.2 yum安装

  1. 安装yum
  2. 安装软件:yum -y install 软件名

6.2 源码包安装

安装步骤

  1. 下载软件包

  2. 解压缩

  3. 进入解压目录

  4. 编译前准备

    ./configure
    
  5. 编译

    make
    
  6. 编译安装

    make install
    

卸载:删除文件目录即可

7.用户管理

7.1 用户相关文件

目录 作用 说明
/etc/passwd 用户信息文件 用户名:密码:用户ID:组ID:用户说明:用户家目录:用户命令行
/etc/shadow 影子文件 用户名:加密密码:更改时间:更改间隔:有效期:到期前警告天数:过期后宽限天数:失效时间:保留
/etc/group 组信息文件 组名:组密码位:组内其他用户(组)
/etc/gshadow 组影子文件 保存组密码
/home/用户名、/root 用户家目录
/var/spool/mail/用户名 邮箱目录
/etc/skel 用户模版目录

7.2 用户管理命令

命令 作用
useradd 添加用户
passwd 设置密码
usermod 修改用户
userdel 删除用户
su 切换用户

7.3 组管理命令

命令 作用
groupadd 添加用户组
groupdel 删除用户组
gpasswd 添加删除组成员
newgrp 改变有效组

8.权限管理(缺)

9.文件系统管理

9.1 硬盘(缺)

9.2 文件系统

9.2.1 linux文件系统特性

super block(超级块):记录date block、inode的情况

date block(数据块):数据实际存储

inode(i节点):类似元数据

9.2.2 常见文件系统

常见文件系统 简介
ext linux早期文件系统
ext2 升级版(更大分区和文件)
ext3 升级版(日志功能和可靠性)
ext4 CentOS6.x默认文件系统(颠覆性)
xfs CentOS7.x默认文件系统(XFS+LVM)
swap 交换分区文件系统(暂时代替内存)
nfs 网络文件系统
iso9660 光盘标准文件系统
fat Windows的fat16
vfat Windows的fat32
NTFS Windows的NTFS
ufs SunOS和Solaris
proc 基于内存的虚拟文件系统
sysfs 基于内存的虚拟文件系统
tmpfs 基于内存的虚拟文件系统

9.3 命令

命令 作用
df 统计空间大小
du 统计文件大小
fsck 文件系统修复命令
dumpe2fs 显示磁盘状态
stat 显示文件状态
file 判断文件类型
fdisk 分区命令
parted 分区命令
parkporbe 强制重读分区文件、重新挂载所有分区(几乎不用)
mkfs 格式化(创建文件系统)
free 查看内存
swapon 增加swap分区容量

9.4 手动创建分区

9.4.1 MBR分区

fdisk /dev/sdb			#进入分区交互界面
	n					#创建分区
	p					#查看分区
	m					#帮助
	l					#显示文件系统类型
	w					#保存退出
mkfs -t ext4 /dev/sdb1	#格式化
mkdir /disk1			#创建挂点
mount /dev/sdb1 /disk1	#挂载
vi /etc/fstab			#自动挂载

#查看
mount
fdisk -l
df

#修复权限
mount -o remount,rw /

9.4.2 GPT分区

parted /dev/sdb			#进入分区交互界面
	mklabel gpt			#修改类型
	mkpart				#创建分区
	mkfs				#创建文件系统
	resize				#修改分区大小
	re					#删除分区
	print				#查看分区
#挂载……

9.4.3 swap分区

fdisk /dev/sdb			#进入分区交互界面
	mkswap /dev/sdb1	#创建swap分区
swapon name				#增加分区

9.5 磁盘配额

9.5.1 依赖

  • 内核支持磁盘配额
    • grep CONFIG_QUOTA /boot/config-2.6.32-279.e16.i686
  • 已安装quota
    • rpm -qa |grep quota

9.5.2 概念

  • 用户配额和组配额
  • 磁盘容量限制和文件个数限制
  • 软限制和硬限制
  • 宽限时间

9.5.3 配额步骤

  1. 将分区挂载到目录上

  2. 用户、用户组、目录(条件)

  3. 开启磁盘配额功能

    mount -o remount,usrquota /disk
    
    vi /etc/fstab
    
    • defaults,usrquota
      
  4. 建立配额文件(需关闭SELinux)

    quotacheck -avug
    quotacheck -avugm(跟目录)
    
  5. 设置配额

    edquota -u username(进入命令行)
    edquota -p user1 -u user2(配额复制)
    
  6. 启动关闭配额

    quotaon -avug /disk/
    quotaoff -avug /disk/
    
  7. 测试

    dd if=/dev/zero of=/disk/testfile bs=1M count=60
    
  8. 非交互式配额

    setquota -u 用户 容量软限制 容量硬限制
    

9.6 LVM逻辑卷

9.6.1 步骤

  1. 将物理硬盘分区(也可以整体分区)

    fdisk 
    
  2. 将分区建立物理卷(PV)

    pvcreate /dev/sdb
    pvscan
    pvdisplay
    pvremove
    
  3. 将物理卷整合为卷组(VG)

    vgcreate 选项 卷组名 物理卷名
    vgscan
    
  4. 把卷组划分为逻辑卷(LV)

    lvcreate 选项 卷组名
    

10.启动引导与修复

10.1 系统运行级别

查看:runlevel

改变级别:init 级别

级别:

  • 0:关机
  • 1:单用户模式
  • 2:不完全的命令行模式(无NFS)
  • 3:标准命令行模式
  • 4:系统保留
  • 5:图形模式
  • 6:重启动

永久默认启动级别设置:/etc/inittab

10.1.1 开机执行文件

文件:/etc/rc.d/rc.local

  • /var/lock/subsys/local 开机触摸

10.2 启动引导程序

10.2.1 grub引导程序

优点:更多的文件系统、查找内核文件、启动时修改启动选项、动态配置grub配置文件

10.2.2 /boot/grub目录

作用:

  • 加载系统内核
  • 选择系统的菜单
  • 调用其他引导程序,实现多系统引导

10.2.3 grub配置文件

前四行:

  • 默认启动系统:0
  • 等待选择时间:5
  • 背景文件:
  • 隐藏按钮

后每四行:可用系统

  • 标题
  • 启动目录:
  • 内核:
  • 虚拟文件系统:

10.2.4 grub加密

  1. grub-md5-crypt
  2. 将秘钥放在grub配置文件背景文件后
  3. 不能加lock

10.3 系统修复模式

10.3.1 单用户模式

修改密码:

  1. 启动时按e,选中grub配置文件内核,按e
  2. grub配置文件内核加空格1,进入系统
  3. passwd root修改密码

修改启动级别:

  • 修改/etc/inittab

10.3.2 光盘修复模式

  1. 光盘启动
  2. chroot /mnt/sysimage
  3. 修复

11.服务管理

11.1 服务分类

  • RPM包安装服务
    • 独立服务
    • 基于xinetd服务
  • 源码包安装服务

11.2 管理

11.2.1 RPM包独立服务

  • 启动

    • 使用/etc/init.d目录下启动脚本启动

      /etc/init.d/httpd start
      
    • 使用service命令启动

      service 独立服务名 start|stop|restart
      
  • 自启动

    • chkconfig命令设置

      chkconfig --level 级别 服务名  on|off
      
    • /etc/rc.d/rc.local文件配置

      vi /etc/rc.d/rc.local
      
    • ntsysv命令设置

      ntsysv --level 级别
      

11.2.2 基于xinetd服务

  • 启动

    • 配置/etc/xinetd.d/telnet
    service 独立服务名 start|stop|restart
    
  • 自启动

    • chkconfig命令设置

      chkconfig 服务名  on|off
      

11.2.3 源码包服务

  • 启动

    • 使用/usr/local/服务/bin/…启动脚本启动

      /usr/local/服务/bin/... start
      
  • 自启动

    • /etc/rc.d/rc.local文件配置

      vi /etc/rc.d/rc.local
      
  • 配置命令识别

    • service命令识别:软连接启动脚本到/etc/init.d目录下

    • chkconfig命令识别:启动脚本前加入

      #chkconfig: 运行级别 启动顺序 关闭
      #description:说明
      
      chkconfig --add 服务名
      

12.系统管理

12.1 进程管理

ps 静态查看进程
top 动态查看进程
pstree 查看进程树
kill 杀死进程
killall 杀死进程
pkill 杀死进程

12.2 工作管理

转入后台:

  • &
  • ctrl+z

后台命令:

  • jobs -l 查看
  • fg %工作号 恢复到前台
  • bg %工作号 后台暂停>后台执行

12.3 资源查看

vmstat					监控系统资源

dmesg					开机时内核检查

free					内存使用情况

/proc/cpuinfo			cpu信息

w						已经登陆用户信息

who      				已经登陆用户信息

uptime					系统启动时间和平均负载

uname					查看系统与内核信息

12.4 定时任务

at						一次性定时任务
crontab					循环定时任务
anacron					关机情况定时任务

13.日志管理(缺)

常见日志文件目录:/var/log/

13.1 rsyslogd服务

配置文件:/etc/rsyslog.conf

13.2 日志轮替

@笔记分享


转载:https://blog.csdn.net/weixin_44406449/article/details/115351707
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场