1、ls命令

list の略語です。ls コマンドを使用すると、Linux フォルダに含まれるファイルを確認できるだけでなく、ファイルの権限(ディレクトリ、フォルダ、ファイルの権限を含む)を確認でき、ディレクトリ情報などを確認できます。

よく使うパラメータの組み合わせ:

ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来

实例:

(1) 読みやすい形式で時間の降順に並べ替え、ファイルの詳細情報を表示する

ls -lhrt

(2) サイズの降順でファイルの詳細情報を表示する

ls -lrS

(3)現在のディレクトリ内の「t」で始まるすべてのディレクトリの詳細を一覧表示します

ls -l t*

(4) ファイルの絶対パスを一覧表示する(隠しファイルを含まない)

ls | sed "s:^:`pwd`/:"

(5) ファイルの絶対パスを一覧表示する(隠しファイルを含む)

find $pwd -maxdepth 1 | xargs ls -ld

2、cd 命令

cd(changeDirectory) 命令语法:

cd [目录名]

説明:カレントディレクトリを dirName に切り替えます。

实例:

(1)対象のディレクトリに入る

cd /

(2)"home" ディレクトリに入る

cd ~

(3)前回の作業パスに入ります

cd -

(4)直前のコマンドの引数をcdの引数として使用する。

cd !$

3、pwd 命令

pwd コマンドは、現在の作業ディレクトリのパスを表示するために使用されます。

实例:

(1)現在のパスを確認する

pwd

(2)シンボリックリンクの実際のパスを表示します

pwd -P

4、mkdir 命令

mkdir 命令用于创建文件夹。

可用选项:

  • -m: 新しく作成したディレクトリにアクセス権限を設定します。chmod コマンドでも設定できます。
  • -p: パス名を指定できます。このとき、パス内の一部のディレクトリがまだ存在しない場合、このオプションを追加すると、システムが自動的に存在しないディレクトリを作成します。つまり、一度に複数のディレクトリを作成できます。

实例:

(1)現在の作業ディレクトリに「t」という名前のフォルダを作成します

mkdir t

(2)tmp ディレクトリ配下にパス test/t1/t のディレクトリを作成します。存在しない場合は作成します。

mkdir -p /tmp/test/t1/t

5、rm 命令

ディレクトリ内の1つまたは複数のファイルやディレクトリを削除します。-r オプションを使用しない場合、rm はディレクトリを削除しません。rm でファイルを削除した場合でも、通常はそのファイルを元の状態に復元できます。

rm [选项] 文件…

实例:

(1)すべての.logファイルを削除する。削除前に一つずつ確認を求める:

rm -i *.log

(2)test サブディレクトリとその中のすべてのファイルを削除し、一つ一つ確認しない場合:

rm -rf test

(3)-f で始まるファイルを削除する

rm -- -f*

6、rmdir 命令

ディレクトリから1つまたは複数のサブディレクトリ項目を削除します。ディレクトリを削除するには、その親ディレクトリに対する書き込み権限も必要です。

注意:空でないディレクトリは削除できない

实例:

(1)parent サブディレクトリが削除された後、それが空のディレクトリになった場合は、ついでに一緒に削除します:

rmdir -p parent/child/child11

7、mv 命令

ファイルを移動したり、ファイル名を変更したりします。2番目のパラメータのタイプに応じて(ディレクトリの場合はファイルを移動し、ファイルの場合はそのファイルの名前を変更します)。

2番目のパラメータがディレクトリの場合、1番目のパラメータはスペースで区切られた複数のファイルまたはディレクトリを指定でき、1番目のパラメータで指定した複数のファイルを2番目のパラメータで指定したディレクトリに移動します。

实例:

(1)ファイル test.log を test1.txt に名前変更する

mv test.log test1.txt

(2)ファイル log1.txt、log2.txt、log3.txt をルートの test3 ディレクトリに移動する

mv llog1.txt log2.txt log3.txt /test3

(3)ファイル file1 を file2 に名前を変更する。file2 が既に存在する場合は、上書きするか確認する

mv -i log1.txt log2.txt

(4)現在のフォルダ内のすべてのファイルを親ディレクトリに移動します

mv * ../

8、cp 命令

ソースファイルをターゲットファイルにコピーするか、複数のソースファイルをターゲットディレクトリにコピーします。

注意:コマンドラインでのコピーでは、ターゲットファイルが既に存在する場合、上書きするかどうかが確認されます。しかし、shell スクリプトでは、-i パラメータを付けない場合、確認なしで直接上書きされます!

