用户和组
linux系统行,创建用户的时候,默认情况会给我们创建一个用户组(名称与用户名称相同)
文件
在linux系统下面,文件类型(常见三种类型)
* 文件:_
* 目录(类似win7下的文件夹):d
* 链接(类似win7下的快捷方式):l
* 创建连接 $ ln
* 软链接 soft link
* 硬链接 hard link
区别:删除链接时是否删除源文件
e.g. 创建一个软链接
$ ln -s file/dir linkName
创建一个硬链接,相当于拷贝一个文件
* 使用场景:保证一致性
文件搜索
* find
find ~/ -name file
find ~/ -name file\*
文件权限:
* 可读 r
* 可写 w
* 可执行(脚本,比如shell脚本) x
* 特殊字符 - 表示没有任何权限
* 权限的数字表示方法
* 二进制数字之和的方式:
r = 4,w = 2, x = 1
文件的归属
* 拥有者 u
* 属于组 g
* 其他人 o
为什么是三组?
因为一个文件对于用户来说,三个部分
* 拥有者
* 所属组
* 其他人
第一部分:
-rw-rw-r--是个字符,代表不容的意义
第一字符:表示文件的类型
后面的九个字符分为三组,不表示此文件针对不同用户的权限关系
第二部分:
* 第一个字符串:文件的拥有者
* 第二个字符串:文件所属组
* man 查询语句作用
*对命令行来说,有自动补全功能,Tab
如何设置文件对不同用户的权限
需要使用root用户
# chmod命令
change mode
e.g:需求:对于同组用户来说,仅仅可读,对于其他用户来说,既不可读,也不可写
① 字母形式修改
# chmod g-w hive-select-log.sql
# chmod o-r hive-select-log.sql
②数值形式修改
# chmod 664 hive-select-log.sql
拷贝文件:
$ cp hive-select-log.sql /home
原文件 目标
改变文件的拥有者和所属组
命令
# chown
# chgrp
如果针对目录
# chown -R
案例:将/home/hive-select-log.sql 拥有者和所属设置为senior用户和senior组可使用一条命令操作完成:
# chown senior: senior /home/hive-select-log.sql
如果针对一个目录设置权限呢?目录中有很多文件,需要同样的权限设置
-R, --recursive 递归
change files and directories recursively
# chmod -R 664 /opt/softwares
文件创建
* 使用touch命令
$ touch test.data
* 使用vi/vim方式
$ vi test.data
* 对文件的内容进行追加
$ echo '001' >>text.txt
* 编辑文件内容 vi/vim
快捷键(在vi查看模式下)
* dd:删除光标所在的行的内容
* ZZ:保存文件内容
* x:表示将光标处的字符删除
* o:在光标的下一行插入数据
查看文件内容的常见方式
* cat:查看文件的全部内容,文件内容比较少时用
* more:翻页查看,文件内容比较大时用
* tail:看文件末尾内容,通常与-f参数连用,适合于查看服务实时动态日志信息
e.g. tail -f abcd.log
tail -200f yyy.log
* head:文件开头,文件格式,查看内容模板样式
文件的拷贝,移动,重命名
* 拷贝:cp source dest
其中dest可以是文件,也可以是一个目录
(1)拷贝一个文件到目录中
$ cp test.txt test-dir
(2)拷贝一个文件的内容到文件中(新文件)
$ cp test.txt cp-tsts.txt
(3)拷贝一个目录
$ cp -r test-dir test-dir2
* 移动或重命名:mv src dest
* 重命名 src和dest在同一目录下
$ mv test-dir/ sub-dir
$ mv test.txt/ test.log
* 移动 src和dest不同一目录下,或者
$ mv test-dir2/ sub-dir/test-dir
文件的删除
$ emdie test-dir
rmdir 注意删除的目录必须是空目录
$ rm -rf src
使用的时候:src最好是绝对路径,确定好以后再删除
创建目录
* mkdir test
* 创建多级目录
$ mkdir -p ~/data/dfs/tmp