linux文件和目录(二)

rm命令

rm 删除文件,删除时会提示是否删除。默认会附带选项-i。使用/usr/bin/rm就不会有提示。
rm -f 强制删除没有任何提示,包括错误信息也不提示。
rm -r 删除目录
rm -v 删除时可以看到删除的过程

语法
rm -rfv [目录]

环境变量PATH

如果命令在$PATH定义的路径下,可以在任何路径执行。
临时在PATH下添加路径:PATH= PATH下添加路径:PATH=PATH下添加路径:PATH=PATH:目录
永久在$PATH下添加路径:vi /etc/profile
或
echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
source /etc/profile

cp命令(拷贝)

cp 复制源文件至目标文件,默认附带-i选项,提示是否覆盖目标文件。
cp -r 复制源目录至目标目录
约定:凡是目录尾部都加上/
当目标目录存在,源目录会复制到目标目录下做为他的子目录

[root@centos ~]# cp /etc/passwd /root/1.txt 
[root@centos ~]# cp /etc/passwd /root/1.txt  若1.txt有你内容会提示你是否覆盖
cp: overwrite ‘/root/1.txt’? y

mv命令

mv 把源文件移动至目标位置(默认附加-i选择)
如果目标是一个目录,将直接移动至这个目录下
如果目标是一个文件且不存在,将被视为移动并改名。
如果目标是一个文件且存在,将提示覆盖文件(直接使用/usr/bin/rm 命令将不提示覆盖)。
如果源是一个目录,目标目录存在将会把源目标移动至目标目录之下。
如果源是一个目录,目标目录不存在被视为移动并改名。

文档查看cat more less head tail

cat命令

cat 文件 查看文件内容
tac 文件 倒序查看文件内容
cat -A 显示所有字符,包括换行,结束。等隐藏符号。
cat -n 显示行号

more命令

more 文件 分屏显示文件内容。
显示时按“空格” 向下翻页,看完全部自动退出
显示时按“ctrl+b"向向上翻页

less命令

less 命令 分屏显示文件内容。看完后不自动退出。按q键退出。
显示时按上下箭头一行一行的查看。
和more的翻页方式相同。
向下查找功能“/”: /查找内容 #会将查找内容高亮。
查找下一个相同内容 按字母“n”键。查找上一个相同内容shift+n
向上查找功能“?”: ?查找内容 #会将查找内容高亮。
查找上一个相同内容 按字母“n”键。查找下一个相同内容shift+n
shift+g 定位至文件未尾
按一下g 定位至文件开头

head&tail

head 显示文件开头10行内容
head -n 显示文件开头n行内容
tail 显示文件倒数10行内容
tail -n 显示文件未尾n行内容
tail -f 动态显示文件未尾10行内容

chomd命令

用ls -l +文件命令列出每个位置是什么

[root@linux1 ~]# touch 1.txt 创建一个文件
[root@linux1 ~]# ls -l 1.txt
总用量 20
-rw-r--r--. 1 root root     0 8月  29 11:26 1.txt
  • 第一位开头是文件类型,后面九位都是权限位
  • 权限位后面有一个(.)受至于selinux,关闭selinux在创建文件目录就没有(.)
  • 在九位权限位。前三位便是所有者权限拿上面1.txt文件(rw-)中间三位是所属组权限(r–)最后三位是其他用户权限(r–)

解释rwx

r 可读 用数字表示4

w可写 用数字表示2

x 可执行 数字表示1

  • 权限可以用数字表示,比如777 所有者权限(rwx)所属组(rwx)其他用户(rwx)都是可以读写执行
  • 怎么得到777就是把三个字母用数字表示来相加

更改权限命令chmod

  • 语法chmod 777 +文件或者目录名字
[root@linux1 ~]# chmod 777 1.txt 
[root@linux1 ~]# ls -l 1.txt 
-rwxrwxrwx. 1 root root 0 8月  29 11:26 1.txt