-i 提示
-r 复制目录及目录内所有项目
-a 复制的文件与原文件时间一样

实例:

(1)a.txt を test ディレクトリにコピーし、元のファイルのタイムスタンプを保持します。元のファイルが存在する場合は上書きするかどうか確認します。

cp -ai a.txt test

(2)a.txt へのリンク(ショートカット)を作成する

cp -s a.txt link_a.txt

9、cat 命令

cat には主に3つの大きな機能がある:

1. ファイル全体を一度に表示します:

cat filename

2. キーボードからファイルを作成します:

cat > filename

新しいファイルのみ作成でき、既存のファイルは編集できない。

3.いくつかのファイルを1つのファイルに結合する:

cat file1 file2 > file
  • -b 空でない出力行に行番号を付けます
  • -n すべての行番号を出力する

实例:

(1)log2012.log のファイル内容に行番号を付けて log2013.log というファイルに出力する

cat -n log2012.log log2013.log

(2)log2012.log と log2013.log のファイル内容に行番号を付け(空白行には付けない)、その後 log.log に内容を追記する

cat -b log2012.log log2013.log log.log

(3)here doc を使用して新しいファイルを生成する

cat >log.txt <<EOF
>Hello
>World
>PWD=$(pwd)
>EOF
ls -l log.txt
cat log.txt
Hello
World
PWD=/opt/soft/test

(4)逆順に表示する

tac log.txt
PWD=/opt/soft/test
World
Hello

10、more 命令

機能は cat に似ています。more は1ページずつ表示し、ユーザーがページごとに読みやすくします。最も基本的な操作は、スペースキー(space)を押すと次のページが表示され、b キーを押すと前のページ(back)に戻ります。

命令参数:

+n      从笫 n 行开始显示
-n       定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示 
-c       从顶部清屏,然后显示
-d       提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l        忽略Ctrl+l(换页)字符
-p       通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s       把连续的多个空行显示为一行
-u       把文件内容中的下画线去掉

よく使う操作コマンド:

Enter    向下 n 行,需要定义。默认为 1 行
Ctrl+F   向下滚动一屏
空格键  向下滚动一屏
Ctrl+B  返回上一屏
=       输出当前行的行号
:f     输出文件名和当前行的行号
V      调用vi编辑器
!命令   调用Shell,并执行命令
q       退出more

实例:

(1)ファイルの3行目以降の内容を表示する

more +3 text.txt

(2)ファイルとディレクトリの詳細情報を一覧表示し、パイプを使用して毎回5行ずつ表示します

ls -l | more -5

スペースキーを押すと次の5行が表示されます。

11、less 命令

less は more に似ているが、less を使用するとファイルを自由に閲覧できる。一方 more は前方にしか移動できず、後方には移動できない。また less は表示前にファイル全体を読み込まない。

よく使うコマンドのパラメータ:

-i  忽略搜索时的大小写
-N  显示每行的行号
-o  <文件名> 将less 输出的内容在指定文件中保存起来
-s  显示连续空行为一行
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
-x <数字> 将“tab”键显示为规定的数字空格
b  向后翻一页
d  向后翻半页
h  显示帮助界面
Q  退出less 命令
u  向前滚动半页
y  向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]:   向上翻动一页

实例:

(1)ps でプロセス情報を確認し、less でページ分割して表示する

ps -aux | less -N

(2)複数のファイルを確認する

less 1.log 2.log

n を使用して次を表示し、p を使用して前を表示できる。

12、head 命令

head はファイルの先頭を標準出力に表示するために使う。デフォルトでは head コマンドは対応するファイルの先頭10行を出力する。

常用参数:

-n<行数> 显示的行数(行数为复数表示从最后向前数)

实例:

(1)1.log ファイルの最初の20行を表示する

head 1.log -n 20

(2)1.log ファイルの最初の20バイトを表示する

head -c 20 log2014.log

(3)t.log の最後の10行を表示する

head -n -10 t.log

13、tail 命令

指定したファイルの末尾の内容を表示するために使う。ファイルを指定しない場合は、入力情報として処理する。ログファイルを確認するときによく使われる。

常用参数:

-f 循环读取(常用于查看递增的日志文件)
-n<行数> 显示行数(从后向前)

(1)徐々に増加するファイル内容をループで読み取る

ping 127.0.0.1 > ping.log &

バックグラウンド実行:jobs -l で確認でき、fg を使用してフォアグラウンドに移動して実行することもできます。

