Linux 背景
Linux的全称是Linux is not unix。这句话的首字母拼在一起也是L i n u*x,类似于递归的一种结构,很有程序员的特色。
Linux诞生于1991年8月25日,创始人叫Linus Torvalds。作者的名字Linus跟Linux很接近。
Linus当初是为了好玩才创造了Linux,没有什么伟大的目标。因为Minix系统设计太差,Unix又不开源,只好自己写了。(牛逼的人就是不一样)
Linux在服务器领域的市场占有率在90%以上,远远超过其他操作系统的比例。
原来越多的设备采用Linux内核,比如安卓,电视等。苹果iPhone用的是darwin内核,从Unix衍生过来的,很多工具和命令跟Linux很像
现代Linux操作系统
严格意义上来说,Linux不是一个操作系统,Linux只是一个操作系统内核。
我们通常意义上的Linux是一种泛称,它有很多发行版,下面列举几个常见的发行版
- Ubuntu*
- Gentoo
- Debian
- Fedora*
- RHEL / CentOS*
- OpenSuse
- Arch Linux
- Linux Mint
Linux有很多种图形界面,gnome, kde, lxde,xfce,其中最常用的是gnome和kde。
不像windows系统,只有一种图形界面,用户无法进行更换。
Linux系统概述
现代Linux操作系统非常复杂。要理解操作系统工作原理的最好方法是抽象思维。
比如开车,一辆汽车的构造是非常复杂的,但是开车却不难。只要掌握方向、油门、刹车就可以了。
汽车内部的动力传输,汽油输送等等复杂的过程都被屏蔽了。
Linux系统也一样,我们只需要通过命令与系统进行交互,而不需要知道内核内部复杂的结构。
Linux 目录结构
Linux基础命令和结构
KISS原则,Keep it simple, stupid.
1. ls命令
ls命令用来显示指定目录的内容,默认参数是当前目录。
可用选项 -l,以列表的方式呈现,能够显示更多文件信息
2. cp命令
cp命令用来复制文件。下面的命令将文件file1复制到文件file2
cp file1 file2
下面的命令将多个文件复制到目录dir
cp file1 ... fileN dir
3. mv命令
mv命令用来重命名和移动文件。下面的命令将file1重命名为file2
4. cd 命令
cd命令用来设置当前工作目录,类似于Windows里面的打开目录。如果不带参数的话,cd命令会返回你的个人主目录。
5. mkdir
创建目录
6. rmdir
删除目录
7. Shell 通配符
下面的命令用拉显示当前所有文件
echo *
8. grep命令
grep命令用来在文件中查找匹配的行
grep root /etc/passwd
9. less命令
当要查看的文件过大或者内容多得需要滚动屏幕时,可以用less命令。
less /etc/passwd
9. pwd命令
pwd命令用来显示当前工作目录
10. diff命令
diff命令用来查看两个文件之间的不同,例如:
diff file1 file2
11 file命令
如果你想知道一个文件的格式信息,可以执行file命令
12. find
find用来在系统中查找文件
find / -name 'linux'
13. head和tail命令
head命令用来显示文件的前10行内容,tail命令用来显示文件的最后10行内容
14 sort 命令
sort命令将文件内的所有行按照字母顺序快速排序
15. passwd命令
passwd用来更改用户密码
16. dot文件
Linux以.开头的文件通常被忽略,比如.ssh。比如ls命令。当然如果你无论如何想要显示的话,可以加-a参数。
ls -a
这样就能显示以.开头的文件了
17. shell输入输出
如果想要将命令的执行结果输出到文件(默认是屏幕),可以用重定向符 >
command > file
如果不想覆盖文件,而是追加,可以用>>
command >> file
你还可以通过管道字符( | ) 把一个命令的输出到另一个命令,例如
cat /etc/passwd | sort
18 标准输出错误
有时候你会发现,即使重定向了标准输出,终端屏幕上还是会显示一些信息,这就是标准输出错误,比如运行以下命令
ls /ffffffffff > f
可以把标准输出错误重定向到文件
ls /fffffffff 2> e
19. 标准输入重定向
head < /proc/cupinfo
20. 常见错误
No such file or directory.
File Exits
Not a directory, Is a directory
21. 文件模式和权限
Unix系统中每一个文件都有一组权限值,原来控制你是否能够读、写和运行文件。可以使用命令ls -l来查看这些信息
22. 符号链接
ln -s target link_name
23. 归档和压缩文件
归档
tar cvf archive.tar file1 file2
解开
tar xvf archive.tar
压缩文件
gzip archive.tar
解压缩
gunzip archive.tar.gz
合并归档和压缩
tar czvf archive.tar.gz file1 ... fileN
解档并解压缩
tar xzvf archive.tar.gz
24 make命令
make命令用来编译安装源码包
编译
make
安装
make install
有些源码包可能会有一些参数,但是基本的操作这两个已经足够了。
25. ps命令
ps (aux)
26 netstat命令
netstat命令命令查看系统端口打开情况
27 文本编辑器
世界上只有三种编辑器:vim, emacs和其他
vim和emacs功能都非常强大,以至于形成了两个阵营。vim粉丝觉得emacs快捷键太复杂,emacs粉丝觉得vim的模式另类。
我建议用vim,适合快速编辑。我自己也用这个
关于vim的完整的功能,可以写一本书了。以后有机会的话给大家介绍一下这款编辑神器,正则表达式、寄存器、宏命令、多窗口编辑等。
vim之所以被称为神器的原因,是因为这款编辑器功能不是单一的累加,而是可以自由组合的,因为它的功能都是正交的。
比如通过正则表达式查找匹配行并且删除,只要组合查找和删除命令即可,非常方便。
vim file_name
用vim打开文件
打开vim以后:
按i, a, o进入编辑模式,按ESC返回只读模式
只读模式下按:w(英文冒号+字母w), 保存文件;按:wq,保存并且推出编辑器。
只读模式下按gg跳转文件第一行;按GG跳转到最后一行。
CentOS 专用命令
1. 安装软件包
yum install package_name [-y]
2. 查找软件包
yum search package_name
3. 服务管理
启动服务
systemctl start service_name
停止服务
systemctl stop service_name
重启服务
systemctl restart service_name