Linux のファイルとディレクトリの管理


Linux のディレクトリ構造はツリー構造であり、最上位のディレクトリはルート ディレクトリ / であることがわかっています。

他のディレクトリはマウントすることでツリーに追加でき、アンマウントすることで削除できます。

このチュートリアルを始める前に、絶対パスと相対パスとは何かを知っておく必要があります。

  • 絶対パス:
    パスはルートディレクトリ/から開始して記述されます。例: /usr/share/doc このディレクトリ。

  • 相対パス:
    パスは/で始まらないように記述されます。たとえば、/usr/share/doc から /usr/share/man に移動する場合、次のように記述できます: cd ../manこれは相対パスの書き方です!


ディレクトリを処理するための一般的なコマンド

次に、ディレクトリを処理するためのいくつかの一般的なコマンドを見てみましょう:

  • ls: ディレクトリの一覧表示

  • cd: ディレクトリの切り替え

  • pwd : を表示現在のディレクトリ

  • mkdir:新しいディレクトリの作成

  • rmdir:空のディレクトリを削除

  • cp:ファイルまたはディレクトリをコピー:ファイルまたはディレクトリの削除

  • man cp などの各コマンドの使用法ドキュメントを表示するには、
  • man [command]

    を使用します。

  • ls (リストディレクトリ)

Linux システムでは、おそらく ls コマンドが最も一般的に実行されます。 構文:

