Linux系统学习


1 历史

Linux:Linux Is Not Unix

Unix:是Linux的前身,因为收费,只有在公司和学校才能用到,一位高手在学校用到以后觉得非常好就写了一个Linux。

Linux核心:基于内核的操作系统,Linux兄弟只写内核(管理硬件的程序)

Linux发行版本:debian,slackware,suse,红旗,turbolinux,redhat,fedora,mandrake(依赖于内核的工具),在linux内核上写了外围的依赖程序,根据依赖程序又写了许多许多管理硬件工具

Linux版本:r.x.y,r:release version,x:偶数,稳定版本,奇数,开发中的版本,y:错误修补的次数 eg:2.0.38

 

2 分区:

VFS:虚拟文件系统,所有文件系统统一的接口,可以根据接口编程(多态)

分区表:如图,记录了分区的信息,一般位于对应分区的开始,最多只能记录四条记录,所以主分区加扩展分区最多不能超过四个(一般用来装系统),下面那张表记录了逻辑分区(不同的文件系统)

格式化:建立不同的文件系统,就是对应数据不同的存储规格。

为什么要分区:可以在同一块硬盘上装各种各样的文件系统,各种各样的小格,不同的文件系统的拥有不同的小格。更加容易管理

windows:c:(主分区),d:(扩展分区/逻辑分区),e:(扩展分区/逻辑分区)

linux分区的命名:所有的设备在Linux看来都是文件,分为字符设备(如键盘)和块设备(如硬盘)

--/dev/xxyN,/dev/:所有设备文件所在的目录名,xx:分区名的前两个字母标明分区所在的设备的类型。通常是hd(IDE磁盘)或sd(SCSI磁盘)。y:这个字母标明分区所在的设备,代表第几个硬盘。N:代表分区,前四个分区(主分区和逻辑分区)是从1到4,逻辑分区从5开始。例如:/dev/hda3:第一个IDE硬盘上的第三个主分区或逻辑分区,/dev/sdb6:在第二个SCSI硬盘上的第二个逻辑分区。

访问分区:通过挂载(mount)实现,挂载是将分区关联到某一目录的过程。挂载分区使起始于这个指定目录(称为挂载点)的贮存能够被使用。如:mount /dev/cdrom /mnt/cdr

至少两个分区:/分区,SWAP分区:把硬盘当内存使用(虚拟内存),实际物理内存的两倍

3 目录结构:google

4 linux启动过程(boot sequence)

load bios(hardware information)

read MBR‘s config to find out the OS:根据MBR的配置找到启动哪个操作系统

load the kernel of the OS:这个操作系统启动的核心文件

init process starts:init进程启动

execute /etc/rc.d/sysinit:运行命令

start other modules (etc/modules.conf):read读取系统各种模块

execute the run level scripts:,启动级别,启动到哪个层次,分层结构,分为6层,每层之间互不影响,可以修改(/etc/inittab)

execute /etc/rc.d/rc.local:执行脚本

execute /bin/login

shell started..

5 linux帮助

命令 --help

man 命令

6 command(常用)

ls:列出当前目录下的文件和目录,ls -l:显示详细信息,ls -R:树状递归显示目录下的所有文件和目录下的目录

tree:树状显示

cd:进入目录,cd ..返回上层路径

pwd:当前路径

mkdir:建目录

rmdir:删除空目录

rm -rf:递归强制删除目录或文件,强制删除不跳出确认信息

touch:创建文件

cp:复制,cp -r:递归拷贝目录

mv:移动,改名

vi:文本编辑器(跨平台,远程),vi 文件名(创建或编辑文件)

一进去为命令模式:只能敲命令

a:追加

切换为命令模式:esc

:w 存盘,:q 退出

more:查看文件内容

cat:查看文件内容

tac:逆序查看文件内容

head:查看文件,head -3:查看文件前三行

tail:查看文件,tail -3:列出最后三行

clear:清屏

find:查找文件在什么位置上,find / -name my*

grep(常用):grep 字符串 文件名,查找对应字符串在文本文件的哪一行

whereis:查看命令是由谁执行的以及命令的文档

echo:echo $PATH:查看PATH

ln:链接,两个文件保持同步,与copy不同。ln -s:软链接,相当于windows的快捷方式

useradd:增加用户,在/home增加对应文件夹,默认和用户名相同的组,-g 组名

usermod:修改用户名,-g:修改组名

userdel:删除用户

su 用户名:切换用户

passwd:指定用户密码

more /etc/passwd:所有的用户

more /etc/group:组的信息

ls -l:显示详细信息(详解):

第一位:分为-:文件,l:链接,d:目录

第二位到第四位:文件/目录的所有者,拥有者的权限

第五位到第七位:文件/目录所有者同组的其他人的权限

第八位到第十位:剩下的人的权限

chmod:修改权限,chmod u+x 文件名:修改当前用户的权限,chmod g+x 文件名:修改同组权限,chmod 777:高级操作,第一个7代表用户权限,第二个7为同组权限,第三个7为剩下人权限,把7对应的二进制来表示读写执行(1为有,0为没有)如:7:111,5:101

chown:修改所有者,chown 所有者 文件名

wc:统计指定文本文件的行数,字数,字符数wordcount

col:过滤控制字符

管道:将一个命令的输出传送给另一个命令,作为另一个命令的输入,命令1|命令2|...命令n

ls -Rl /etc | more

cat /etc/passwd | wc

cat /etc/passwd | grep lrj

dmesg | grep eht0

man bash | col -b > bash .txt

ls -l | grep "^d":之列出目录

ls -l * | grep "^-" | wc -l:当前目录下有多少文件

wall:wall ’命令‘ ,将命令执行的结果发送给每个登录到shell上来的人

命令替换:将’命令‘替换为命令

重定向:将命令输出写入文件,或将文件读取输入命令

输出:ls > cmd.txt , ls >> cmd.txt ,>代表替换,>>代表追加

输入:wall < aa.txt

export:当linux下设定环境变量之后想让其他人使用则需要使用该命令,如:export PATH=/home/yyz/Applications/adt-bundle-linux-x86_64-20130917/sdk/tools:$P
ATH

ps:观察下面有哪些进程,ps -ef:当前用户下的所有的进程,ps -ef | grep 进程名

kill:杀进程,kill -9 进程名,强制杀进程

service:服务管理,service 服务名 start:启动服务。service 服务名 stop:关闭服务,常用:service iptables stop,关防火墙

wget 网址:本地连接网站(其中一个功能),测试

7 搭建部署环境

必须使用纯命令行操作,因为server使用纯命令行

服务自启动:chkconfig命令的使用 (启动级别和防火墙的设置(iptables))

相关内容