hostname xxx #临时修改
hostnamectl xxx #永久生效
hostname #查看hostname
uname -a # Linux 一些信息
目录 #
pwd #当前目录的完整路径
cd xx # 切换的xx 目录 (相对路径和绝对路径)
- ls
ls [-aAdfFhilnrRSt] 文件名或目录名称..
ls [--color={never,auto,always}] 文件名或目录名称..
ls [--full-time] 文件名或目录名称..
-a all, 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-A 同-a ,但不列出 “.” (目前目录) 及 “…” (父目录)
-l 以长格式显示目录下的内容列表,包括文件的权限、链接数、所有者名称和组所有者、文件大小、最后修改日期时间和文件/目录名称
-r reverse,将排序结果反向输出,例如:原本文件名由小到大,反向则为由大到小
-R –recursive,连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来
-S sort by file size。根据文件大小排序,而不是文件名
-t sort by modification time,以文件修改时间排序(从最新开始排)
-d 仅列出目录本身,而不是列出目录内的文件数据(常用)
-f 直接列出结果,而不进行排序 (ls 默认以文件名排序)
-F 根据文件、目录等信息,给予附加数据结构,例如:*:代表可可执行文件; /:代表目录; =:代表 socket 文件; |:代表 FIFO 文件
-g 像-l,但是不列出所有者
-G, no-group, 不列出任何有关于组的信息
–author 打印出每一个文件的作者
-n 类似-l,用数字UID和GID代替名称
-h 将文件大小以人类较易读的方式(例如 GB KB 等等)列
-c 输出文件的ctime(文件状态最后更改的时间),并根据ctime排序
-C 由上至下的列出项目
--full-time 显示完整时间格式
--time 输出 access 时间或改变权限属性时间 (ctime)而非内容变更时间 (modification time)
--color=never 不要依据文件特性给予颜色显示
--color=always 显示颜色
- cat
cat #命令用于连接和打印文件内容,支持显示行号、非空行号、特殊字符等。常用参数包括:
-n:显示行号,会在输出的每一行前加上行号。
-b:显示行号,但只对非空行进行编号。
-s:压缩连续的空行,只显示一个空行。
-E:在每一行的末尾显示$符号。
-T:将Tab字符显示为^I。
-v:显示一些非打印字符。
- cat 反向输出
tac
组与用户 #
- 相关文件
# 用户配置文件
/etc/passwd
#密码信息配置文件
/etc/shadow
# 组信息配置文件
/etc/group
# 系统用户组信息
/etc/group
groupname:password:GID:user_list
组名 密码 GID 用户列表
# 用户组密码信息
/etc/gshadow
查询命令 #
# 查询当前登录用户信息
whoami
# 查询指定用户信息
id username
# 查询所有用户信息
cat /etc/passwd
# 查询所有用户组信息
getent group
# 查询用户所属的用户组
groups username
# 查询用户的主用户组
id -g -n username
用户名令 #
- 创建用户
useradd [选项] name
-c 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 指定UID
- 设置密码
passwd [选项] name
-d 清空密码
-l 锁定
-u 解锁
-S 查看锁定状态
- 修改用户属性
usermod [选项] name
- 删除用户账户
userdel name
-r 删除账户并且将用户的宿主目录删除
组的命令 #
- 组的创建
groupadd [选项] groupname
-g 指定GID创建用户组
- 组的删除
groupdel groupname
- 修改GID
groupmod -g GID groupname
- 组添加用户
gpasswd [选项] 用户名 组名
-a 添加用户
-d 删除用户
-M 定义组内用户的列表
权限 #
- Linux系统上对文件的权限有着严格的控制,如果想对某个文件执行某种操作,必须具有对应的权限方可执行成功。
- Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
- Linux下权限的粒度有 拥有者 、群组 、其它组 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
rwx 对于目录和文件的区别
- 目录
r
读取目录内文件列表的权限w
对目录内文件进行新建,删除,重命名等操作的权限x
进入目录的权限
- 文件
r
读取文件内容的权限w
修改文件内容的权限x
执行该文件的权限
快速入门 #
更改文件权限 chmod
chmod [可选项] <mode> <file…>
[可选项]
-c
-f
-v
-R
[mode]
[ugoa...][[+-=][rwxX]...][,...]
[ugoa...]
u 表示该档案的拥有者,
g 表示与该档案的拥有者属于同一个群体(group)者,
o 表示其他以外的人,
a 表示所有(包含上面三者)。
[+-=]
+ 表示增加权限,- 表示取消权限,= 表示唯一设定权限。
[rwxX]
r 表示可读取,
w 表示可写入,
x 表示可执行,
X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
[file...]
文件列表(单个或者多个文件、文件夹)
- 设置所有用户可读取文件 a.conf
chmod ugo+r a.conf
或
chmod a+r a.conf
- 设置 c.sh 只有 拥有者可以读写及执行
chmod u+rwx c.sh
- 设置文件 a.conf 与 b.xml 权限为拥有者与其所属同一个群组 可读写,其它组可读不可写
chmod a+r,ug+w,o-w a.conf b.xml
- 设置当前目录下的所有档案与子目录皆设为任何人可读写
chmod -R a+rw *
数字权限使用格式 #
在这种使用方式中,首先我们需要了解数字如何表示权限。 首先,我们规定 数字 4 、2 和 1表示读、写、执行权限(具体原因可见下节权限详解内容),即 r=4,w=2,x=1 。此时其他的权限组合也可以用其他的八进制数字表示出来,
如:
rwx = 4 + 2 + 1 = 7
rw = 4 + 2 = 6
rx = 4 +1 = 5
即
若要同时设置 rwx (可读写运行) 权限则将该权限位 设置 为 4 + 2 + 1 = 7
若要同时设置 rw- (可读写不可运行)权限则将该权限位 设置 为 4 + 2 = 6
若要同时设置 r-x (可读可运行不可写)权限则将该权限位 设置 为 4 +1 = 5
上面我们提到,每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。即我们可以用用三个8进制数字分别表示 拥有者 、群组 、其它组( u、 g 、o)的权限详情,并用chmod直接加三个8进制数字的方式直接改变文件权限。语法格式为 :
chmod <abc> file…
其中 a,b,c各为一个数字,分别代表User、Group、及Other的权限。 相当于简化版的 chmod u=权限,g=权限,o=权限 file… 而此处的权限将用8进制的数字来表示User、Group、及Other的读、写、执行权限
- 设置所有人可以读写及执行
chmod 777 file (等价于 chmod u=rwx,g=rwx,o=rwx file 或 chmod a=rwx file)
- 设置拥有者可读写,其他人不可读写执行
chmod 600 file (等价于 chmod u=rw,g=---,o=--- file 或 chmod u=rw,go-rwx file )
更改文件拥有者 #
linux/Unix 是多人多工作业系统,每个的文件都有拥有者(所有者),如果我们想变更文件的拥有者(利用 chown 将文件拥有者加以改变),一般只有系统管理员(root)拥有此操作权限,而普通用户则没有权限将自己或者别人的文件的拥有者设置为别人。
chown [可选项] user[:group] file…
使用权限:root
说明:
[可选项] : 同上文chmod user : 新的文件拥有者的使用者 group : 新的文件拥有者的使用者群体(group)
- 设置文件 d.key、e.scrt的拥有者设为 users 群体的 tom
chown tom:users file d.key e.scrt
- 设置当前目录下与子目录下的所有文件的拥有者为 users 群体的 James
chown -R James:users *
ACL #
ACL的全称是 Access Control List (访问控制列表) ,一个针对文件/目录的访问控制列表。它在UGO权限管理的基础上为文件系统提供一个额外的、更灵活的权限管理机制。它被设计为UNIX文件权限管理的一个补充。ACL允许你给任何的用户或用户组设置任何文件/目录的访问权限。
setfacl
setfacl [-bkRd] [{-m|-x} acl参数] 文件/目录名
-m :配置后面的 acl 参数给文件/目录使用,不可与 -x 合用;
-x :删除后续的 acl 参数,不可与 -m 合用;
-b :移除所有的 ACL 配置参数;
-k :移除默认的 ACL 参数;
-R :递归配置 acl;
-d :配置“默认 acl 参数”,只对目录有效,在该目录新建的数据会引用此默认值;
getfacl
getfacl 文件/目录名
为 tester 用户赋予读写 aclfile 文件的权限:
setfacl -m u:tester:rw aclfile
getfacl aclfile