# 常用目录 ↵
一切的目录均从
/
开始,这是根目录,文件树的起始。00/bin # 可执行文件 binary的缩写 01/dev # 设备特殊文件 device 的缩写 02/etc # 杂七杂八的配置文件 http://blog.csdn.net/haiross/article/details/13018335 03/home # 用户主目录 04/lib # 程序库 05/tmp # 临时文件 06/root # root 的主目录 07/mnt # mount 的缩写 用于挂载其他文件系统 08/proc # peocess 的缩写 是虚拟目录,里面是系统内存映射。可以在里面看到系统信息。 09/usr # 重要目录,要用到的程序几乎都在这里
# Linux Bash Cli ↵
Linux 之所以好用,原因就在于 Bash,它是 Linux 命令行的主要体现者,可以看成是命令行版的资源管理器i,可以访问执行各种文件/文件夹。
Bash
被设计成与内核交互的一门语言。以下是它的 Hello, World :00echo "Hello, World"
除此之外,bash 还可以使用变量、if 和循环。 本人也没有深入学习,故不做介绍。
# 环境变量 ↵
bash 在执行命令的时候,其实就执行磁盘上这个命令对应的程序,比如执行 ping 命令实际上是执行了某个叫做 ping 的程序,并把命令后面的参数传递进去:
00$ ping localhost
内核在接受上述指令后会转而寻找 ping 在哪。
至于去哪里找,内核会去
$PATH
里面找,而 $PATH 是定义在系统配置文件里面的变量,可以按照如下方法查看:00$ echo $PATH
然后命令行会打印诸如这样的字符串:
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
这些用
:
隔开的就是路径,内核会在这些目录寻找命令对应的程序。# 自定义一个自己的命令行程序 ↵
从上面的讨论可以知道,内核是在 $PATH 里面寻找命令的,也就是说,我们把我们编制好的程序放进去就可以了,下面演示一个 sayHello 命令的编写过程 (C 语言)。
# 编写源程序 sayHello.c
00#include <stdio.h> 01 02int main() { 03 printf("Hi eczn 菌\n"); 04 return 0; 05}
注意 我留空了 main 函数的参数,实际上这个参数就由命令行那边传递进来,可能有两个,一个是
argv
还一个是 args
# 利用 gcc 编译连接 sayHello.c 得到可执行程序
00$ gcc ./sayHello.c -o ./sayHello
(注 -o 指的是 output 后面跟上输出的可执行的二进制文件的名字)
# 进行测试
上一步会得到文件
sayHello
首先加上执行权限:
00$ chmod +x sayHello
这样 sayHello 就可以被执行了: (利用
./
来执行文件)00$ ./sayHello
正常执行。
# 把 sayHello 移动到 $PATH 下
00$ mv ./sayHello /usr/local/bin
然后就可以在任意目录执行 sayHello 命令了。
如果你还希望处理:
00$ ./sayHello --name=eczn
诸如上面这样可以处理传入的字符串参数,则需要改写 main 函数,main函数有两个参数,用于处理 bash 这方面传入的参数。
# 常用命令 ↵
知道了 linux 执行命令的原理之后,现在再来学习使用其他命令就能理解了。
常用命令一览:
00$ ls # 列出当前工作路径下的文件 list 01$ cd # 改变工作路径 change directory 02$ mkdir # 创建文件夹 make directory 03$ mv # 移动 move 04$ rm # 删除 remove 05$ wget # 可以用来做 http 文件下载 06$ curl # 可以用来做 http 请求 07$ pwd # print working directory 08$ echo # 打印字符串 输出可以重定向 09$ vim # 打开 vim 编辑器 10$ tar # 解压缩 tar 11$ zip # 解压缩 zip 12$ ping # ping 13$ yum # CentOS 软件管理器 14$ screen # 多 bash 工具 15$ cat # 显示文件内容 16$ touch # 创建新文件 17$ reboot # 重启
重在平时积累和谷歌搜索。
# 关于配置 ↵
由于 Linux 的命令行传统,很多软件是没有图形界面的,安装它们总是需要自己安装,而配置这些软件通常使用配置文件的方式。
# 安装
知道了命令行的原理之后,就清楚应该把软件的可执行文件放在 $PATH 里面。
而软件的安装有两种:
- 二进制安装
- 源码编译安装
二进制安装需要把相关程序放在 $PATH 即可,而编译安装还需要自行编译成二进制文件才可以安装,通常会有自动脚本或者官方教程。