1.chown 改变文件属主
只有管理员能执行该命令
chown USERNAME file,….
chown USERNAME:GROUPNAME file,…
选项
R
: 修改目录及其内部文件的属主--reference=/path/to/file
: 修改属主,属组和指定文件一样
例子
/tmp/a123文件:
[root@localhost tmp]# ls -l /tmp/a123
-rw-r--r--. 1 root root 0 Feb 15 04:24 /tmp/a123
修改属主为hadoop:
[root@localhost tmp]# chown hadoop /tmp/a123
[root@localhost tmp]# ls -l /tmp/a123
-rw-r--r--. 1 hadoop root 0 Feb 15 04:24 /tmp/a123
修改属组为mygroup:
[root@localhost tmp]# chown :mygroup /tmp/a123
[root@localhost tmp]# ls -l /tmp/a123
-rw-r--r--. 1 hadoop mygroup 0 Feb 15 04:24 /tmp/a123
修改属主为root,属组为root:
[root@localhost tmp]# chown root:root /tmp/a123
[root@localhost tmp]# ls -l /tmp/a123
-rw-r--r--. 1 root root 0 Feb 15 04:24 /tmp/a123
修改/tmp/a123的属主,属组和/home/hadoop一样:
[root@localhost home]# chown --reference=/home/hadoop /tmp/a123
[root@localhost home]# ls -l /tmp/a123
-rw-r--r--. 1 hadoop hadoop 0 Feb 15 04:24 /tmp/a123
2.chgrp 修改文件属组
chgrp GROUPNAME file,….
选项
R
: 修改目录及其内部文件的属组--reference=/path/to/file
: 修改属组和指定文件一样
3.chmod 修改文件权限
修改三类用户的权限:
chmod MODE file,…
修改某类用户或某些类用户的权限:
u,g,o,a
user,group,other,all
chmod 用户类别=MODE file,…
修改某类用户某些位权限:
u,u,o,a
chmod 用户类别(+/-)MODE file,…
选项
-R
: 修改目录及其内部文件的权限--reference=/path/to/file
: 修改权限和指定文件一样
例子
修改/tmp/a123权限为750:
[root@localhost home]# chmod 750 /tmp/a123
[root@localhost home]# ls -l /tmp/a123
-rwxr-x---. 1 hadoop hadoop 0 Feb 15 04:24 /tmp/a123
修改属组权限为rwx:
[root@localhost home]# chmod g=rwx /tmp/a123
[root@localhost home]# !ls
ls -l /tmp/a123
-rwxrwx---. 1 hadoop hadoop 0 Feb 15 04:24 /tmp/a123
修改属组权限为r-x:
[root@localhost home]# chmod g=rx /tmp/a123
[root@localhost home]# !ls
ls -l /tmp/a123
-rwxr-----. 1 hadoop hadoop 0 Feb 15 04:24 /tmp/a123
属主删除执行权限:
[root@localhost home]# chmod u-x /tmp/a123
[root@localhost home]# !ls
ls -l /tmp/a123
-rw-r-x---. 1 hadoop hadoop 0 Feb 15 04:24 /tmp/a123
属主添加执行权限,属组删除执行权限:
[root@localhost home]# chmod u+x,g-x /tmp/a123
[root@localhost home]# !ls
ls -l /tmp/a123
-rwxr-----. 1 hadoop hadoop 0 Feb 15 04:24 /tmp/a123
属组和其他人加入执行权限:
[root@localhost home]# chmod go+x /tmp/a123
[root@localhost home]# !ls
ls -l /tmp/a123
-rwxr-x--x. 1 hadoop hadoop 0 Feb 15 04:24 /tmp/a123
删除所有人的执行权限:
[root@localhost home]# chmod a-x /tmp/a123
[root@localhost home]# !ls
ls -l /tmp/a123
-rw-r-----. 1 hadoop hadoop 0 Feb 15 04:24 /tmp/a123
4.umask 遮罩码
目录: 777-umask
文件: 666-umask
例子
root用户umask
[root@localhost ~]# umask
0022
[root@localhost ~]# touch test
[root@localhost ~]# mkdir test_dir
[root@localhost ~]# ls -ld test test_dir
-rw-r--r--. 1 root root 0 Feb 17 17:29 test
drwxr-xr-x. 2 root root 4096 Feb 17 17:29 test_dir
发现root用户:
文件rw-r–r–:644 (666-022=644)
文件夹rwxr-xr-x: 755(777-022=755)
hive用户umask:
[root@localhost ~]# su - hive
[hive@localhost ~]$ umask
0002
[hive@localhost ~]$ touch test
[hive@localhost ~]$ mkdir test_dir
[hive@localhost ~]$ ls -ld test test_dir/
-rw-rw-r--. 1 hive hive 0 Feb 17 17:36 test
drwxrwxr-x. 2 hive hive 4096 Feb 17 17:36 test_dir/
发现hive用户
5.shell类型:
登录式shell:
正常通过某终端登录
su - USERNAME
su -l USERNAME
非登录式shell:
su USERNAME
图像终端下打开命令窗口
自动执行的shell脚本
bash的配置文件
全局配置
/etc/profile, /etc/profile.d/*.sh, /etc/bashrc
个人配置
~/.bash_profile, ~/.bashrc
profile类的文件:
设定环境变量
运行命令或脚本
bashrc类的文件:
设置本地变量
定义命令别名
登录式shell如何读取配置文件
/etc/profile
/etc/profile.d/*.sh
~/.bash_profile
~/.bashrc
/etc/bashrc
非登录式shell如何读取配置文件
~/.bashrc
/etc/bashrc
/etc/profile.d/*.sh
6.输入 输出
INPUT设备:
OUTPT设备
系统设定:
默认输出设备: 标准输出, STDOUT, 代码为 1,使用>或>>
默认输入设备: 标准输入, STDIN, 代码为0,使用>或<<
标准错误输出: STDERR, 代码为2,使用2>或2>>
&>: 重定向标准输出或错误输出至同一个文件
&>>
<: 输入重定向
<<: 指明文档结束符 EOF或END
<< delimeter
Here document content
delimeter
它的作用就是将两个 delimiter 之间的内容(Here Document Content 部分) 传递给cmd 作为输入参数。
标准输入: 键盘
标准输出和错误输出: 显示器
由于root用户修改配置文件时 用>容易覆盖源文件 可以使用shell内置命令set来关闭已有文件的重定向覆盖:
set -C: 禁止对已经存在的文件使用覆盖重定向
强制覆盖输出,则使用>|
set+C:关闭上述功能