tail -f ping.log

(ログを確認する)

14、which 命令

Linux で特定のファイルを検索したいが、どこにあるかわからない場合は、以下のコマンドを使用して検索できます:

which     查看可执行文件的位置。
whereis 查看文件的位置。
locate  配合数据库查看文件位置。
find        实际搜寻硬盘查询文件名称。

which は、PATH で指定されたパス内でシステムコマンドの位置を検索し、最初の検索結果を返します。which コマンドを使用すると、システムコマンドが存在するかどうか、および実際にどの位置のコマンドが実行されるかを確認できます。

常用参数:

-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

实例:

(1)ls コマンドが存在するか確認し、どれが実行されるか確認する

which ls

(2)which を確認する

which which

(3)cd を確認する

which cd(显示不存在,因为 cd 是内建命令,而 which 查找显示是 PATH 中的命令)

現在の PATH 設定を確認する:

echo $PATH

または env を使用してすべての環境変数と対応する値を確認する

15、whereis 命令

whereis コマンドはプログラム名の検索にのみ使用でき、バイナリファイル(パラメータ -b)、man 説明ファイル(パラメータ -m)、ソースコードファイル(パラメータ -s)のみを検索します。パラメータを省略すると、すべての情報を返します。whereis と locate はどちらもシステム組み込みのデータベースに基づいて検索するため、効率が非常に高いですが、find はハードディスクを走査してファイルを検索します。

よく使うパラメータ:

-b   定位可执行文件。
-m   定位帮助文件。
-s   定位源代码文件。
-u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

例:

(1)locate プログラムに関連するファイルを検索する

whereis locate

(2)locate のソースコードファイルを検索する

whereis -s locate

(3)lcoate のヘルプファイルを検索する

whereis -m locate

16、locate 命令

locate はシステム組み込みのドキュメントデータベースを検索することで高速にファイルを見つけます。データベースは updatedb プログラムによって更新され、updatedb は cron デーモンによって定期的に呼び出されます。デフォルトでは、locate コマンドはデータベースを検索する際、ハードディスク全体のデータを検索するよりも高速ですが、欠点として、locate が見つけたファイルが最近作成されたばかり、または名前を変更したばかりの場合、見つからない可能性があります。デフォルト設定では、updatedb は毎日1回実行されます。crontab を変更して設定値を更新できます(etc/crontab)。

locate は find コマンドと似ており、*、? などの正規表現マッチングを使用して検索できます。

よく使うパラメータ:

-l num(要显示的行数)
-f   将特定的档案系统排除在外,如将proc排除在外
-r   使用正则运算式做为寻找条件

例:

(1)pwd に関連するすべてのファイルを検索する(ファイル名に pwd を含む)

locate pwd

(2)etc ディレクトリ内の sh で始まるすべてのファイルを検索する

locate /etc/sh

(3)/var ディレクトリ内で、reason で終わるファイルを検索する

locate -r '^/var.*reason$'(其中.表示一个字符,*表示任务多个;.*表示任意多个字符)

17、find 命令

ファイルツリー内でファイルを検索し、対応する処理を行います。

コマンド形式:

find pathname -options [-print -exec -ok ...]

コマンドパラメータ:

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } \;,注意{   }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

コマンドオプション:

-name 按照文件名查找文件
-perm 按文件权限查找文件
-user 按文件属主查找文件
-group  按照文件所属的组来查找文件。
-type  查找某一类型的文件,诸如:
   b - 块设备文件
   d - 目录
   c - 字符设备文件
   l - 符号链接文件
   p - 管道文件
   f - 普通文件

-size n :[c] 查找文件长度为n块文件,带有c时表文件字节大小
-amin n   查找系统中最后N分钟访问的文件
-atime n  查找系统中最后n*24小时访问的文件
-cmin n   查找系统中最后N分钟被改变文件状态的文件
-ctime n  查找系统中最后n*24小时被改变文件状态的文件
-mmin n   查找系统中最后N分钟被改变文件数据的文件
-mtime n  查找系统中最后n*24小时被改变文件数据的文件
(用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。 )
-maxdepth n 最大查找目录深度
-prune 选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略
-newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项

例:

(1)48 時間以内に変更されたファイルを検索する

find -atime -2

(2)現在のディレクトリ内で .log で終わるファイルを検索する。.現在のディレクトリを表します

find ./ -name '*.log'

(3)/opt ディレクトリ内で、権限が 777 のファイルを検索する

find /opt -perm 777

