前言
以前我的不喜欢用 Linux
系统,什么目录啊,文件啊,权限啊,都得命令操作,入门难度较大。但是一旦熟练起来,真不想再去用 windows
了。再加上 shell
脚本,那才叫如虎添翼啊,真的是见识到了什么才是性能,什么才是自动化。
Linux
相较于 windows
而言,占用内存更小,因为 windows 的图形化界面比较占内存。Linux
的生态也比较丰富,各种各样的服务端软件都会有 Linux
版本。Linux
也衍生出各种格言的版本,我用的比较多的是 Centos
在 Linux 中,一切皆文件。所以各种目录、文件的权限、创建者、所属组都是比较实用的东西。
本文内容基于 Centos 7.4
版本。
主要内容:
- linux 目录说明
- PATH 加载的原理及配置
- 常用简单命令
- sed,awk,find,管道流,重定向,scp
目录介绍
Linux 中的目录还是要清楚的,有一些约定成俗的规定需要大家了解。
目录只介绍一些重要常用的。大致了解什么作用即可。
根目录-/
根目录下面有许多子目录 bin
etc
home
opt
usr
sbin
var
tmp
等等。
/root
是用户 root
的家目录。
/home
除 root
用户之外的其它的用户家目录。cd ~
就是进入当前用户的家目录。
/bin
/bin
实际是个软连接(理解为 windows 的快捷方式),链接到 /usr/bin
。里面都是一些二进制的执行文件。我们常用的 yum
su
sudo
cp
都在这个目录下。通常我们安装的程序,可以在这里访问到。
/sbin
s
指 Spuer user。
/sbin
也是一个软连接,链接到 /usr/sbin
存放二进制文件,管理员可执行的命令。
/etc
/etc
为配置文件所在路径。比如 /etc/nginx
存放 nginx
的配置文件。
/usr
usr
为 unix system resources
简写。表示系统资源的路径。
/usr/bin
所有用户的都可访问的二进制命令,不包括系统管理员的命令。
/usr/share
包含共享数据。比如 /usr/share/nginx
为 nginx 存放的静态资源。
/usr/local
从源码编译安装的程序安装到这里。
/usr/src
系统内核 kernel
源码位置。
/var
程序运行产生的缓存文件,锁文件,pid 文件,日志文件等会在这个目录,一些经常会变化的内容保存的位置。
命令执行的优先级
我们经常用 pwd
获取当前目录路径,如果我自己写个 shell 脚本,命名为 pwd
,将其加入到 PATH
中,那二者谁会执行呢?
这就是为什么要了解命令的优先级了。
命令优先级
第一优先级:指定路径的命令。绝对路径 /home/parallels/a.sh
或者相对路径 ./a.sh
。
第二优先级:别名指定的命令 alias pwd=/home/parallels/a.sh
第三优先级:内部命令(pwd)
第四优先级:hash 命令
第五优先级&#x