[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称
[root@www ~]# ls [--color={never,auto,always}] 目录名称
[root@www ~]# ls [--full-time] 目录名称

オプションとパラメータ:

-a: すべてのファイルが隠しファイル (. で始まるファイル) とともにリストされます (一般的に使用されます)

    -d: ディレクトリ自体のみがリストされますディレクトリ内のファイルデータをリストする代わりに (一般的に使用されます)
  • -l : ファイルの属性や権限などを含む長いデータ文字列をリストします (一般的に使用されます)
  • は、ホームディレクトリ内のすべてのファイルをリストします。リスト(属性や隠しファイルも含む)
  • [root@www ~]# ls -al ~

    cd(ディレクトリ切り替え)

  • cdとはChange Directoryの略で、作業ディレクトリを変更するコマンドです。

文法:

 cd [相对路径或绝对路径]
#使用 mkdir 命令创建w3cschool.cc目录
[root@www ~]# mkdir w3cschool.cc

#使用绝对路径切换到w3cschool.cc目录
[root@www ~]# cd /root/w3cschool.cc/

#使用相对路径切换到w3cschool.cc目录
[root@www ~]# cd ./w3cschool.cc/

# 表示回到自己的家目录,亦即是 /root 这个目录
[root@www w3cschool.cc]# cd ~

# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@www ~]# cd ..

何回か実行すると、cd コマンドをよく理解できるようになります。

pwd(カレントディレクトリの表示)

pwdはPrint Working Directoryの略で、カレントディレクトリを表示するコマンドです。

[root@www ~]# pwd [-P]
选项与参数:
-P  :显示出确实的路径,而非使用连结 (link) 路径。

范例:单纯显示出目前的工作目录:
[root@www ~]# pwd
/root   <== 显示出目录啦~

范例:显示出实际的工作目录,而非连结档本身的目录名而已
[root@www ~]# cd /var/mail   <==注意,/var/mail是一个连结档
[root@www mail]# pwd
/var/mail         <==列出目前的工作目录
[root@www mail]# pwd -P
/var/spool/mail   <==怎么回事?有没有加 -P 差很多~
[root@www mail]# ls -ld /var/mail
lrwxrwxrwx 1 root root 10 Sep  4 17:54 /var/mail -> spool/mail
# 看到这里应该知道为啥了吧?因为 /var/mail 是连结档,连结到 /var/spool/mail 
# 所以,加上 pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径啊!

mkdir (新しいディレクトリの作成)

新しいディレクトリを作成したい場合は、mkdir (ディレクトリの作成)を使用します。

構文:

mkdir [-mp] 目录名称

オプションとパラメータ:

-m: 設定ファイルの権限!直接構成。デフォルトの権限 (umask) を確認する必要はありません~

    -p: 必要なディレクトリ (上位レベルのディレクトリを含む) を再帰的に直接作成するのに役立ちます。
  • 例: /tmp の下にいくつかの新しいディレクトリを作成してみてください:
  • [root@www ~]# cd /tmp
    [root@www tmp]# mkdir test    <==创建一名为 test 的新目录
    [root@www tmp]# mkdir test1/test2/test3/test4
    mkdir: cannot create directory `test1/test2/test3/test4': 
    No such file or directory       <== 没办法直接创建此目录啊!
    [root@www tmp]# mkdir -p test1/test2/test3/test4

    この -p オプションを追加すると、複数層のディレクトリを作成できます。

  • 例: アクセス許可 rwx--x--x を持つディレクトリを作成する
[root@www tmp]# mkdir -m 711 test2
[root@www tmp]# ls -l
drwxr-xr-x  3 root  root 4096 Jul 18 12:50 test
drwxr-xr-x  3 root  root 4096 Jul 18 12:53 test1
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2

上記のアクセス許可セクションで、構成プロパティを強制するために -m が追加されていない場合、システムはデフォルトのプロパティを使用します。

上記の例のように -m を使用する場合は、-m 711 を指定して、新しいディレクトリに drwx--x--x 権限を与えます。

rmdir (空のディレクトリの削除)

構文:

 rmdir [-p] 目录名称

オプションとパラメータ:

  • -p:上位レベルの「空の」ディレクトリも削除します

w3cschool.ccディレクトリを削除します

[root@www tmp]# rmdir w3cschool.cc/

例: mkdir の例で作成したディレクトリ (/tmp 配下) を削除します。

[root@www tmp]# ls -l   <==看看有多少目录存在?
drwxr-xr-x  3 root  root 4096 Jul 18 12:50 test
drwxr-xr-x  3 root  root 4096 Jul 18 12:53 test1
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2
[root@www tmp]# rmdir test   <==可直接删除掉,没问题
[root@www tmp]# rmdir test1  <==因为尚有内容,所以无法删除!
rmdir: `test1': Directory not empty
[root@www tmp]# rmdir -p test1/test2/test3/test4
[root@www tmp]# ls -l        <==您看看,底下的输出中test与test1不见了!
drwx--x--x  2 root  root 4096 Jul 18 12:54 test2

test1/test2/test3/test4 をすぐに削除するには、-p オプションを使用します。

ただし、この rmdir は空のディレクトリのみを削除できることに注意してください。空ではないディレクトリを削除するには rm コマンドを使用できます。

cp(ファイルまたはディレクトリのコピー)

cpとは、ファイルやディレクトリをコピーすることを意味します。

構文:

[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory

オプションとパラメータ:

  • -a: -pdr の意味と同等。pdr については、次の手順を参照してください (一般的に使用されます)。

  • -d:ソース ファイルはリンク ファイル (リンク ファイル) の属性です。ファイル自体ではなくリンク ファイルの属性をコピーします。もう一度;

  • -i: ターゲットファイル(宛先)がすでに存在する場合、最初に上書きするときのアクションを尋ねます(よく使用されます)

  • -l: ハードリンクのリンクファイルを作成します(ハードリンク) ) ファイル自体をコピーする代わりに ;

  • -p: デフォルトの属性を使用する代わりに、その属性とともにファイルをコピーします (バックアップによく使用されます)。

  • -r: ディレクトリに使用される再帰的および連続コピー。コピー; (一般的に使用されます)

  • -s: シンボリック リンク ファイル (シンボリック リンク)、つまり「ショートカット」ファイルにコピーします。

  • -u: 宛先が古い場合にのみ宛先をアップグレードします。起源!

  • ルート ID を使用し、ホーム ディレクトリの .bashrc を /tmp にコピーし、名前を bashr

    [root@www ~]# cp ~/.bashrc /tmp/bashrc
    [root@www ~]# cp -i ~/.bashrc /tmp/bashrc
    cp: overwrite `/tmp/bashrc'? n  <==n不覆盖,y为覆盖

    rm (ファイルまたはディレクトリを削除) に変更します
  • 構文:

     rm [-fir] 文件或目录

    オプションとパラメーター:

    -f : これは強制を意味し、存在しないファイルは無視され、警告メッセージは表示されません

    • -i: 対話型モード、削除する前にアクションを実行するかどうかをユーザーに尋ねます

    • -r: 再帰的削除 !ディレクトリの削除に最も一般的に使用されます。これは非常に危険なオプションです。 ! !


    • cp の例で作成したばかりの bashrc を削除します。

      [root@www tmp]# rm -i bashrc
      rm: remove regular file `bashrc'? y
    • -i オプションを追加すると、間違ったファイル名を削除しないように事前に尋ねられます。

    mv (ファイルとディレクトリの移動、または名前の変更)

    構文:

    [root@www ~]# mv [-fiu] source destination
    [root@www ~]# mv [options] source1 source2 source3 .... directory

    オプションとパラメータ:

    -f : Force は強制を意味し、ターゲットファイルがすでに存在する場合は、質問せずに直接上書きされます。

    • -i : 宛先ファイル (宛先) が既に存在する場合、上書きするかどうかを尋ねられます。

    • -u : ターゲットファイルがすでに存在し、ソースが比較的新しい場合は、アップグレード(更新)されます

    • ファイルをコピーし、ディレクトリを作成し、そのディレクトリにファイルを移動します

      [root@www ~]# cd /tmp
      [root@www tmp]# cp ~/.bashrc bashrc
      [root@www tmp]# mkdir mvtest
      [root@www tmp]# mv bashrc mvtest

      ファイルをディレクトリに移動するだけです!

      今のディレクトリ名を mvtest2 に変更します

      [root@www tmp]# mv mvtest mvtest2

      Linux ファイル コンテンツ ビュー

      次のコマンドを使用して、Linux システム内のファイル コンテンツを表示します:

      • cat ファイルのコンテンツを最初の行から表示します

      • tac 最後の行から見ると、tac は猫を逆から書いたものであることがわかります。

      • nl 表示される場合は行番号を出力します!

      • more はファイルのコンテンツをページごとに表示します

      • less は more と似ていますが、more よりも優れており、ページを進めることができます。

      • headは最初の数行のみを参照してください

      • tailは末尾の行のみを参照してください

      man [command]を使用して、各コマンドの使用法ドキュメントを表示できます。たとえば、 man cp 。

      cat

      ファイルの内容を最初の行から表示します

      構文:

      cat [-AbEnTv]

      オプションとパラメータ:

      • -A: -vET の統合オプションと同等で、単なる文字の代わりにいくつかの特殊文字をリストできます。空白;

      • -b: 行番号をリストします。空白行以外の行番号のみを表示します。空白行には行番号が付けられません。

      • -E: 最後の改行バイトを表示します $;

      • -n: -b オプションとは異なり、空白行を含む行番号を表示します。 ^I 付きの [tab] ボタン:

      • -v: 非表示の特殊文字をリストします

      • /etc/issue の内容を表示します:

        [root@www ~]# cat /etc/issue
        CentOS release 6.4 (Final)
        Kernel \r on an \m
      • tac

      tac コマンドは cat コマンドの逆です。 . ファイルの内容が最後の行から表示されます。tac が逆に書かれていることがわかります。例:

      [root@www ~]# tac /etc/issue
      
      Kernel \r on an \m
      CentOS release 6.4 (Final)

      nl

      行番号を表示

      構文:

      nl [-bnw] 文件

      オプションとパラメータ:

      -b: 行番号を指定するには、主に 2 つの方法があります:

      -b a: 空白行であるかどうかに関係なく、行番号もリストされることを示します (cat -n と同様)。 -b t: 空白行がある場合、空行に行番号をリストしません (デフォルト値)

      • -n: 行番号をリストするには主に 3 つの方法があります。 -n ln: 行番号が画面の左端に表示されます。 -n rn: 行番号は 0 を追加せずにその列の右端に表示されます。 -n rz: 行番号がそのフィールドの右端に表示され、0 が追加されます。

      • -w: 行番号フィールドが占める桁数。




        例 1: nl を使用して /etc/issue の内容をリストします

        [root@www ~]# nl /etc/issue
             1  CentOS release 6.4 (Final)
             2  Kernel \r on an \m
      • more
      • ページごとにめくります

        [root@www ~]# more /etc/man.config
        #
        # Generated automatically from man.conf.in by the
        # configure script.
        #
        # man.conf from man-1.6d
        ....(中间省略)....
        --More--(28%)  <== 重点在这一行喔!你的光标也会在这里等待你的命令
      • more プログラムの実行中に、押すことができるボタンがいくつかあります:

      スペースキー (スペース): 1 ページ進むことを意味します

      Enter : 「1 行」進むことを意味します。

    • /string : 表示されたコンテンツ内でキーワード「string」を検索することを意味します。

    • :f : 現在表示されているファイル名と行数をすぐに表示します。

    • q : さらにすぐに終了することを意味します。ファイルの内容は表示されなくなります。

    • b または [ctrl]-b: ページを戻すことを意味しますが、このアクションはファイルに対してのみ役に立ち、パイプラインに対しては役に立ちません。

    less

    ページごとにページをめくると、次の例では /etc/man.config ファイルの内容が出力されます:

    [root@www ~]# less /etc/man.config
    #
    # Generated automatically from man.conf.in by the
    # configure script.
    #
    # man.conf from man-1.6d
    ....(中间省略)....
    :   <== 这里可以等待你输入命令!

    less の実行時に入力できるコマンドは次のとおりです:

    • スペース キー : 反転1 ページ下へ ;

    • [pagedown]: ページを下へスクロール;

    • : ページを上へスクロール

    • ?String : "文字列" を上方向に検索する関数

    • n : 前の検索を繰り返します (/ または ?! に関連します)

    • N : 前の検索を逆方向に繰り返します (/ または ? ! に関連します)

    • q :less プログラムを終了します。

    • head

    • ファイルの最初の数行を抽出します

    構文:

    head [-n number] 文件

    オプションとパラメーター:

    -n : を表す数字が続きます。表示される数字 行の意味

    • [root@www ~]# head /etc/man.config

      デフォルトでは最初の10行が表示されます!最初の 20 行を表示するには、これを行う必要があります:

      [root@www ~]# head -n 20 /etc/man.config
    • tail

    ファイルの最後の数行を取り出します

    構文:

    tail [-n number] 文件

    オプションとパラメータ:

    -n: 後に数字が続きます, 表示する行数を表します 意味

    • -f: [ctrl]-c を押すまで末尾検出が終了しないことを示します

    • [root@www ~]# tail /etc/man.config
      # 默认的情况中,显示最后的十行!若要显示最后的 20 行,就得要这样:
      [root@www ~]# tail -n 20 /etc/man.config