(4)1K より大きいファイルを検索する

find -size +1000c

1000 文字に等しいファイルを検索する

find -size 1000c 

-exec パラメータの後には command コマンドが続きます。その終了は ; を終了フラグとします。そのため、このコマンドの後のセミコロンは必須です。システムによってセミコロンの意味が異なる場合があるため、前にバックスラッシュを付けます。{} 中括弧は、その前の find で見つかったファイル名を表します。

例:

(5)現在のディレクトリ内で変更日時が10日より前のファイルを検索して削除します(確認なし)

find . -type f -mtime +10 -exec rm -f {} \;

(6)現在のディレクトリ内で、ファイル名が .log で終わり、変更日時が5日より前のすべてのファイルを検索し、削除します。ただし、削除する前にプロンプトを表示します。y キーでファイルを削除し、n キーで削除しません。

find . -name '*.log' mtime +5 -ok -exec rm {} \;

(7)現在のディレクトリ内で、ファイル名が passwd で始まり、内容に "pkg" という文字を含むファイルを検索する

find . -f -name 'passwd*' -exec grep "pkg" {} \;

(8)exec オプションを使用して cp コマンドを実行する

find . -name '*.log' -exec cp {} test3 \;

-xargs find コマンドはマッチしたファイルを xargs コマンドに渡します。xargs コマンドは -exec オプションのようにすべてを一度に取得するのではなく、毎回一部のファイルだけを取得します。これにより、最初に取得した一部のファイルを処理し、次に次のバッチを処理し、というように続けることができます。

例:

(9)現在のディレクトリ内の各通常ファイルを検索し、xargs を使用してファイルタイプを判定する

find . -type f -print | xargs file

(10)現在のディレクトリ内で、js で終わり、かつ 'editor' という文字を含むすべての通常ファイルを検索する

find . -type f -name "*.js" -exec grep -lF 'ueditor' {} \;
find -type f -name '*.js' | xargs grep -lF 'editor'

(11)xargs を利用して mv コマンドを実行する

find . -name "*.log" | xargs -i mv {} test4

(12)grep コマンドを使用して、現在のディレクトリ内のすべての通常ファイルから hostnames という語を検索し、該当する行を表示する:

find . -name \*(转义) -type f -print | xargs grep -n 'hostnames'

(13)現在のディレクトリ内で、小文字1文字で始まり、最後が 4 から 9 に .log が付いて終わるファイルを検索する:

find . -name '[a-z]*[4-9].log' -print

(14)test ディレクトリ内で検索し、test4 サブディレクトリ内では検索しない

find test -path 'test/test4' -prune -o -print

(15)例1:変更日時がファイル log2012.log より新しいが、ファイル log2017.log より古いファイルを検索する

find -newer log2012.log ! -newer log2017.log

depth オプションを使用する:

depth オプションを使用すると、find コマンドでファイルシステムをテープにバックアップする際に、まずすべてのファイルをバックアップし、次にサブディレクトリ内のファイルをバックアップすることができます。

例:find コマンドはファイルシステムのルートディレクトリから開始し、CON.FILE という名前のファイルを検索します。まずすべてのファイルをマッチングし、その後サブディレクトリに入って検索します。

find / -name "CON.FILE" -depth -print

18、chmod 命令

Linux システムのファイルまたはディレクトリのアクセス権限を変更するために使用します。これを使用してファイルまたはディレクトリのアクセス権限を制御します。このコマンドには2つの使い方があります。1つは文字と演算子式を含む文字設定法、もう1つは数字を含む数字設定法です。

各ファイルまたはディレクトリのアクセス権限には3つのグループがあり、各グループは3桁で表されます。それぞれ、ファイル所有者の読み取り、書き込み、実行権限、所有者と同じグループのユーザーの読み取り、書き込み、実行権限、システム内の他のユーザーの読み取り、書き込み、実行権限です。ls -l test.txt で確認できます。

ファイル log2012.log を例にとると:

-rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log

最初の列には合計10の位置があり、最初の文字はファイルタイプを指定します。通常の意味では、ディレクトリもファイルです。最初の文字がハイフンなら、ディレクトリ以外のファイルを表します。d ならディレクトリを表します。2番目の文字から10番目までの9文字は、3文字ずつのグループで、3組のユーザーのファイルまたはディレクトリに対する権限をそれぞれ表します。権限文字では、ハイフンは権限なしを表し、r は読み取り専用、w は書き込み、x は実行可能を表します。

よく使うパラメータ:

