Maison  >  Article  >  Opération et maintenance  >  Introduction à la gestion de fichiers et de répertoires Linux (avec code)

Introduction à la gestion de fichiers et de répertoires Linux (avec code)

不言
不言avant
2019-03-12 17:10:393375parcourir

Le contenu de cet article est une introduction à la gestion des fichiers et des répertoires Linux (avec code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. . a aidé.

Commandes de base

Commandes de base

Commande pwd
Fonction : Afficher le nom du répertoire de travail actuel
Option : -p Afficher le lien Le chemin réel de la

commande cd
Fonction : Changer le répertoire de travail actuel
Couramment utilisé :

cd Passer au répertoire racine cd - Revenir au répertoire de travail précédent cd.. Changer de répertoire de travail Accédez au répertoire de niveau supérieur du répertoire actuel cd /usr/local et basculez le répertoire de travail vers /usr/local

commande ls
Fonction : Afficher les informations sur le répertoire et le fichier
Options communes :

-a Afficher tous les fichiers, y compris les fichiers cachés commençant par. -h Informations sur la capacité d'affichage humanisé -l Afficher les informations détaillées du document au format long -u Afficher la dernière fois que le fichier ou le répertoire a été consulté. a été consulté -t Trier par heure de modification, ls par défaut Trier par nom de fichier -R Afficher récursivement les sous-répertoires

commande tactile
Fonction : créer des fichiers ou modifier l'heure du fichier
Par exemple : $ touch hello.txt
Si le fichier hello.txt n'existe pas, créez ensuite le fichier, et s'il existe, modifiez toutes les heures dans hello.txt à l'heure actuelle du système.

Commande mkdir
Fonction : Créer un répertoire
Option : -p Créer un répertoire multi-niveaux
Par exemple : $ mkdir -p /tmp/data/mysql
Si le Répertoire /tmp/data S'il n'existe pas, le répertoire /data sera automatiquement créé puis le répertoire mysql sera créé.

Commande cp
Fonction : Copier des fichiers ou des répertoires
Options :

-r récursivement, copier les sous-fichiers et sous-répertoires (doit être ajouté lors de la copie de répertoires) -a conserver la source lors de la copie Tous les attributs du document

Commande rm
Fonction : supprimer des fichiers ou des répertoires
Options :

-f Aucune invite, forcer la suppression -i Avant la suppression, demander s'il faut supprimer -r Recursive Supprimer, supprimer un répertoire et tout le contenu du répertoire

Attention : rm -rf *

commande mv
Fonction : déplacer ou renommer des fichiers ou des répertoires
Par exemple :

Renommer le fichier $ mv hello.txt hello.doc Déplacer le fichier vers le répertoire spécifié $ mv hello.txt /usr/local/src Déplacer le fichier vers le répertoire spécifié et renommer it $ mv hello.txt /usr/local/src/ hello.doc

du command
Fonction : Calculer la taille (capacité) d'un fichier ou d'un répertoire
Options :

-h Affichage humanisé des informations de capacité-a Afficher tous les répertoires et fichiers Informations de capacité -s affiche uniquement la capacité totale

Commande Afficher le contenu du fichier

Commande cat
Fonction : Afficher le contenu du fichier
Option :

-b Afficher le numéro de ligne, les lignes vides n'affichent pas les numéros de ligne -n ​​affiche les numéros de ligne, y compris les lignes vides

Exemple :

[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

commande tac
Fonction : Afficher le contenu du fichier dans l'ordre inverse (à l'opposé de cat)

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

one:hello world

commande head
Fonction : Afficher le contenu de l'en-tête du fichier, les 10 premières lignes sont affichées par défaut.
Options :

-c nK Afficher le contenu du premier nKB du fichier -n Afficher le contenu des n premières lignes du fichier

Exemple : head -5 /etc /passwd Afficher le contenu du fichier /etc/passwd 5 lignes de contenu.

commande tail
Fonction : Afficher le contenu à la fin du fichier Les 10 dernières lignes sont affichées par défaut.
Options :

-c nK Afficher le contenu du premier nKB du fichier -n Afficher le contenu des n premières lignes du fichier

Exemple : tail -5 /etc /passwd Affiche le fichier /etc/passwd après 5 lignes de contenu.

moins de commande
Fonction : afficher le contenu du fichier dans les pages
Instructions : appuyez sur la barre d'espace pour afficher la page suivante, la touche q pour quitter la visualisation, ctrl b pour page précédente, ctrl f pour page suivante , g pour passer à la première ligne, G passe à la dernière ligne.
Exemple : less /var/log/jenkins/jenkins.log

commande more
Fonction : afficher le contenu du fichier dans les pages
Instructions : appuyez sur la barre d'espace pour afficher la page suivante, et la touche q pour quitter la visualisation, ctrl b pour page précédente, ctrl f pour page suivante
Exemple : `more /var/log/jenkins/jenkins.log
`

commande wc
Fonction : Afficher les lignes de fichier, les statistiques de mots et d'octets
Options :

-c Afficher les statistiques d'octets de fichier -l Afficher les statistiques de lignes de fichier -w Afficher les statistiques de mots de fichier

Exemple :

[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

Gestion des autorisations

Les autorisations des fichiers sous Linux incluent généralement trois types de contrôle : lecture, écriture et exécutable, qui peuvent être représentés par des lettres ou des chiffres.

Les lettres sont représentées par r, w et x. Les nombres sont représentés par 4, 2, 1

C'est-à-dire r=4, w=2, x=1.
Nous pouvons utiliser la commande ls -l pour afficher les autorisations d'un fichier ou d'un répertoire.

[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

Le premier caractère de la première colonne représente le type de fichier, et les 9 caractères suivants sont des autorisations. Certains des derniers caractères de la première colonne sont un point, et d'autres ne le sont pas. Ce fichier est restreint par Selinux.
Prenons l'exemple drwxr-xr-x ci-dessus :

Le premier caractère est la lettre d, indiquant que le type de fichier est un répertoire. Les plus courants sont : la lettre l représente un fichier lien. , et la lettre b ou c représente le périphérique, la lettre s représente le fichier socket, etc. Les deuxième à neuvième caractères représentent les autorisations. Les trois groupes sont les autorisations du propriétaire (a), les autorisations du groupe (g) et les autorisations des autres utilisateurs (o). Les autorisations de ce fichier sont en lecture, en écriture et exécutable pour le propriétaire, en lecture, exécutable et non en écriture pour le groupe auquel il appartient, et exécutable, en lecture et en écriture pour les autres utilisateurs. Le dernier caractère est un point, indiquant qu'il est restreint par 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             #删除源文件后依旧可用

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer