linux基础知识点

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、付费专栏及课程。

余额充值