-c 当发生改变时,报告处理信息
-R 处理指定目录以及其子目录下所有文件

権限範囲:

u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组

権限コード:

r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
- :删除权限,用数字0表示
s :特殊权限

例:

(1)ファイル t.log にすべてのユーザーの実行権限を追加する

chmod a+x t.log

(2)元のすべての権限を削除し、所有者に読み取り権限を付与し、処理情報を出力する

chmod u=r t.log -c

(3)file の所有者に読み取り、書き込み、実行(7)の権限を割り当て、file の所属グループに読み取り、実行(5)の権限を割り当て、他のユーザーに実行(1)の権限を割り当てる

chmod 751 t.log -c(或者:chmod u=rwx,g=rx,o=x t.log -c)

(4)test ディレクトリとそのサブディレクトリ内のすべてのファイルに読み取り権限を追加する

chmod u+r,g+r,o+r -R text/ -c
19、tar コマンド

ファイルの圧縮と解凍に使用します。tar 自体には圧縮機能はなく、パッケージ化機能のみがあります。圧縮と解凍は他の機能を呼び出して実行します。

2つの概念を明確にします:パッケージ化と圧縮です。パッケージ化とは、多数のファイルやディレクトリを1つの総合ファイルにまとめることです。圧縮とは、大きなファイルをいくつかの圧縮アルゴリズムによって小さなファイルにすることです。

よく使うパラメータ:

-c 建立新的压缩文件
-f 指定压缩文件
-r 添加文件到已经压缩文件包中
-u 添加改了和现有的文件到压缩包中
-x 从压缩包中抽取文件
-t 显示压缩文件中的内容
-z 支持gzip压缩
-j 支持bzip2压缩
-Z 支持compress解压文件
-v 显示操作过程

gzip および bzip2 圧縮について:

gzip 实例:压缩 gzip fileName .tar.gz 和.tgz  解压:gunzip filename.gz 或 gzip -d filename.gz
          对应:tar zcvf filename.tar.gz     tar zxvf filename.tar.gz

bz2实例:压缩 bzip2 -z filename .tar.bz2 解压:bunzip filename.bz2或bzip -d filename.bz2
       对应:tar jcvf filename.tar.gz         解压:tar jxvf filename.tar.bz2

例:

(1)ファイルをすべて tar パッケージにパッケージ化する

tar -cvf log.tar 1.log,2.log 或tar -cvf log.*

(2)/etc 配下のすべてのファイルとディレクトリを指定ディレクトリにパッケージ化し、gz で圧縮する

tar -zcvf /tmp/etc.tar.gz /etc

(3)パッケージ化したばかりのファイルの内容を確認する(gzip で圧縮されているため、必ず z を付けます)

tar -ztvf /tmp/etc.tar.gz

(4)/home、/etc を圧縮してパッケージ化するが、/home/dmtsai は含めない

tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

20、chown 命令

chown は指定されたファイルの所有者を指定したユーザーまたはグループに変更します。ユーザーはユーザー名またはユーザー ID、グループはグループ名またはグループ ID にできます。ファイルはスペースで区切られた権限を変更するファイルのリストで、ワイルドカードをサポートします。

-c 显示更改的部分的信息
-R 处理指定目录及子目录

例:

(1)所有者とグループを変更し、変更情報を表示する

chown -c mail:mail log2012.log

(2)ファイルのグループを変更する

chown -c :mail t.log

(3)フォルダとサブフォルダ/ディレクトリの所有者と所有グループを mail に変更する

chown -cR mail: test/

21、df 命令

ディスク領域の使用状況を表示します。ハードディスクがどのくらいの容量を占有されているか、現在どのくらいの容量が残っているかなどの情報を取得します。ファイル名が指定されていない場合、現在マウントされているすべてのファイルシステムの利用可能な領域が表示されます。デフォルトでは、ディスク領域は 1KB 単位で表示されます。ただし、環境変数 POSIXLY_CORRECT が指定されている場合は、512バイト単位で表示されます:

-a 全部文件系统列表
-h 以方便阅读的方式显示信息
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地磁盘
-T 列出文件系统类型

例:

(1)ディスク使用状況を表示する

df -l

(2)読みやすい形式ですべてのファイルシステムとそのタイプを一覧表示する

df -haT

22、du 命令

du コマンドも使用領域を確認するものですが、df コマンドと異なり、Linux du コマンドはファイルとディレクトリのディスク使用領域を確認するものです:

コマンド形式:

du [选项] [文件]

よく使うパラメータ:

