参考文献:
https://www.runoob.com/w3cnote/linux-common-command-2.html
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 (ディレクトリの変更) コマンド構文:
cd [目录名]
説明: 現在のディレクトリを dirName に切り替えます。
例:
(1) 目的のディレクトリを入力します
cd /
(2) 「ホーム」ディレクトリに入る
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
ここでは、システム コマンド sudo が使用されていることに注意してください。
5.rm コマンド
ディレクトリ内の 1 つまたは複数のファイルまたはディレクトリを削除します。-r オプションを使用しない場合、rm はディレクトリを削除しません。rm を使用してファイルを削除した場合でも、通常はファイルを元に戻すことができます。
rm [选项] 文件…
例:
(1) .log ファイルを削除し、削除する前に 1 つずつ確認を求めます。
rm -i *.log
(2) test サブディレクトリを削除し、サブディレクトリ内のすべてのファイルを 1 つずつ確認せずに削除します。
rm -rf test
(3) -f で始まるファイルを削除する
rm -- -f*
6.rmdir コマンド
ディレクトリから 1 つ以上のサブディレクトリ エントリを削除します。ディレクトリを削除するときは、その親ディレクトリへの書き込み権限も必要です。
注: 空でないディレクトリは削除できません
例:
(1) 親サブディレクトリが削除されて空のディレクトリになったら、ちなみに削除します。
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 コマンド
ソース ファイルをターゲット ファイルにコピーするか、複数のソース ファイルをターゲット ディレクトリにコピーします。
注: コマンド ライン コピーでは、対象のファイルが既に存在する場合、上書きするかどうかを確認するプロンプトが表示されますが、シェル スクリプトでは、-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 には 3 つの主な機能があります。
1. ファイル全体を一度に表示します。
cat filename
2. キーボードからファイルを作成します。
cat > filename
新しいファイルのみ作成でき、既存のファイルは編集できません。
3. 複数のファイルを 1 つのファイルにマージします。
cat file1 file2 > file
-b null 以外の出力の行番号を出力
-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. より多くのコマンド
機能はcatに似ており、ユーザーがページごとに読むためにページごとにさらに表示されます。最も基本的なコマンドは、スペースキー(スペース)を押して次のページを表示し、bキーを押して移動することですback (戻る) 1ページ表示されます。
コマンド パラメータ:
+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 は more に似ていますが、less では自由にファイルを参照できますが、more は前方のみに移動でき、後方には移動できず、less はファイルを表示する前にファイル全体をロードしません。
共通のコマンド パラメータ:
-i 忽略搜索时的大小写
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-s 显示连续空行为一行
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
-x <数字> 将“tab”键显示为规定的数字空格
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
例:
(1) ps プロセス情報を表示し、ページネーションを減らして表示します
ps -aux | less -N
(2) 複数ファイルの閲覧
less 1.log 2.log
n を使用して次のものを表示し、p を使用して前のものを表示できます。
12.ヘッドコマンド
head は、ファイルの先頭を標準出力に表示するために使用され、デフォルトの head コマンドは、対応するファイルの最初の 10 行を出力します。
共通パラメータ:
-n<行数> 显示的行数(行数为复数表示从最后向前数)
例:
(1) s.md ファイルの最初の 20 行を表示する
head s.md -n 20
(2) s.md ファイルの最初の 20 バイトを表示する
head -c 20 s.md
(3) s.md の最後の 10 行を表示する
head -n -10 s.md
13.テールコマンド
指定されたファイルの末尾の内容を表示するために使用され、ファイルが指定されていない場合は入力情報として処理されます。通常、ログ ファイルを表示するために使用されます。
共通パラメータ:
-f 循環読み取り (増分ログ ファイルを表示するために一般的に使用されます)
-n<行数> 行数を表示します (後方から前方へ)
(1) 徐々に増加するファイル コンテンツの循環読み取り
ping 127.0.0.1 > ping.log &
バックグラウンドでの実行: jobs -l を使用して表示するか、fg を使用してフォアグラウンドに移動できます。
tail -f ping.log
(ビュー・ログ)
14.どのコマンド
Linux では、ファイルを検索したいが、その場所がわからない場合は、次のコマンドを使用して検索できます。
which 查看可执行文件的位置。
whereis 查看文件的位置。
locate 配合数据库查看文件位置。
find 实际搜寻硬盘查询文件名称。
which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
共通パラメータ:
-n ファイル名の長さを指定します。指定された長さは、すべてのファイルの中で最も長いファイル名以上でなければなりません。
例:
(1) ls コマンドの有無と実行するコマンドの確認
which ls
(2) 見る
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) ロケート プログラムに関連するファイルを検索する
whereis locate
(2) ロケートのソースファイルを探す
whereis -s locate
(3) lcoatate のヘルプファイルを探す
whereis -m locate
16.ロケートコマンド
locate は、システムに組み込まれているドキュメント データベースを検索してファイルをすばやく見つけます. データベースは updatedb プログラムによって更新され、updatedb は cron デーモンによって定期的に呼び出されます. デフォルトでは、ロケート コマンドは、データベースを検索するときに、ハードディスク全体からデータを検索するよりも高速ですが、さらに悪いことに、ロケートで見つかったファイルが作成された直後または名前が変更されたばかりの場合、見つからない可能性があります。 updatedb は 1 日 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 pathname -options [-print -exec -ok ...]
コマンド パラメータ:
pathname: find コマンドが検索するディレクトリ パス。たとえば、. を使用して現在のディレクトリを表し、/ を使用してシステム ルート ディレクトリを表します。
-print: find コマンドは、一致するファイルを標準出力に出力します。
-exec: find コマンドは、一致するファイルに対して、このパラメーターで指定されたシェル コマンドを実行します。対応するコマンドの形式は 'command' { } ; です。{ } と \; の間のスペースに注意してください。
-ok: このパラメーターで指定されたシェル コマンドがより安全なモードで実行されることを除いて、-exec と同じ機能を持ちます.各コマンドを実行する前に、ユーザーがコマンドを実行するかどうかを決定できるようにするプロンプトが表示されます.
コマンド オプション:
-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 が続き、その終了は ; で示されるため、このコマンドの後のセミコロンは必須です. セミコロンはシステムごとに意味が異なることを考慮して、バックスラッシュを追加します. {} 中かっこは、以前の検索で見つかったファイル名を表します。
例:
(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) cp コマンドに exec オプションを付けて実行する
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) 現在のディレクトリで、小文字で始まり、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) ファイル s.md 内のすべてのユーザーの実行権限を増やします
chmod a+x s.md
(2) 元の権限をすべて取り消し、所有者に読み取り権限を付与し、処理情報を出力する
chmod u=r s.md -c
(3) 読み取り、書き込み、および実行 (7) 許可をファイルの所有者に割り当て、読み取り、実行 (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 つの概念を明確にします。パッケージングとは、多数のファイルまたはディレクトリを全体のファイルに変換することを指し、圧縮とは、いくつかの圧縮アルゴリズムによって大きなファイルを小さなファイルに変換することを指します
共通パラメータ:
-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) フォルダとサブファイルの所有者とグループをメールに変更する
chown -cR mail: test/
21.df コマンド
ディスク容量の使用状況を表示します。ハードディスクの占有容量や残り容量などの情報を取得 ファイル名を指定しない場合、現在マウントされているすべてのファイルシステムの空き容量が表示されます。デフォルトでは、環境変数 POSIXLY_CORRECT が指定されていない限り、ディスク容量は 1KB 単位で表示されます。この場合、512 バイト単位で表示されます。
-a 全部文件系统列表
-h 以方便阅读的方式显示信息
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地磁盘
-T 列出文件系统类型
例:
(1) ディスク使用量の表示
df -l
(2) すべてのファイルシステムとそのタイプを読みやすい方法で一覧表示する
df -haT
22.デュコマンド
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 によって作成されるリンク (リンク) により、ディスク使用量が削減されます.
リンクの分類: ソフトウェア リンクとハード リンク
ソフトリンク:
1. ソフトリンクはパスの形で存在します。Windows オペレーティング システムのショートカットに似ています
2. ソフト リンクはファイル システムをまたがることができますが、ハード リンクはできません
3. ソフト リンクは存在しないファイル名にリンクできます
4. ソフト リンクはディレクトリをリンクできます
ハード リンク:
1. ハード リンクは、ファイルのコピーの形で存在します。しかし、実際のスペースは必要ありません。
2. ディレクトリのハード リンクを作成することはできません.
3. ハード リンクは同じファイル システム内でのみ作成できます
. 注:
1 つ目: ln コマンドは、リンクされた各ファイルの同期を維持します。つまり、どのファイルを変更しても、他のファイルは同じ変更を受けます; 2 つ目: ln リンクはソフト リンクとハード リンクに分けられます 2 つ目、ソフト リンク
はln –s ソース ファイル ターゲット ファイル。選択した場所にあるファイルのミラー イメージのみを生成し、ディスク領域を占有しません。ハード リンク ln ソース ファイル ターゲット ファイル。パラメータ -s なし。ソース ファイルと同じサイズが、選択した場所に生成されます。ソフト リンクでもハード リンクでも、ファイルは同期的に変化し続けます。
3 番目: 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.日付コマンド
システムの日付と時刻を表示または設定します。
コマンド パラメータ:
-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 月の最初、中間、および最後の 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(ワードカウント)の機能は、指定したファイルのバイト数、ワード数、行数をカウントし、統計結果を出力することです
コマンド形式:
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 (プロセス ステータス)、現在実行中のプロセスのステータスを表示するために使用されます。1 回限りのビュー。動的な継続的な結果が必要な場合は、top を使用します。
Linux のプロセスには 5 つの状態があります。
- 実行中 (実行中または実行キューで待機中)
- 割り込み (スリープ、ブロック、特定の条件の形成または信号の受信を待機)
- 割り込み不可 (シグナルを受信した後は起動せず、実行できません。プロセスは割り込みが発生するまで待機する必要があります)
- ゾンビ (プロセスは終了しましたが、プロセス記述子は、親プロセスが wait4() システム コールを呼び出して解放するまで存在します)
- 停止 (プロセスは、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.トップコマンド
プロセス 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 日 16:44 — システムは 70 日と 16 時間 44 分間実行されています (この期間中、システムは再起動されていません!)
2 ユーザー — 現在 2 人のユーザーがシステムにログインしています
負荷平均: 1.15、1.42、1.44 — 負荷平均の後ろにある 3 つの数字は、それぞれ 1 分、5 分、15 分の負荷条件です。
負荷平均データは、アクティブなプロセスの数を 5 秒ごとに確認し、特定のアルゴリズムに従って計算された値です。この数を論理 CPU の数で割ると、結果が 5 より大きい場合、システムが過負荷になっていることを示します。
2 行目の Tasks — タスク (プロセス)、具体的な情報は次のとおりです。
システムには合計 206 のプロセスがあり、そのうち 1 つは実行中、205 はスリープ状態 (スリープ)、0 は停止状態、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 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 — 进程名称(命令名/命令行)
トップインタラクティブコマンド
h 显示top交互命令帮助信息
c 切换显示命令名称和完整命令行
m 以内存使用率排序
P 根据CPU使用百分比大小进行排序
T 根据时间/累计时间进行排序
W 将当前设置写入~/.toprc文件中
o或者O 改变显示项目的顺序
30. キルコマンド
指定されたシグナルを対応するプロセスに送信します。モデルを指定しないと、指定されたプロセスを終了するために 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.フリーコマンド
物理メモリ、対話領域メモリ (スワップ)、カーネル バッファ メモリなど、システム メモリの使用状況を表示します。
コマンド パラメータ:
-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s<间隔秒数> 持续显示内存
-t 显示内存使用总合
例:
(1) メモリ使用量の表示
free
free -k
free -m
(2) メモリ使用量情報を合計で表示
free -t
(3) メモリ使用量を定期的に問い合わせる
free -s 10