Linux 파일 및 디렉터리 관리 소개(코드 포함)

不言
풀어 주다: 2019-03-12 17:11:54
앞으로
3381명이 탐색했습니다.

이 기사는 Linux 파일 및 디렉토리 관리(코드 포함)에 대한 소개를 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

기본 명령

기본 명령

pwd 명령
기능: 현재 작업 디렉터리 이름 표시
옵션: -p 링크의 실제 경로 표시

cd 명령
기능: 현재 작업 디렉터리 전환
일반적으로 사용되는 방법:

cd 루트 디렉터리로 전환 cd - 이전 작업 디렉터리로 돌아가기 cd .. 작업 디렉터리를 현재 디렉터리보다 한 수준 위의 디렉터리로 전환 cd /usr/local 작업 디렉터리를 /usr/local로 전환

ls 명령
기능: 디렉터리 및 파일 정보 표시
일반 옵션:

-a 다음으로 시작하는 숨겨진 파일을 포함한 모든 파일을 표시합니다. -h 인간화된 표시 용량 정보 -l 문서의 자세한 정보를 긴 형식으로 표시합니다. 파일 또는 디렉터리가 마지막으로 액세스된 시간 -t 수정 시간별 정렬을 사용하면 ls는 기본적으로 파일 이름별로 정렬합니다. -R 하위 디렉터리를 반복적으로 표시

touch 명령
기능: 파일 생성 또는 파일 시간 수정
예: $ touch hello. txt
hello.txt 파일이 없으면 파일을 생성하고, 존재한다면 hello.txt의 모든 시간을 현재 시스템 시간으로 수정합니다.

mkdir 명령
기능: 디렉토리 생성
옵션: -p 다중 레벨 디렉토리 생성
예: $ mkdir -p /tmp/data/mysql
/tmp/data 디렉토리가 없으면 /data 디렉토리가 자동으로 생성된 후 mysql 디렉토리가 생성됩니다.

cp 명령
기능: 파일 또는 디렉터리 복사
옵션:

-r 반복적으로 하위 파일 및 하위 디렉터리 복사(디렉터리 복사 시 추가해야 함) -a 복사 시 소스 문서의 모든 속성 유지

rm 명령
기능: 파일 또는 디렉터리 삭제
옵션:

-f 프롬프트 없음, 강제 삭제 -i 삭제하기 전에 삭제할지 묻는 메시지 표시 -r 재귀 삭제, 디렉터리 및 디렉터리 아래의 모든 내용 삭제

주의: rm -rf *

mv 명령
기능: 파일 또는 디렉토리 이동 또는 이름 바꾸기
예:

파일 이름 바꾸기 $ mv hello.txt hello.doc 파일을 지정된 디렉토리로 이동 $ mv hello.txt /usr/local/src 파일 이동 $ mv hello.txt /usr/local/src/hello.doc

du 명령
기능: 파일 또는 디렉토리의 크기(용량)를 계산합니다.
옵션:

-h 인간화 디스플레이 용량 information-a 모든 디렉터리 및 파일의 용량 보기 Information -s 총 용량만 표시

파일 내용 보기 명령

cat 명령
기능: 파일 내용 보기
옵션:

-b 줄 번호 표시, 빈 줄 표시 안 함 줄 번호 표시 -n 빈 줄을 포함하여 줄 번호를 표시합니다

예:

[root@moli_linux1 ~]$ cat -b hello.txt 
     1    one:hello world

     2    two:hello world
[root@moli_linux1 ~]$ cat -n hello.txt 
     1    one:hello world
     2    
     3    two:hello world
로그인 후 복사

tac 명령
기능: 파일 내용을 역순으로 봅니다(cat의 반대)

[root@moli_linux1 ~]$ tac  hello.txt 
two:hello world

one:hello world
로그인 후 복사

head 명령
기능: 파일 헤더 내용을 봅니다. 처음 10줄은 기본적으로 표시됩니다.
옵션:

-c nK 파일의 첫 번째 nKB의 내용을 표시합니다. -n 파일의 처음 n 줄의 내용을 표시합니다.

예: head -5 /etc/passwd /의 처음 5줄을 표시합니다. etc/passwd 파일입니다.

tail 명령
기능: 파일 끝 부분의 내용을 봅니다. 기본적으로 마지막 10줄이 표시됩니다.
옵션:

-c nK 파일의 첫 번째 nKB 내용 표시 -n 파일의 처음 n 줄 내용 표시

예: tail -5 /etc/passwd 마지막 5줄 내용 표시 /etc/passwd 파일의

less command
기능: 페이지의 파일 내용 보기
지침: 다음 페이지를 보려면 스페이스바를 누르고, 보기를 종료하려면 q 키를 누르고, 페이지 위로 이동하려면 ctrl b, 페이지 아래로 이동하려면 ctrl f, 첫 번째 페이지로 이동하려면 g를 누르세요. 라인, G는 마지막 라인으로 이동합니다.
예: less /var/log/jenkins/jenkins.log