-a 显示目录中所有文件大小
-k 以KB为单位显示文件大小
-m 以MB为单位显示文件大小
-g 以GB为单位显示文件大小
-h 以易读方式显示文件大小
-s 仅显示总计
-c或--total  除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和

例:

(1)読みやすい形式でフォルダ内およびサブフォルダのサイズを表示する

du -h scf/

(2)読みやすい形式でフォルダ内のすべてのファイルのサイズを表示する

du -ah scf/

(3)複数のファイルまたはディレクトリがそれぞれ占有するディスク領域のサイズを表示し、それらの合計も集計する

du -hc test/ scf/

(4)現在のディレクトリ内の各サブディレクトリが使用している領域を出力する

du -hc --max-depth=1 scf/

23、ln 命令

機能は、ファイルを別の場所に同期リンクを作成することです。異なるディレクトリでその問題が必要な場合、各ディレクトリに同じファイルを作成する必要はなく、ln で作成したリンク(link)によりディスク使用量を削減します。

リンク分類:ソフトリンクとハードリンク

ソフトリンク:

  • 1. ソフトリンクは、パスの形式で存在します。Windows オペレーティングシステムのショートカットに似ています。
  • 2. ソフトリンクはファイルシステムをまたぐことができますが、ハードリンクはできません。
  • 3. ソフトリンクは存在しないファイル名にリンクすることができます。
  • 4. ソフトリンクはディレクトリにリンクすることができます。

ハードリンク:

  • 1. ハードリンクは、ファイルのコピーの形式で存在します。ただし、実際のスペースは占有しません。
  • 2. ディレクトリにハードリンクを作成することはできません。
  • 3. ハードリンクは同じファイルシステム内でのみ作成できます。

注意すべき点:

  • 第一に:ln コマンドは各リンクファイルの同期性を維持します。つまり、どこを変更しても、他のファイルも同じように変更されます。
  • 第二に:ln のリンクにはソフトリンクとハードリンクの2種類があります。ソフトリンクは「ln -s ソースファイル ターゲットファイル」で、選択した位置にファイルのミラーを生成するだけで、ディスクスペースを占有しません。ハードリンクは「ln ソースファイル ターゲットファイル」で、-s パラメータがなく、選択した位置にソースファイルと同じサイズのファイルを生成します。ソフトリンクでもハードリンクでも、ファイルは同期して変更されます。
  • 第三に:ln コマンドはファイルやディレクトリのリンクに使用します。2つ以上のファイルやディレクトリを同時に指定し、最後の宛先が既存のディレクトリである場合、前に指定したすべてのファイルやディレクトリがそのディレクトリにコピーされます。複数のファイルやディレクトリを同時に指定し、最後の宛先が既存のディレクトリでない場合は、エラーメッセージが表示されます。

よく使うパラメータ:

-b 删除,覆盖以前建立的链接
-s 软链接(符号链接)
-v 显示详细处理过程

例:

(1)ファイルにソフトリンクを作成し、操作情報を表示する

ln -sv source.log link.log

(2)ファイルにハードリンクを作成し、操作情報を表示する

ln -v source.log link1.log

(3)ディレクトリにソフトリンクを作成する

ln -sv /opt/soft/test/test3 /opt/soft/test/test5

24、date 命令

システムの日付と時刻を表示または設定します。

コマンドパラメータ:

