linux基础知识点

该博客是Linux系统的入门指南,介绍了Linux的核心、名词缩写、操作模式和应用场景。还涉及主机规划,如设备号、主机服务、硬盘分区等。此外,讲解了文件、目录和磁盘格式管理,包括文件属性、权限更改、磁盘物理组成等,最后提及Shell和Shell脚本的学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1          认识Linux及Linux主机规划与安装

1.1                什么是Linux

1.1.1           核心Kernel

操作系统最底层的的东西,必须管理一下事项:

系统调用接口:System Call Interface

进程控制:Process Control

内存管理:Memory Management

文件管理系统:File System Management

设备驱动程序:Device Drivers

1.1.2           名词缩写

GNU:        GNU’s Not UNIX                                GNU并不是UNIX

GPL:         GNU General Public License            通用公共许可证

GCC:        GNU C

glibc:       GNU C Library

GUI:        Graphical User Interface                 图形用户界面

LSB:         Linux Standard Base                           Linux标准基础

FHS:         File system Hierarchy Standard       文件系统层次标准

BIOS:        Baisc Input/Output system              基本输入/输出系统

NAT:                   Network Address Translation          网络地址转换

MBR:        Master boot recorder                        主引导分区

                  Partition table                                     磁盘分区表

1.2                如何学习Linux

1.2.1           Linux 操作模式

X-window                  图形界面

Command Line        命令行

1.2.2           Linux的应用

网络服务器:         例如WWW,邮件服务器,文件服务器,FTP服务器

工作站计算机:     工作站计算机本身不应提供Internet服务,通常面对比较重要的应用,如软件开发人员的工作平台

台式计算机:         桌面系统

嵌入式系统:         微型计算机等消费小型电子设备的系统

1.3                Linux主机的规划

1.3.1           Linux 设备号

在Linux中,每一台设备都被当成一个文件来对待,几乎所有的硬件设备号文件都在/dev目录中。

设备                  Linux中的设备号

IDE硬盘           /dev/hd[a~d]

SCSI硬盘                   /dev/sd[a~p]

U盘                   /dev/ sd[a~p](与SCSI硬盘一样)

CDROM             /dev/cdrom

软驱                  /dev/fd[0~1]

打印机              /dev/lp[0~2]

鼠标                  /dev/mouse

磁带机              /dev/ht0(IDE)或/dev/st0(SCSI)

1.3.2           Linux的主机服务:

NAT: (类似IP共享的功能)申请一个固定的IP地址,然后通过IP共享(IP Sharing)

SAMBA: (类似网上邻居功能)Linux和windows共享,需要使用SAMBA

Mail: (邮件服务器)提供Sendmail和Postfix邮件服务

Web: (WWW服务器)

DHCP: (提供自动获取IP地址的功能)

Proxy: (代理服务器)

FTP:

1.3.3           大硬盘分区

将引导分区规范在小于1024以内,简单可以划分3个分区:

/boot        (只需要100MB以内即可,并且要放到整块硬盘的最前面)

/

Swap

1.4                安装FC4与多重启动技巧

1.4.1           磁盘号

IDE1(Primary)                    /dev/hda                    /dev/hdb

IDE2(Secondary)               /dev/hdc                     /dev/hdd

1.4.2           硬盘分区

硬盘分为2个区域:

MBR:主引导分区(引导程序和磁盘分区表)

文件数据放置的区域

 

 

硬盘分区:实际上是修改MBR里面的分区表

一个硬盘最多有4个( 主+扩展)分区:P+P+P+P or P+P+P+E

扩展分区其实就是“指向”正确的额外分区表,本身扩展分区是不能在任何系统上使用的,还需要额外奖扩展分区分成逻辑分区才能使用

 

IDE硬盘   :逻辑分区的号码可达63号

SCSI硬盘  :逻辑分区的号码可达15号

主分区1~4号已经被预留,所以第一个逻辑分区的代号从5开始。

举例说明:

安装在IDE1的主盘,分成6个分区:








1.1                启动关机,在线求助与执行命令的方式

1.1.1           切换X Window与命令行模式

ALT+CTRL+Backspace :重新启动X Window

ALT+CTRL+F1~F6:     命令行登入tty1~tty6终端

ALT+CTRL+F7:     图形界面桌面

1.1.2           重要热键Tab,CTRL+C,CTRL+D

Tab:      命令补全,文件补齐

CTRL+C:       中断正在执行中的命令

CTRL+D:       键盘输入结束(End of file),EOF,输入结束(End of input)

Man page的数据是放在/usr/share/man

Info命令的数据时放在/usr/share/info

1.1.3           常用的关机命令

/sbin/shutdown –h now à立刻关机

/sbin/shutdown –h 10:25à10:25关机

/sbin/shutdown –h +10  à再过10分钟后关机

/sbin/shutdown –h 10 ‘I will shutdown after 10 mins’ –>10分钟后关机,并显示信息

 

/sbin/shutdown –r now à立刻重新启动

/sbin/shutdown –r +30 ‘The system will reboot after 30min’ –>30分钟后,重启,并显示信息