more 명령
기능: 페이지의 파일 내용 보기
지침: 다음 페이지를 보려면 스페이스바를 누르고, 보기를 종료하려면 q 키를 누르고, 페이지로 이동하려면 ctrl b를 누르세요. up, ctrl f to page Page down
예: `more /var/log/jenkins/jenkins.log
`

wc command
기능: 파일 행, 단어 및 바이트 통계 표시
옵션:

-c 파일 바이트 표시 통계 -l 파일 행 수 통계 표시 -w 파일 단어 통계 표시

예:

[root@moli_linux1 ~]$ wc hello.txt 
 3  4 33 hello.txt
[root@moli_linux1 ~]$ wc -c hello.txt 
33 hello.txt
[root@moli_linux1 ~]$ wc -l hello.txt 
3 hello.txt
[root@moli_linux1 ~]$ wc -w hello.txt 
4 hello.txt
로그인 후 복사

권한 관리

Linux의 파일 권한에는 일반적으로 읽기, 쓰기, 실행의 세 가지 유형의 제어가 포함되며 문자 또는 문자로 표시할 수 있습니다. 숫자.

문자는 r, w, x로 표현되고 숫자는 4, 2, 1로 표현됩니다

즉, r=4, w=2, x=1입니다.
ls -l 명령을 사용하여 파일이나 디렉터리의 권한을 볼 수 있습니다.

[root@moli_linux1 ~]$ ls -l
总用量 8
drwxr-xr-x. 3 root root   23 6月   6 2018 192.168.229
-rw-------. 1 root root 1538 5月  19 2018 anaconda-ks.cfg
drwxr-xr-x. 3 root root   18 7月  27 2018 git_data
-rw-r--r--  1 root root   33 3月   5 13:37 hello.txt
drwxr-xr-x. 4 root root   33 7月   4 2018 server
drwxr-xr-x  4 root root   68 10月  2 15:48 shell-100
drwxr-xr-x  4 root root   67 11月 16 21:29 test-find
로그인 후 복사

첫 번째 열의 첫 번째 문자는 파일 형식을 나타내며 다음 9자는 첫 번째 열의 마지막 문자 중 일부는 점이고 일부는 파일이 제한되어 있음을 의미합니다. selinux.
위의 drwxr-xr-x를 예로 들어 보겠습니다.

첫 번째 문자는 파일 형식이 디렉터리임을 나타내는 문자 d입니다. 문자 l은 링크 파일을 나타내고 문자 b 또는 c는 다음과 같습니다. 장치를 나타내고 문자 s는 소켓을 나타냅니다. 두 번째부터 아홉 번째 문자는 권한을 나타냅니다. 세 가지 그룹은 소유자(a) 권한, 그룹(g) 권한, 기타 사용자(o) 권한입니다. 이 파일에 대한 권한은 소유자에 대한 읽기, 쓰기 및 실행 가능, 해당 파일이 속한 그룹에 대한 읽기, 실행 및 쓰기 가능, 다른 사용자에 대한 실행, 읽기 및 쓰기 권한입니다. 마지막 문자는 점으로, 이는 selinux에 의해 제한됨을 나타냅니다.

关于权限的表示可看下表:

数字 字母 文件 目录
4 r 查看文件内容 查看目录下的文件与目录名称
2 w 修改文件内容 在目录下增、删、改文件与目录名称
1 x 可执行,一般为程序或者脚本 可用cd命令进入目录

Linux默认权限

文件默认权限

文件默认最大权限为644 (rw-r--r--)一般会给文件644权限

目录默认权限

目录默认最大权限为755(rwxr-xr-x)一般会给目录755权限

chmod命令

作用:修改文件或者目录的权限
格式:chmod [选项] 权限 文件或目录
选项:-R 递归将权限应用于所有的子目录与子文件
其中权限的表示可用数字或者字母,也可以用a(所有人)、u(代表所有者)、g(所属组)、o(其他用户)。
示例:
环境准备,test目录下有3个文件和1个目录test-1,子目录test-1里有文件hello.txt。各个文件目录权限如下:

[root@moli_linux1 test]$ ll -R
.:
总用量 0
-rw-r--r-- 1 root root  0 3月   7 14:43 1.txt
-rw-r--r-- 1 root root  0 3月   7 14:43 2.txt
-rw-r--r-- 1 root root  0 3月   7 14:43 3.txt
drwxr-xr-x 2 root root 23 3月   7 14:44 test-1

./test-1:
总用量 0
-rw-r--r-- 1 root root 0 3月   7 14:44 hello.txt
[root@moli_linux1 test]$ tree
.
├── 1.txt
├── 2.txt
├── 3.txt
└── test-1
    └── hello.txt

1 directory, 4 files
로그인 후 복사

修改1.txt文件的权限为600

$ chmod 600 1.txt 或者 $ chmod u=rwx,g-r,o-r 1.txt
로그인 후 복사

对1.txt文件的所有人权限添加可执行权限