-d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。
-s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。
-u  显示GMT。
%H 小时(00-23)
%I 小时(00-12)
%M 分钟(以00-59来表示)
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)
%a 星期的缩写。
%A 星期的完整名称。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%m 月份(以01-12来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。

例:

(1)翌日を表示する

date +%Y%m%d --date="+1 day"  //显示下一天的日期

(2)-d パラメータの使用

date -d "nov 22"  今年的 11 月 22 日是星期三
date -d '2 weeks' 2周后的日期
date -d 'next monday' (下周一的日期)
date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d
date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d
date -d last-month +%Y%m(上个月是几月)
date -d next-month +%Y%m(下个月是几月)

25、cal 命令

ユーザーにグレゴリオ暦(太陽暦)カレンダーを表示できます。パラメータが1つだけの場合は年(1〜9999)を表し、2つのパラメータがある場合は月と年を表します:

よく使うパラメータ:

-3 显示前一月,当前月,后一月三个月的日历
-m 显示星期一为第一列
-j 显示在当前年第几天
-y [year]显示当前年[year]份的日历

例:

(1)指定した年月の日付を表示する

cal 9 2012

(2)2013年の各月のカレンダーを表示する

cal -y 2013

(3)月曜日を最初の列として、前月・当月・翌月の3ヶ月を表示する

cal -3m

26、grep 命令

強力なテキスト検索コマンドです。grep(Global Regular Expression Print)はグローバル正規表現検索です。

grep の動作は次のとおりです。1つ以上のファイル内で文字列テンプレートを検索します。テンプレートにスペースが含まれる場合は引用符で囲む必要があり、テンプレート以降のすべての文字列はファイル名と見なされます。検索結果は標準出力に送られ、元のファイルの内容には影響しません。

コマンド形式:

grep [option] pattern file|dir

よく使うパラメータ:

-A n --after-context显示匹配字符后n行
-B n --before-context显示匹配字符前n行
-C n --context 显示匹配字符前后n行
-c --count 计算符合样式的列数
-i 忽略大小写
-l 只列出文件内容符合指定的样式的文件名称
-f 从文件中读取关键词
-n 显示匹配内容的所在文件中行数
-R 递归查找文件夹

grep の正規表現:

^  #锚定行的开始 如:'^grep'匹配所有以grep开头的行。 
$  #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。 
.  #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。  
*  #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
.*   #一起用代表任意字符。  
[]   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。 
[^]  #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。  
\(..\)  #标记匹配字符,如'\(love\)',love被标记为1。   
\<      #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\>      #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\}  #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。 
x\{m,\}  #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。  
x\{m,n\}  #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。  
\w    #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。  
\W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。  
\b    #单词锁定符,如: '\bgrep\b'只匹配grep。

例:

(1)指定したプロセスを検索する

ps -ef | grep svn

(2)指定したプロセスの数を検索する

ps -ef | grep svn -c

(3)ファイルからキーワードを読み取る

cat test1.txt | grep -f key.log

(4)フォルダから grep で始まる行を再帰的に検索し、ファイルのみをリスト表示する

grep -lR '^grep' /tmp

(5)x で始まらない行の内容を検索する

grep '^[^x]' test.txt

(6)ed または at の文字を含む内容行を表示する

grep -E 'ed|at' test.txt

27、wc 命令

wc(word count)の機能は、指定されたファイルのバイト数、単語数、行数を集計し、集計結果を出力することです。

コマンド形式:

wc [option] file..

コマンドパラメータ:

-c 统计字节数
-l 统计行数
-m 统计字符数
-w 统计词数,一个字被定义为由空白、跳格或换行字符分隔的字符串

例:

(1)ファイルの行数、単語数、バイト数、ファイル名を確認する

wc text.txt

結果:

7     8     70     test.txt

(2)出力結果の行数を集計する

cat test.txt | wc -l

28、ps 命令

ps(process status)は、現在実行中のプロセスの状態を確認するために使用します。一度きりの確認で、動的な連続結果が必要な場合は top を使用します。

Linux 上のプロセスには5つの状態があります:

  • 1. 実行中(実行中または実行キューで待機中)
  • 2. 割り込み(休眠中、ブロック中、何らかの条件の成立またはシグナルの受信を待機中)
  • 3. 割り込み不可(シグナルを受信してもウェイクアップせず実行不可、プロセスは割り込みが発生するまで待機する必要があります)
  • 4. ゾンビ(プロセスは終了しましたが、プロセス記述子が存在し、親プロセスが wait4() システムコールを呼び出すまで解放されません)
  • 5. 停止(プロセスが SIGSTOP、SIGSTP、SIGTIN、SIGTOU シグナルを受信した後に実行を停止します)

ps ツールがプロセスを識別する5つの状態コード:

D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process

コマンドパラメータ:

-A 显示所有进程
a 显示所有进程
-a 显示同一终端下所有进程
c 显示进程真实名称
e 显示环境变量
f 显示进程间的关系
r 显示当前终端运行的进程
-aux 显示所有包含其它使用的进程

例:

(1)現在のすべてのプロセスの環境変数とプロセス間の関係を表示する

ps -ef

(2)現在のすべてのプロセスを表示する

ps -A

(3)grep と組み合わせて特定のプロセスを検索する

ps -aux | grep apache

(4)cron と syslog の2つのサービスに関連する PID 番号を見つける

ps aux | grep '(cron|syslog)'

29. top コマンド

現在システムで実行中のプロセスに関する情報を表示します。プロセス ID、メモリ使用率、CPU 使用率などを含みます。

よく使うパラメータ:

-c 显示完整的进程命令
-s 保密模式
-p <进程号> 指定进程显示
-n <次数>循环显示次数

例:

(1)

top - 14:06:23 up 70 days, 16:44,  2 users,  load average: 1.25, 1.32, 1.35
Tasks: 206 total,   1 running, 205 sleeping,   0 stopped,   0 zombie
Cpu(s):  5.9%us,  3.4%sy,  0.0%ni, 90.4%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  32949016k total, 14411180k used, 18537836k free,   169884k buffers
Swap: 32764556k total,        0k used, 32764556k free,  3612636k cached
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND  
28894 root      22   0 1501m 405m  10m S 52.2  1.3   2534:16 java  

最初の5行は現在のシステム状況全体の統計情報エリアです。

1行目はタスクキューの情報で、uptime コマンドの実行結果と同じです。具体的なパラメータの説明は以下のとおりです:

14:06:23 — 現在のシステム時刻

up 70 days, 16:44 — システムは70日16時間44分間稼働しています(この間、システムは再起動されていません!)

2 users — 現在2人のユーザーがシステムにログインしています

load average: 1.15, 1.42, 1.44 — load average の後の3つの数値は、それぞれ1分、5分、15分の負荷状況です。

load average のデータは、5秒ごとにアクティブなプロセス数をチェックし、特定のアルゴリズムで計算された数値です。この数値を論理 CPU の数で割った結果が5より高い場合、システムが過負荷で動作していることを示しています。

2行目は Tasks — タスク(プロセス)で、具体的な情報の説明は以下のとおりです:

システムには現在合計206のプロセスがあり、そのうち実行中が1つ、205がスリープ(sleep)状態、停止(stopped)状態が0、ゾンビ(zombie)状態が0です。

3行目は CPU 状態情報で、具体的な属性の説明は以下のとおりです:

5.9%us — 用户空间占用CPU的百分比。
3.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
90.4% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.2% si — 软中断(Software Interrupts)占用CPU的百分比

備考:ここでの CPU 使用率は Windows の概念とは異なります。Linux システムのユーザースペースとカーネルスペースに関する知識を理解する必要があります!

4行目はメモリ状態で、具体的な情報は以下のとおりです:

32949016k total — 物理内存总量(32GB)
14411180k used — 使用中的内存总量(14GB)
18537836k free — 空闲内存总量(18GB)
169884k buffers — 缓存的内存量 (169M)

5行目は swapパーティションの情報で、具体的な情報の説明は以下のとおりです:

32764556k total — 交换区总量(32GB)
0k used — 使用的交换区总量(0K)
32764556k free — 空闲交换区总量(32GB)
3612636k cached — 缓冲的交换区总量(3.6GB)

6行目は空行です。

7行目以降:各プロセス(タスク)の状態監視で、項目列の情報の説明は以下のとおりです:

PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)