/sbin/shutdown –k now ‘The system will reboot’ –>仅发出警告,并不关机

 

Reboot/halt/poweroff

1          Linux文件,目录和磁盘格式

1.6                Linux的文件属性和目录配置

1.6.1           用户和用户组

用户/用户组/其他人(owner/group/other),定义不同权限read/write/excute

所有系统账户与一般身份用户及root相关信息都记录在/etc/passwd文件中

密码记录在/etc/shadow文件中

Linux所有用户组名称都记录在/etc/group文件内

1.6.2           Linux文件属性

drwxrwx---

[d]:   目录文件

[-]:   普通文件

[l]:   连接文件(link file)
[b]:   块设备(设备文件中可供存储的接口设备)

[c]:   字符设备(设备文件中串行端口设备)

 

对于只有r权限的目录文件,不能够进入该目录,只能列出目录下的文件名

drwxr--r--. 3 root root 4096 Feb 28 18:27 test

[msdn@localhost tmp]$ ll ./test

ls: cannot access ./test/test1: Permission denied

ls: cannot access ./test/test.txt: Permission denied

total 0

d????????? ? ? ? ?            ? test1

-????????? ? ? ? ?            ? test.txt

1.6.3           更改文件权限

chgrp 更改所属用户组,要更改的用户组名称必须在/etc/group存在

chgrp [–r] 用户组 文件或目录

-r 进行递归的持续更改,连同子目录下的所有文件,目录都更新成这个用户组

 

chown 更改文件拥有者,要更改的用户名称必须在/etc/passwd存在

chown [-r] 用户 文件或目录

chown [-r] 用户:用户组 文件或目录

 

chmod 更改文件属性

chmod [-r] xyz 文件或目录

chmod (u/g/o/a)(+/-)=(r/w/x) 文件或目录

chmod u=rwx,go=rw filename

1.6.4           目录配置的内容

目录

应放置的文件内容

/

根目录,一般建议在根目录下面只有目录,不要直接有文件
根目录是启动时系统载入的第一个分区,所以,所有启动过程会用的文件都应该放在这个分区中
例如:/etc,/bin,/dev,/lib,/sbin5个目录应该和根目录连在一起,不能独立成为某个分区

/bin
/usr/bin
/usr/local/bin

都是放置用户可执行的二进制文件的目录

/boot

放置Linux启动时用到得文件,启动时会用到Linux的核心文件vmlnuz
如果引导程序是grub,此目录下还有/boot/grub

/dev

任何设备都以文件类型放在此目录下

/etc

放置系统的主要设置文件,一般只有root有权限修改,

/home

系统默认的用户家目录

/lib
/usr/lib
/usr/local/lib

系统使用的库函数的目录
/lib/modules
目录内有核心的相关模块

/lost+found

系统出现异常,产生错误时,会将一些遗失的片段放于此目录下

/mnt
/media

软盘和光盘的载入点

/opt

给主机额外安装软件所放置的目录

/proc

虚拟文件系统,数据放置在内存中,不占硬盘空间

/root

系统管理员的家目录

/sbin
/usr/sbin
/usr/local/sbin

放一些系统管理员才会用到的执行命令,例如fdisk,mke2fs,fsck,mkswap,mount…

/srv

一些服务启动之后,这些服务需要访问的数据目录

/tmp

一般用户或者是正在执行的程序临时放置文件的地方

/usr

包含系统的主要程序,图形界面所需要的文件,额外的函数库,本机自行安装的软件,以及共享的目录与文件

/var

主要放置系统执行过程中经常变化的文件,如缓存或者是随时更改的登录文件

1.1                Linux文件和目录管理

1.1.1           pwd/mkdir/rmdir

pwd [-P]

‘-P’显示出实际路径,而非使用连接(link)路径

mkdir –p test1/test2/test3/test4

mkdir –m 711 test1

默认属性由umask来决定

rmdir –p test1/test2/test3/test4

PATH=”$PATH”:/root

1.1.2           cat/tac/nl/more/less/head/tail

nl [-bnw] filename

-b:行号的指定方式

       -b a:不论是否为空行,均输出行号

       -b t:如果有空行,空行不要列出行号

-n:列出行号的表示方法

       -n ln:行号在屏幕的最左方显示

       -n rn:行号在屏幕的最右方显示,并不加零

       -n rz:行号在屏幕的最右方显示,且加零

-w:行号字段站的位数

1.1.3           文件时间

modification time:       mtime   修改时间     更改文件内容,会更新此时间

status time:            ctime    状态时间     更改文件权限和属性,会更新此时间

access time:          atime    访问时间     读取文件内容,会更新此时间

ls -al /etc/man.config

ls -al --time=ctime /etc/man.config

ls -al --time=atime /etc/man.config

 

touch -t 1202191200 bashrc

[root@localhost tmp]# ll bashrc ;ll --time=atime bashrc;ll --time=ctime bashrc

-rw-r--r--. 1 root root 176 Feb 19 12:00 bashrc

-rw-r--r--. 1 root root 176 Feb 19 12:00 bashrc