$ chmod a+x 1.txt 或者 $ chmod u+x,g+x,o+x 1.txt
로그인 후 복사

对test目录下的所有文件设置所有人可读可写

$ chmod -R a=rw test
로그인 후 복사

建议:修改权限能用数字就用数字...

chown命令

作用:修改文件或目录的所有者与所属组
格式:chown [选项] [所有者]:[所属组] 文件名/目录名
选项:-R 递归将权限应用于所有子目录与子文件
使用ls -l命令查看文件或目录的时候,第三列和第四列就是文件或目录的所有者与所属组。

[root@moli_linux1 test]$ ls -l 1.txt 
-rwx------ 1 root root 0 3月   7 14:43 1.txt
로그인 후 복사

比如上面1.txt文件的所有者是root用户,所属组是root组。

修改1.txt文件的所有者为mori,所属组为mail

[root@moli_linux1 test]$ chown mori:mail 1.txt 
[root@moli_linux1 test]$ ll 1.txt 
-rwx------ 1 mori mail 0 3月   7 14:43 1.txt
# 所有者与所属组已改变
로그인 후 복사

umask

Linux默认权限控制,也就是说umask的作用是设置用户创建文件或者目录时,这个文件或目录的默认权限。
在Linux终端输入umask时,出现数字0022这个就是默认的umask值。

[root@moli_linux1 test]$ umask
0022
로그인 후 복사

修改umask    
我们可以通过输入命令$ umask 0032修改系统默认的umask值

[root@moli_linux1 test]$ umask 0032
[root@moli_linux1 test]$ umask
0032
로그인 후 복사

umask反掩码计算
当umask掩码是偶数的时候,默认权限=最大权限-umask值

文件最大权限是666,因此创建文件的默认权限是666-022=644目录最大权限是777,因此创建目录的默认权限是777-022=755

当umask掩码是奇数的时候,计算文件的默认权限的时候,要在奇数位加1
如:umask=032

对于文件:666-032=634,然后奇数位+1,634+010=644对于目录:777-032=745,然后奇数位+1,745+010=755

文件系统权限

设置文件系统权限命令chattr

chattr +a(append) 只能追加chattr +i 无敌,不能进行任何操作

查看文件系统权限命令lsattr
示例:

[root@moli_linux1 test]$ ll 2.txt 
-rw-r--r-- 1 root root 0 3月   7 14:43 2.txt

[root@moli_linux1 test]$ chattr +a 2.txt # 添加隐藏权限

[root@moli_linux1 test]$ echo "hello world" > 2.txt # 不允许重定向
-bash: 2.txt: 不允许的操作

[root@moli_linux1 test]$ echo "hello world" >> 2.txt # 允许追加重定向

[root@moli_linux1 test]$ mv 2.txt helloworld.txt # 不允许移动 
mv: 无法将"2.txt" 移动至"helloworld.txt": 不允许的操作

[root@moli_linux1 test]$ rm -f 2.txt # 不允许删除
rm: 无法删除"2.txt": 不允许的操作

[root@moli_linux1 test]$ lsattr 2.txt  #查看隐藏权限
-----a---------- 2.txt

[root@moli_linux1 test]# chattr -a 2.txt # 去除隐藏权限 

[root@moli_linux1 test]$ lsattr 2.txt  # 没有隐藏权限
---------------- 2.txt
[root@moli_linux1 test]$ rm -f 2.txt # 再次删除,成功
로그인 후 복사

链接文件

Linux中链接文件分为软连接和硬链接。软连接可以跨分区,但源文件不可删除。硬链接不可以跨分区,但可以将源文件删除。
创建软硬链接使用命令ln 
创建软连接:ln -s 文件名 链接名
创建硬链接:ln 文件名 链接名

软连接

软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。
因此软链接的创建与使用没有类似硬链接的诸多限制:

软链接有自己的文件属性及权限等;可对不存在的文件或目录创建软链接;软链接可交叉文件系统;即,可跨分区。软链接可对文件或目录创建;创建软链接时,链接计数 i_nlink 不会增加;删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling
 link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

示例:

[root@moli_linux1 ~]$ ln -s /test/hello.txt /tmp/hi.txt        #创建文件软连接
[root@moli_linux1 ~]$ ln -s /test/ /var/test                #创建目录软连接
[root@moli_linux1 ~]$ rm /test/hello.txt;cat /tmp/hi.txt    #删除源文件后,链接无法使用
로그인 후 복사

硬链接

由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:

文件有相同的 inode 及 data block;只能对已存在的文件进行创建;不能交叉文件系统进行硬链接的创建;不能对目录进行创建,只可对文件创建;删除一个硬链接文件并不影响其他有相同 inode 号的文件。

示例:

[root@moli_linux1 ~]$ ln /test/hello.txt /tmp/hi.txt    #创建文件硬链接
[root@moli_linux1 ~]$ rm /test/hello.txt             #删除源文件后依旧可用
로그인 후 복사

위 내용은 Linux 파일 및 디렉터리 관리 소개(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