top 対話コマンド

h 显示top交互命令帮助信息
c 切换显示命令名称和完整命令行
m 以内存使用率排序
P 根据CPU使用百分比大小进行排序
T 根据时间/累计时间进行排序
W 将当前设置写入~/.toprc文件中
o或者O 改变显示项目的顺序

30、kill 命令

指定したシグナルを対応するプロセスに送信します。シグナルを指定しない場合、SIGTERM(15)を送信して指定したプロセスを終了します。それでもプログラムを終了できない場合は "-KILL" パラメータを使用できます。これが送信するシグナルは SIGKILL(9)で、プロセスを強制終了します。ps コマンドまたは jobs コマンドでプロセス番号を確認できます。root ユーザーはすべてのユーザーのプロセスに影響を与えますが、非 root ユーザーは自分のプロセスにのみ影響を与えます。

よく使うパラメータ:

-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a  当处理当前进程时,不限制命令名和进程号的对应关系
-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s  指定发送信号
-u  指定用户

例:

(1)最初に ps でプロセス pro1 を検索し、次に kill で終了する

kill -9 $(ps -ef | grep pro1)

31、free 命令

システムのメモリ使用状況を表示します。物理メモリ、スワップ領域メモリ(swap)、カーネルバッファメモリを含みます。

コマンドパラメータ:

-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s<间隔秒数> 持续显示内存
-t 显示内存使用总合

例:

(1)メモリ使用状況を表示する

free
free -k
free -m

(2)合計の形式でメモリの使用情報を表示する

free -t

(3)定期的にメモリ使用状況を確認する

free -s 10

原文アドレス:https://www.cnblogs.com/gaojun/p/3359355.html