本系列会将《鸟哥的Linux私房菜-基础版》中的一些个人觉得比较有用的命令行单独摘出来,方便查阅
-
/etc/passwd
记录系统用户 -
/etc/shadow
记录密码 -
/etc/group
记录群组 -
whoami
查看当前登录人信息 -
w
查看当前登录用户有哪些以及这些家伙在干嘛 -
ls -al
对应的列说明:
权限|连接数|所属用户|所属群组|文件大小(byte)|最后修改时间|名称
-
权限字符串对应说明:
文件类型|owner权限|group权限|others权限|
- 文件类型说明:
[d]
:目录
[-]
:文件
[l]
:链接文件(link file)
[b]
:硬件存储接口设备
[c]
:硬件串口设备,如键盘、鼠标等
- 权限字符串说明:
[r]
:可读
[w]
:可写
[x]
:可执行
[s]
:???
-
文件名前面有“.”的属于隐藏文件!
-
chgrp
改变文件所属群组 -
chown
改变文件拥有者 -
chmod
改变文件权限 -
以上三个命令都可以加上 -R 参数进行递归变更 chgrp -R xxx
-
chown可以直接连带组名 chown -R suolongga:huli xxxfile
- 文件权限的数字代号:
[r]
: 4
[w]
: 2
[x]
: 1
-
权限分数累加(每一位都是0和1两种状态,相当于3位二进制码转成10进制)
[rwx]
: 7
[rw-]
: 6
[r-x]
: 5
[r--]
: 4
[-wx]
: 3
[-w-]
: 2
[--x]
: 1
[---]
: 0 -
当不知道原文件权限属性时:
- 减去全部人员的可执行权限:
chmod a-x xxxfile
- 增加全部人员的可执行权限:
chmod a+x xxxfile
- 减去全部人员的可执行权限:
-
权限对文件的控制:
[r]
: 可读取文件中的文字内容
[w]
: 可修改文件中的文字内容(不含删除该文件)
[x]
: 可以对该文件进行执行 -
权限对目录的控制:
-
权限对目录的控制:
[r]
: 具有读取目录下文件列表的权限(read contents in directory)
[w]
: 可以在该目录下进行创建、删除、搬动、更名等操作(modify contents in directory)
[x]
: 是否能进入该目录(access directory) -
文件种类:
[regular file]
: 包括:ASCII、binary、data,属性为[-]
[directory]
: 就是目录,属性为[d]
[link]
: 快捷方式,属性为[l]
[device]
: 设备与驱动文件,包括:block硬盘设备文件(如/dev/sda)属性为[b]
、character字符设备文件(如鼠标键盘等)属性为[c]
[sockets]
: 网络通信接口文件,承接网络数据,属性为[s]
[FIFO,pipe]
: 特殊文件,用以解决多个程序同时存取一个文件所造成的错误问题,属性为[p]
-
Linux目录配置
- static
/usr
软件放置处(shareable)/opt
第三方软件(shareable)/etc
配置文件(unshareable)/boot
开机与核心文档(unshareable)
- variable
/var/mail
使用者邮件信箱(shareable)/var/spool/news
新闻组(shareable)/var/run
程序相关(unshareable)/var/lock
程序相关(unshareable)
- static
-
static
: 跟随distribution,不会经常变动。如库函数、文件说明、主机服务配置等 -
variable
: 经常变动的数据,如登录文件 -
shareable
: 可以分享给其他系统挂载使用的目录,如可执行文件 -
unshareable
: 仅与自身及其有关,不适合分享给其它主机,如驱动 -
FHS规范:
/
根目录,与开机有关/usr(unix software resource)
与软件安装/执行有关/var(variable)
与系统运作过程有关
-
根目录:包含系统开机时需要的特定软件、核心文件、开机所需程序、库函数、系统修复程序等等
#FHS分区建议:根目录所在的分区槽应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区槽内,这样可以保证根目录所在的文件系统不容易发生错误
-
Linux下的目录说明(必须存在的):
- 必须存在的:
/bin
: 单人维护模式下可被操作的指令
/boot
: 开机使用的文件,包括内核文件及开机选单、配置文件等(linux常用内核文件名vmlinuz)
/dev
: 任何驱动和接口设备都是以文件形态存于此目录中
/etc
: 系统的主要配置文件几乎都在此目录内,例如账号密码、各种服务初始化文件等,通常只有root可改
/etc/opt
: 存放第三方软件/opt的相关配置文件
/lib
: 存放开机时用到的库函数,以及/bin或/sbin下指令依赖的库函数
/lib/modules
: 主要用于存放自定义内核相关模块
/media
: 软盘、光盘、DVD等设备都挂载于此
/mnt
: 用于存放临时挂载的某些设备,早年与/media用处相同
/opt
: 用于存放第三方软件
/run
: 存放开机后产生的各项信息
/sbin
: 开机过程中需要的各类系统指令,如开机、修复、还原等
/usr/sbin
: 服务器软件程序的可执行文件
/usr/local/sbin
: 本机自行安装的软件所产生的可执行文件
/srv
: 一些网络服务启动后,这些服务所需要取用的数据目录,如/srv/www
/tmp
: 临时文件,任何人都可以存取
/usr
: (单独说明)
/var
: (单独说明) - 建议存在的:
/home
: 用户家目录
/lib<qual>
: 用来存放与lib不同格式的二进制库函数
/root
: 系统管理员的家,通常root目录会和根目录在一个分区槽中,单人维护模式时可访问 - 约定俗成的:
lost+found
: 使用ext2/ext3/ext4文件系统格式时才会产生的目录(xfs没有),存放出错时的遗失片段
proc
: 一个“虚拟文件系统”,里面的数据都在内存中(不占硬盘),如系统内核、进程信息、设备状态及网络状态等
sys
: 与proc非常相似,也是一个虚拟文件系统,记录的内容也类似,同样不占硬盘
- 必须存在的:
-
/usr
的意义与内容:- 必须存在:
/usr/bin
: 所有一般用户能够使用的指令都在此,在CentOS7中包含全部用户指令(把/bin链接于此),此目录下不能有子目录
/usr/lib
: 基本上与/lib相同,/lib链接于此
/usr/local
: 系统管理员在本机自行安装的自己下载的软件,该目录下也有bin,etc,include,lib等次目录
/usr/sbin
: 基本与/sbin类似,也是链接到这儿
/usr/share
: 主要放置只读架构的数据文件,也包括共享文件,几乎都是文本文件,man,doc为常见次目录 - 建议存在:
/usr/games
: 与游戏相关的数据
/usr/include
: c/c++等程序语言的头文件,使用tarball方式安装时会用到这里的文件
/usr/libexec
: 不太被一般使用者管用的执行文件或脚本
/usr/lib<qual>
: 与/lib功能相同,被链接了进来
/usr/src
: 通常用来放置源码,kernel源码建议放到/usr/src/linux目录下
- 必须存在:
-
/var
的意义与内容:
/var/cache
: 应用程序运行过程中产生的缓存
/var/lib
: 程序执行过程中需要用到的数据文件,不同软件均有各自子目录,如/var/lib/mysql
/var/lock
: 进程的资源锁,目前已挪到/run/lock/目录中了!
/var/log
: 非常重要!登录文件放置的目录!重要文件如:/var/log/messages,/var/log/wtmp记录登入这信息等
/var/mail
: 放置个人电子信箱的目录,与/var/spool/mail互为链接文件
/var/spool
: 通常放一些队列数据,被使用后通常会被删除 -
Centos7与之前版本不同:(设置链接,指向/usr和/run)
/bin
->/usr/bin
/sbin
->/usr/bin
/lib
->/usr/lib
/lib64
->/usr/lib64
/var/lock
->/run/lock
/var/run
->/run