ホームページ  >  記事  >  運用・保守  >  Linux ファイルおよびディレクトリ管理の概要 (コード付き)

Linux ファイルおよびディレクトリ管理の概要 (コード付き)

不言
不言転載
2019-03-12 17:10:393374ブラウズ

この記事では、Linux のファイルとディレクトリの管理 (コード付き) を紹介します。これには一定の参考価値があります。困っている友人は参考にしてください。お役に立てば幸いです。助けられました。 。

基本コマンド

基本コマンド

pwdコマンド
機能: 現在の作業ディレクトリの名前を表示します
オプション: -pリンクの表示 実際のパス

cd コマンド
機能: 現在の作業ディレクトリを切り替える
一般的に使用される:

cd ルート ディレクトリに切り替える cd - 前の作業ディレクトリに戻る cd .. 作業ディレクトリを切り替えます。 現在のディレクトリの上位ディレクトリに移動します。 cd /usr/local 作業ディレクトリを /usr/local に切り替えます。

#ls コマンド

機能: ディレクトリとファイルの情報を表示します
共通オプション:

-a で始まる隠しファイルを含むすべてのファイルを表示します -h 人間化された表示容量情報 -l 文書の詳細情報を長い形式で表示します -u ファイルまたはディレクトリが最後に保存された時間を表示しますaccessed -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 削除前にプロンプ​​トを表示しますdelete-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 容量情報の人間化された表示 -a すべてのディレクトリとファイルを表示します 容量情報 -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 は、/etc/passwd ファイルの内容を 5 行表示します。

tail コマンド

機能: ファイルの末尾の内容を表示します。デフォルトでは、最後の 10 行が表示されます。
オプション:

-c nK は、ファイルの最初の nKB の内容を表示します。 -n は、ファイルの最初の n 行の内容を表示します。

例: tail -5 /etc /passwd は、/etc/passwd ファイルの内容を 5 行表示します。

less コマンド

機能: ファイルのコンテンツをページ単位で表示
手順: スペースバーを押して次のページを表示し、q キーを押して表示を終了し、ctrl b でページを上に、ctrl f でページを下に移動します。 , g で最初の行にジャンプし、G で最後の行にジャンプします。
例:less /var/log/jenkins/jenkins.log

more コマンド

機能:ファイルの内容をページ単位で表示
手順:スペースバーを押して次のページを表示します。 q キーでビューを終了し、ctrl b でページアップ、ctrl f でページダウン
例: `more /var/log/jenkins/jenkins.log
`

wc コマンド

機能: ファイル行、ワードおよびバイトの統計を表示します。
オプション:

-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 におけるファイルのアクセス許可には、通常、読み取り、書き込み、実行可能という 3 種類の制御が含まれており、文字または数字で表すことができます。

文字は 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 はソケット ファイルなどを表します。 2 文字目から 9 文字目は権限を表します。 3 つのグループは、所有者 (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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。