-rw-r--r--. 1 root root 176 Feb 29 17:28 bashrc

atime和mtime都修改了,但是ctime记录仍然是当前的时间

1.1.4           文件默认权限

[root@localhost tmp]# umask;umask -S

0022

u=rwx,g=rx,o=rx

[root@localhost tmp]# touch test;mkdir test1

[root@localhost ~]# touch test1;mkdir test2

[root@localhost ~]# ll

-rw-r--r--.     1 root root     0    Feb 29 17:41 test1

drwxr-xr-x. 2 root root  4096   Feb 29 17:41 test2

1.1.5           文件特殊权限SUID/SGID/Sticky Bit

创建s和t的权限,是为了让一般用户在执行某些程序的时候,能够暂时具有该程序拥有者的权限

SUID:

SUID仅可用在’二进制文件binary file’,不能用在批处理文件(shell script)上

SUID对目录是无效的

SGID:

文件:如果SGID设置在二进制文件上, 不论用户是谁,在执行改程序的时候,它的有效用户组将会变成改程序的用户组所有者

目录:如果SGID设置在A目录上,则在该目录内所建立的文件或目录的用户组,将会是此A目录的用户组

一般来说,SGID多用在特定的多人团队的项目开发上,在系统中用的较少。

Sticky Bit:

SBit只是针对目录有效,对文件没有效果。

/tmp 本身的权限是drwxrwxrwt ,任何人都可以再/tmp内增加或修改文件,但仅有该文件/目录的建立者与root能够删除自己的目录或文件。

1.1.6           搜索文件

which [-a] command   寻找执行文件

whereis [-bmsu]       寻找特定文件

locate

find

 

1.2                Linux 磁盘与文件系统管理

1.2.1           硬盘物理组成

柱面(cylinder)是分区的最小单位

扇区(sector)是硬盘片上最小的存储物理量,大小是512Byte

硬盘的存储量=柱面*磁头*扇区*512Byte

逻辑块(block)是在分区时进行文件系统的格式化时所指定的“最小存储单位”

块的大小为扇区的2n倍数,一个块最多能容纳一个文件

每个分区就是一个文件系统,而每个文件系统开始位置的那个块就称为超级块(Superblock)

1.2.2           Linux ext2文件系统

文件分成两个部分来存储:

        à文件的属性(放置在inode中)

        à文件的内容(放置在块中)

块是记录文件内容的区域

inode则是记录该文件相关属性,以及文件内容放在哪一个块内.(一个inode大小是128Byte)

inode本身并不记录文件名,而是记录文件的相关属性,文件名则记录在目录所属的块区域。

文件和目录的关系如同前面提到的,文件的相关连接会记录在目录的块区域。

所以要读取一个文件的内容,Linux会先有根目录/获取该文件的上层目录所在的inode,再由该目录所记录的文件关联性(在该目录所属的块区域)获取该文件的inode,最后通过inode内提供的块指针,来获取最终文件内容。

 

Ext2/ext3文件系统在建立(format)就已经设置好固定的inode数与块数目了

格式化Linux的ext2文件系统,可以使用mke2fs程序来执行

Ext2允许的块大小为1KB,2KB,4KB

一个分区(文件系统)所能容许的最大文件数与inode数量有关,因为一个文件至少占用1个inode

目录下面的文件数如果太多,导致一个块无法容纳所有的关联数据时,Linux会给与该目录多个块,来继续记录关联数据

 

SuperBlock(超级块):记录整个文件系统的相关信息的地方,没有它,就没有这个文件系统

Group Description(组描述):记录此块由何处开始记录

Block bitmap(块位图):记录块是否使用

Inode bitmap(inode位图)此处记录inode是否使用

Inode table(inode表):为每个inode的数据存放区

Data blocks(数据块):为每个块的数据存放区

数据存放区:inode table和data block

元数据metadata:superblock,inode bitmap,block bitmap

df

du

dumpe2fs /dev/sda1

fdisk

mke2fs

badblocks

1.1                2.9文件的压缩与打包

1.1.1           修改磁盘参数

mknod

e2label

tune2fs

hdparm

在Linux中,所有的设备都是以文件来表示的,就是通过文件的主(major)与次(minor)数值来表示,此两数值有特殊意义,不能随意设置

硬盘代号      主major       次minor

/dev/had      3             0~63

/dev/hdb      3             64~127

/dev/hdc      22            0~63

/dev/hdd      22            64~127

1.2                文件的压缩与打包

gzip bzip2 tar dd

2          学习Shell和Shell脚本

2.1                Vi的使用

Vi有3种模式:一般模式,编辑模式,命令行命令模式

通过设置文件来设置vim环境,vim设置值一般式放在/etc/vimrc文件中,不过,建议不要修改它。可以修改~/.vimrc文件(默认不存在,请自行手动建立)举例说明

[root@localhost ~]# vi ~/.vimrc

:set nu

set hlsearch

:set backspace=2

:set autoindent

:set ruler

:set showmode

:syntax on

2.2                认识Bash Shell

type [-tpa] name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值