chmod -R 操作只对目录或文件生效。需要目录以及子文件全部生效就需要加上-R

[root@linux1 ~]# mkdir 123
[root@linux1 ~]# touch 123/1.txt
[root@linux1 ~]# touch 123/2.txt
[root@linux1 ~]# ls -l
总用量 20
drwxr-xr-x. 2 root root    32 8月  29 11:44 123
[root@linux1 ~]# ls -l 123/
总用量 0
-rw-r--r--. 1 root root 0 8月  29 11:43 1.txt
-rw-r--r--. 1 root root 0 8月  29 11:44 2.txt

[root@linux1 ~]# chmod -R 777 123/
[root@linux1 ~]# ls -l
总用量 20
drwxrwxrwx. 2 root root    32 8月  29 11:44 123
[root@linux1 ~]# ls -l 123/
总用量 0
-rwxrwxrwx. 1 root root 0 8月  29 11:43 1.txt
-rwxrwxrwx. 1 root root 0 8月  29 11:44 2.txt

chown命令更改所有者和所属组

  • 用法chown 所有者:所属组 文件或者目录
  • 修改1.txt文件的所有者 也支持同时更改所有者和所属组
[root@linux1 ~]# useradd centos 创建一个用户
[root@linux1 ~]# ls -l 1.txt 
-rwxrwxrwx. 1 root root 0 8月  29 11:26 1.txt 所有者和所属组都属于root

[root@linux1 ~]# chown centos:root 1.txt  更改所有者
[root@linux1 ~]# ls -l 1.txt 
-rwxrwxrwx. 1 centos root 0 8月  29 11:26 1.txt 更改成功

[root@linux1 ~]# chown centos:centos 1.txt 更改所属组
[root@linux1 ~]# ls -l 1.txt 
-rwxrwxrwx. 1 centos centos 0 8月  29 11:26 1.txt
  • chonw -R同时可以更改目录与子目录或文件的所有者所属组
[root@linux1 ~]# ls -l
总用量 20
drwxrwxrwx. 2 root   root      32 8月  29 11:44 123

[root@linux1 ~]# ls -l 123/
总用量 0
-rwxrwxrwx. 1 root root 0 8月  29 11:43 1.txt
-rwxrwxrwx. 1 root root 0 8月  29 11:44 2.txt
更改所有者和所属组
[root@linux1 ~]# ls -l
总用量 20
drwxrwxrwx. 2 centos centos    32 8月  29 11:44 123

[root@linux1 ~]# ls -l 123/
总用量 0
-rwxrwxrwx. 1 root root 0 8月  29 11:43 1.txt
-rwxrwxrwx. 1 root root 0 8月  29 11:44 2.txt

umask命令

  • linux创建目录和文件的默认权限值是怎么来的?运行下umask
[root@linux1 ~]# umask
0022
  • 目录最高权限是777
  • 文件最高权限是666
  • 默认值是怎么由来
当前用umask查看的出值为0022
目录(最高权限为777) 777-022=755 所以创建目录默认值为755
文件(最高权限为666) 666-022=644 所以创建文件默认值为644
  • 当然也可以更改umask值
[root@linux1 ~]# umask 0002
[root@linux1 ~]# umask
0002
这时候我们创建的目录默认值为775,文件为664
  • 这个规律逻辑不一定是准确的
  • 假如把umask设置0003,按之前文件算法666-003=663,实际测试下
[root@linux1 ~]# umask 0003
[root@linux1 ~]# touch 3.txt
[root@linux1 ~]# ls -l 3.txt 
-rw-rw-r--. 1 root root 0 8月  29 12:07 3.txt
  • 之前算法是有漏洞
  • 正确算法
文件666(rw-rw-rw-)-003(-------wx)=rw-rw-r-也就是664
目录777(rwxrwxrwx)-003(rwxrwxr--)=rwxrwxr--也就是774
 
原文地址:https://www.cnblogs.com/yantou/p/13409368.html