Linux最初的雏形来自芬兰赫尔辛基大学的年轻人Linus Torvalds,从1991 年4 月份起,他开始酝酿并着手编制自己的操作系统。刚开始,他的目的很简单,只是为了学习Intel 386 体系结构保护模式运行方式下的编程技术。但后来Linux 的发展却完全改变了初衷。1991 年初,Linus 开始在一台386sx 兼容微机上学习minix 操作系统。minix是根据 Unix 系统修改的教学版本,只能用在一种计算机上,对编程诸多限制,但因为费用低廉而有一定的传播度。林纳斯对这个系统十分失望,他想要更加自由、更加不限制编程者的操作系统,于是他把自己要做自由才做系统的消息放了出去,偶尔还跟 Minix 的黑客们打打嘴仗。根据Linux 在comp.os.minix 新闻组上发布的消息,我们可以知道他逐步从学习minix 系统到开发自己的Linux 的过程。Linus 几乎花了全部时间研究386-minix 系统(hack the kernel),并且尝试着移植GNU 的软件到该系统上(GNU gcc、bash、gdb 等)。并于4 月13 日在comp.os.minix 上发布说自己已经成功地将bash 移植到了minix 上,而且已经爱不释手、不能离开这个shell 软件了。托瓦兹出生于芬兰赫尔辛基市。父亲尼尔斯·托瓦兹(Nils Torvalds)是一名活跃的共产主义者及电台记者。托瓦兹家族属于在芬兰占6%的少数民族芬兰瑞典人。他毕业于赫尔辛基大学计算机科学系,1997年至2003年在美国加州硅谷任职于全美达公司(Transmeta Corporation)参与该公司芯片的code morph技术研发。后受聘于开源码发展实验室(OSDL : Open Source Development Labs, Inc),全力开发Linux内核。现任职于Linux基金会。
1.linux系统结构
linux 是一个倒树型结构,最大的目录名称叫“/”(根目录)
linux 系统中的二级目录有
- /bin 二进制可执行文件,系统常规命令
- /boot 为启动目录,存放系统自动启动文件,内核以及初始化程序
- /dev 系统设备管理文件
- /etc 大多数系统配置文件存放路径
- /home 普通用户家目录
- /lib 函数库
- /lib64 64 位函数库
- /media 临时挂载点
- /mnt 临时挂载点
- /opt 第三方软件安装路径
- /proc 系统硬件信息和系统进程信息
- /root 超级用户家目录
- /run 自动临时设备挂载点
- /sbin 系统管理命令,通常只有 root 可以执行
- /srv 系统数据目录
- /sys 内核相关数据
- /tmp 临时文件产生目录
- /usr 用户相关信息数据
- /var 系统数据目录
如何在linux中运行命令
1.打开shell
2.在命令提示符后输入动作
行提示符含义:
[kiosk@foundation50 Desktop]$
kiosk 用户
@ 分隔符
foundation50 主机短名称
Desktop 所在系统位置
$ 身份提示符$表示普通用户,#表示超级用户
命令的组成
命令 参数 目标
虚拟机管理命令
rht-vmctl start desktop | server 开启
rht-vmctl poweroff desktop | server 关闭
rht-vmctl view desktop | server 显示
rht-vmctl reset desktop | server 重置
2.文件寻址
文件的地址分为 相对路径 和 绝对路径 两种。相对路径是相对于当前系统所在目录的一个文件名称的简写,这个名称忽略了系统当前所在目录的名称,不以“/”开头,在命令执行时会自动在操作对象前加入“PWD”所显示的值;绝对路径是文件在系统的真实位置,以“/”开头,在命令执行时系统不会考虑现在所在位置的信息。
- 显示路径
pwd 显示当前的绝对路径
~ 当前用户家目录
~user 指定用户的家目录
~+ 当前目录
~- 进入当前目录前所在的目录
-
切换路径
cd 目录名称 进入指定目录
cd - 当前目录和当前目录前所在目录之间的切换
cd ~ 进入当前用户家目录
cd ~user 进入指定用户 user 家目录
cd .. 进入当前目录的上级目录
3.文件管理
- 文件建立
touch 不但可以建立文件也可以修改文件的时间戳
touch filename 建立文件
时间戳分为
atime(Access): 文件内容被访问的时间标识
mtime(Modify): 文件内容被修改的时间标识
ctime(Change): 文件属性或文件内容被修改的时间标识
可以使用 stat filename 查看文件时间戳
- 目录建立
mkdir folder 创建文件目录
mkdir -p folder1/folder2/folder3 建立递归目录,当上层目录不存在时自动创建
-
文件删除
rm filename 删除文件
rm -f filename 强制删除文件,无提示信息
- 目录删除
rm -r folder 递归删除,删除文件目录和内部的所有内容
rm -fr folder 强制递归删除,无提示信息
在命令参数使用过程中,顺序不需要注意,如 rm -fr folder = rm -rf folder = rm -f -r folder =rm -r -f folder
- 文件编辑
gedit file 使用 gedit 编辑,有图形界面
vim file 使用 vim 编辑
vim file 使用 vim 编辑
- 文件复制
cp file1 file2 复制源文件 file1 ,生成目的地文件 file2
cp -r fold1 fold2 复制源目录 fold1 ,生成目的地目录 fold2
cp file1 file2 fold1 复制源文件 file1 ,file2 到目的地目录 fold1 ,目的地目录必须存在
cp -r fold1 fold2 fold3 复制源目录fold1 ,fold2 到目的地目录 fold3 ,目的地目录必须存在
- 文件移动
mv file1 file2 移动源文件 file1 为目的地文件 file2 ,重命名
mv fold1 fold2 移动源目录 fold1 到目的地目录 fold2
在移动中,相同磁盘的文件移动只是一个重命名的过程,不同磁盘的文件移动是复制删除过程
- 文件查看
cat file 查看文件的全部内容
cat -b file 查看文件的全部内容并显示行号
less file 分页浏览
head file 查看文件前10行
head -n 3 file 查看文件前3行
tail file 查看文件后10行
tail -n 3 file 查看文件后3行
tail -f file 监控文件后10行内容的变化
在使用 less 命令时,按上键或者下键可以逐行移动,PageUp 键或者 PageDown 键可以逐页移动,
/关键字 可以高亮显示关键字,n 向下匹配,N 向上匹配,
v 键可以进入 vim 模式,在 vim 模式中按 :wq 退回 less 模式,
q 键可以退出浏览
vim的三种模式
- 命令模式 浏览文件,临时更改 vim 的工作方式,对字符批量处理
- 插入模式 对文件内容进行编辑
- 退出模式 退出 vim 程序
1.命令模式
- 字符的管理
yl 复制一个字符
y3l 复制三个字符
yw 复制一个单词
y3w 复制三个单词
yy 复制一行
y3y 复制三行
dl 删除一个字符
d3l 删除三个字符
dw 删除一个单词
d3w 删除三个单词
dd 删除一行
d3d 删除三行
cl 剪切一个字符
c3l 剪切三个字符
cw 剪切一个单词
c3w 剪切三个单词
cc 剪切一行
c3c 剪切三行
p 粘贴
u 撤销
Ctrl + r 恢复撤销
在进行剪切操作后,vim 会进入插入模式,此时如果需要粘贴,
按【Esc】退出插入模式,然后按 p键 粘贴
- 可视化模式
Ctrl + v 进入 VISUAL BLOCK 模式,可以进行区域操作
y 复制
d 删除
c 剪切
批量添加字符:Ctrl + v 选中要加入字符所在的列,按大写的 I 加入字符,然后按【Esc】完成批量添加
- 字符的替换
替换指令:
:%s/要替换的字符/替换成的字符/g
其中 %s 标示所有的行,g 标示所有的列
如:
:%s/:/@/g 替换全文的 : 为 @
:1,5s/:/@/g 替换1-5行的: 为 @
:%s/:/@/ 替换全文每一行第一个 : 为 @
2.插入模式
i 光标所在位置插入
I 光标所在行行首插入
o 光标所在行的下一行插入
O 光标所在行的上一行插入
a 光标所在字符的下一个字符插入
A 光标所在行的行尾插入
s 光标所在字符删除并插入
S 光标所在行删除并插入
3.退出模式
:q 退出,在文件内容没有被改变时使用
:wq 退出保存
:q! 强制退出不保存,在改变文件后不想保存时使用
:wq! 强制退出保存,在对只读文件编写时使用
在使用 :wq! 命令时,所编辑的文件必须是当前用户的文件,或者当前操作的用户是 root
- 关于 vim 的异常退出
O 只读打开
E 继续编辑
R 恢复数据
D 删除 swap 文件
Q 退出
A 退出
无论按【O】【E】【R】【Q】【A】任意一个都不会删除 .swp 文件
再次打开此文件还是会出现以上界面直到按【D】, .swp 文件被删除,vim 恢复正常工作