よく使用されるシステムコマンド
-
echo [オプション] [出力コンテンツ]: コンテンツの出力に使用されます
-
-n: 出力後に行末の改行記号を解除します(つまり、内容の出力後に改行しません)。
[root@linuxprobe network-scripts]# echo this is a test this is a test [root@linuxprobe network-scripts]# echo "the root path is $HOME" the root path is /root
-
-
ifconfig はネットワーク デバイスの表示と構成に使用されます
-
ctrl+c: 現在のプログラムの実行を強制的に中断します。
-
ctrl+z: タスクを中止します (一時停止の意味) が、タスクは終了しておらず、まだ処理中であり、一時停止状態が維持されているだけです。
-
top:
各プロセスの CPU 使用率を表示するコマンド。デフォルトでは、CPU 使用率で並べ替えられます。
作業ディレクトリ切り替えコマンド
-
pwd は、ユーザーが現在いるディレクトリを表示します。
-
cd ユーザーは作業パスを切り替えます。
-
cd - 最後にいたディレクトリに戻ります
-
cd .. 上位ディレクトリに入る
-
cd ~ 現在のユーザーのホームディレクトリに戻ります
-
-
ls はディレクトリ内のファイル情報を表示します
-
ls -a すべてのファイルを表示します (隠しファイルを含む)
-
ls -l ファイルの属性、サイズ、その他の情報を表示します
-
テキスト編集コマンド
-
cat : プレーン テキスト ファイル (内容が少ない) を表示します
-
cat -n はテキストコンテンツを表示するときに行番号を表示します
-
-
詳細 プレーン テキスト ファイルを表示します (コンテンツが多い場合は、スペース バーまたは Enter キーを使用してページをめくることができます)
-
head プレーンテキスト文書の最初の N 行を表示します
[root@linuxprobe ~]# head -20 initial-setup-ks.cfg #version=RHEL7 # X Window System configuration information xconfig --startxonboot # License agreement eula --agreed
-
tail プレーン テキスト ドキュメントの最後の N 行を表示するか、コンテンツを継続的に更新します
-
tail -n 20 ファイル名: ドキュメント内のデータの最後の 20 行を表示します。
[root@linuxprobe ~]# tail -20 initial-setup-ks.cfg # Partition clearing information clearpart --none --initlabel %packages
-
tail -f filename: ファイルの内容を継続的に更新します。
[root@linuxprobe ~]# tail -f /var/log/messages Feb 8 20:09:03 linuxprobe dbus[1039]: [system] Successfully activated service 'org.freedesktop.PackageKit' Feb 8 20:10:01 linuxprobe systemd: Starting Session 3 of user root. Feb 8 20:10:01 linuxprobe systemd: Started Session 3 of user root.
-
-
tr ユーザーはテキスト ファイル内の文字列を置き換えます
[root@linuxprobe ~]# cat anaconda-ks.cfg|tr [a-z] [A-Z] #VERSION=RHEL7 # SYSTEM AUTHORIZATION INFORMATION AUTH --ENABLESHADOW --PASSALGO=SHA512
-
wc ユーザーは、指定されたテキストの行数、単語数、およびバイト数をカウントします。
-
wc -l は行数のみを表示します
-
wc -w は単語数のみを表示します
-
wc -c はバイト数のみを表示します
[root@linuxprobe ~]# wc -l /etc/passwd 38 /etc/passwd
-
-
stat ファイルの特定のストレージ情報と時刻を表示します。
-
Cut [parameter] text: 列ごとにテキスト文字列を抽出するために使用されます。
[root@linuxprobe ~]# head -n 2 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [root@linuxprobe ~]# cut -d: -f1 /etc/passwd root bin daemon adm
-
diff は、複数のテキスト間の差異を比較するために使用されます。
-
diif -brief は 2 つのファイルが同じかどうかを確認するために使用されます
-
diff -c 複数のファイル間の差異を詳細に比較します。
-
ファイルディレクトリ管理コマンド
-
タッチすると空のファイルが作成されるか、ファイルの時刻が設定されます
-
touch ファイル名: 空のファイルを作成します
-
touch -a は読み取り時間のみを変更します
-
touch -m は変更時間のみを変更します
-
touch -d は読み取り時間と変更時間の両方を変更します
-
-
mkdir は空のディレクトリを作成します
-
mkdir -p はネストされたフォルダーを再帰的に作成します
[root@linuxprobe ~]# mkdir -p a/b/c [root@linuxprobe ~]# cd a [root@linuxprobe a]# ls b
-
-
cp [オプション] ソースファイル ターゲットファイル: ファイルまたはディレクトリをコピーします
-
cp -p 元のファイル属性を保持します
-
cp -d ファイルがリンクの場合、リンクされたファイルの属性が保持されます。
-
cp -r 再帰的連続コピー、ディレクトリに使用
-
cp -i 対象ファイルが存在する場合、上書きするかどうかを尋ねます
-
cp -a は -pdr と同等です (pdr は上記のオプション パラメータです)
[root@linuxprobe ~]# cp hello-world.txt first-test.txt [root@linuxprobe ~]# ls a anaconda-ks.cfg Desktop Documents Downloads first-test.txt hello-world.txt
-
-
mv [オプション] ソース ファイル [宛先パス|宛先ファイル名]: ファイルの切り取りまたはファイル名の変更に使用されます。
[root@linuxprobe ~]# mv first-test.txt second.txt [root@linuxprobe ~]# ls a anaconda-ks.cfg Desktop Documents Downloads hello-world.txt initial-setup-ks.cfg linuxtest Music Pictures Public second.txt
-
rm はファイルまたはディレクトリを削除するために使用されます
-
rm -f ファイルを強制的に削除します (デフォルトでは、削除するかどうかを尋ねられます)
-
rm -r はディレクトリを再帰的に削除します
[root@linuxprobe ~]# rm second.txt rm: remove regular empty file ‘second.txt’? n [root@linuxprobe ~]# ls a anaconda-ks.cfg Desktop Documents Downloads hello-world.txt initial-setup-ks.cfg linuxtest Music Pictures Public second.txt Templates Videos [root@linuxprobe ~]# rm -f second.txt [root@linuxprobe ~]# ls a anaconda-ks.cfg Desktop Documents Downloads hello-world.txt initial-setup-ks.cfg linuxtest Music Pictures Public Templates Videos
-
-
file はファイルの種類を表示するために使用されます
[root@linuxprobe ~]# file anaconda-ks.cfg anaconda-ks.cfg: ASCII text [root@linuxprobe ~]# file /dev/sda /dev/sda: block special
パッケージ化、圧縮、検索コマンド
-
tar [オプション] [ファイル]: ファイルのパック、圧縮、または解凍
-
tar -c は圧縮ファイルを作成します
-
tar -x は圧縮ファイルを解凍します
-
tar -t 圧縮パッケージ内のファイルを表示します
-
tar -z (Gzip 圧縮または解凍)
-
tar -j (bzip2 圧縮または解凍)
-
tar -v は圧縮または解凍プロセスを表示します
-
tar -f ターゲットファイル名
-
tar -p は、元のファイルの権限と属性を保持します。
-
tar -P は絶対パスを使用して圧縮します
-
tar -C は解凍ディレクトリを指定します
例: /etc ディレクトリを gzip 形式で圧縮し、etc.tar.gz という名前を付けます。
[root@linuxprobe ~]# tar -czvf etc.tar.gz /etc tar: Removing leading `/' from member names /etc/ /etc/fstab /etc/crypttab /etc/mtab /etc/fonts/ ...... [root@linuxprobe ~]# ls a anaconda-ks.cfg Desktop Documents Downloads etc.tar.gz hello-world.txt
上記でパッケージ化された圧縮ファイルを指定したディレクトリ /root/etc に解凍します。
[root@linuxprobe ~]# tar -czvf etc.tar.gz /etc tar: Removing leading `/' from member names /etc/ /etc/fstab /etc/crypttab /etc/mtab /etc/fonts/ /etc/fonts/conf.d/ ......
-
-
grep [オプション] [ファイル]: テキスト内のキーワード検索を実行し、一致した結果を表示するために使用されます。
-
-b 実行可能ファイル (バイナリ) をテキスト ファイル (txt) として検索します
-
-c は見つかった行数のみを表示します
-
-大文字と小文字を無視します
-
-n は行数を表示します
-
-v 逆選択。キーワードにヒットしない行を実際にリストします。
[root@linuxprobe ~]# grep /sbin/nologin /etc/passwd bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
-
-
find [検索パス] 検索条件操作: 指定した条件に従ってファイルを検索します。
-
-name 一致する名前
-
-perm 一致権限
-
-user が所有者と一致する
-
-group はすべてのグループに一致します
-
-mtime -n +n は、変更されたコンテンツの時刻と一致します (-n は入力された期間内を意味し、+n は n 日前を意味します)
-
-atime -n +n はアクセス時間に一致します
-
--type b/d/c/p/l/f はファイル タイプに一致します (文字はデバイス、ディレクトリ、キャラクタ デバイス、パイプ、リンク ファイル、テキスト ファイルを順に表します)
-
-prune ファイルを無視する
-
検索結果をさらに処理するための -exec コマンド
[root@linuxprobe ~]# find /etc -name "host*" -print /etc/avahi/hosts /etc/host.conf /etc/hosts /etc/hosts.allow
-
リダイレクトコマンド
コンセプト
標準入力(STDIN、ファイル記述子 0):
デフォルトでは、入力はキーボードから行われますが、他のファイルやコマンドから入力することもできます。
標準出力(STDOUT、ファイル記述子は 1):
デフォルトの出力は画面に出力されますが、ファイルに出力することもできます。
エラー出力(STDERR、ファイル記述子は 2):
デフォルトの画面出力
リダイレクトコマンド
-
入力リダイレクト
-
command <file: ファイルをコマンドの標準入力として使用します
-
コマンド << Decomposer: 標準入力から読み取り、区切り文字が見つかるまで停止します
-
コマンド <file1>file2: file1 はコマンドへの標準入力として機能し、標準出力は file2 に送られます。
-
-
出力リダイレクト
-
コマンド > ファイル: ファイルへの標準出力 (元のファイルの内容をクリア)
-
コマンド 2 > ファイル: エラーをファイルに出力します (元のファイルの内容をクリアします)
-
コマンド >> ファイル: ファイルへの標準出力 (元のファイルの内容を追加)
-
コマンド 2 >> ファイル: エラーをファイルに出力します (元のファイルの後に追加します)
-
Command>>File2>&1: 標準出力とエラー出力をファイルに書き込みます (元のコンテンツに追加した後)
-
コマンド &>> ファイル: e と同じ機能
標準出力モードの場合、ファイル記述子 1 は省略して書き込めませんが、エラー出力用のファイル記述子 2 は記述する必要があります。
例: 情報をファイルに出力する
[root@linuxprobe ~]# man bash > hello.txt [root@linuxprobe ~]# cat hello.txt BASH(1) General Commands Manual BASH(1) NAME bash - GNU Bourne-Again SHell
[root@linuxprobe ~]# echo "welcome to my world" > hello.txt [root@linuxprobe ~]# cat hello.txt welcome to my world
[root@linuxprobe ~]# ls -l etc.tar.gz -rw-r--r--. 1 root root 8596806 Feb 13 14:50 etc.tar.gz [root@linuxprobe ~]# ls -l etc.tar.gz > hello.txt [root@linuxprobe ~]# cat hello.txt -rw-r--r--. 1 root root 8596806 Feb 13 14:50 etc.tar.gz
エラーメッセージをファイルに書き込む
[root@linuxprobe ~]# ls -l linuxprobe ls: cannot access linuxprobe: No such file or directory [root@linuxprobe ~]# ls -l linuxprobe 2 > hello.txt ls: cannot access linuxprobe: No such file or directory ls: cannot access 2: No such file or directory [root@linuxprobe ~]# ls -l linuxprobe 2> hello.txt [root@linuxprobe ~]# cat hello.txt ls: cannot access linuxprobe: No such file or directory
-
-
パイプコマンド
-
コマンド A | コマンド B: コマンド A によって出力された通常のデータをコマンド B の標準入力として扱います
例:ログイン制限されているユーザーを検索し、テキスト行数をカウントする
[root@linuxprobe ~]# grep "/sbin/nologin" /etc/passwd | wc -l 33
-
-
コマンドラインのワイルドカード
-
*: 0 個以上の文字の一致を表します
-
?: 単一の文字に一致します
-
[0-9]: 0 ~ 9 の単一の数字と一致します。
-
[abc]: a、b、c の 3 文字のいずれかと一致します。
[root@linuxprobe ~]# ls -l /dev/sda* brw-rw----. 1 root disk 8, 0 Feb 13 2022 /dev/sda brw-rw----. 1 root disk 8, 1 Feb 13 2022 /dev/sda1 brw-rw----. 1 root disk 8, 2 Feb 13 2022 /dev/sda2 [root@linuxprobe ~]# ls -l /dev/sda? brw-rw----. 1 root disk 8, 1 Feb 13 2022 /dev/sda1 brw-rw----. 1 root disk 8, 2 Feb 13 2022 /dev/sda2 [root@linuxprobe ~]# ls -l /dev/sda[0-9] brw-rw----. 1 root disk 8, 1 Feb 13 2022 /dev/sda1 brw-rw----. 1 root disk 8, 2 Feb 13 2022 /dev/sda2 [root@linuxprobe ~]# ls -l /dev/sda[135] brw-rw----. 1 root disk 8, 1 Feb 13 2022 /dev/sda1
-
-
よく使用されるエスケープ文字
-
\: バックスラッシュの後の変数を単純な文字列にします
-
": 中のすべての変数を単純な文字列にエスケープします。
-
"": エスケープせずに変数の属性を保持します。
-
``: コマンド実行後の結果を返す
[root@linuxprobe ~]# PRICE=5 [root@linuxprobe ~]# echo "Price is $PRICE" Price is 5 [root@linuxprobe ~]# echo "Price is \$$PRICE" Price is $5 [root@linuxprobe ~]# echo `uname -a` Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
-
-
重要な環境変数
-
HOME: ユーザーのホームディレクトリ
-
SHELL: ユーザーが使用しているシェルインタープリタの名前
-
HISTSIZE: 出力されたコマンド履歴レコードの数
-
HISTFILESIZE: 保存された履歴コマンド レコードの数
-
MAIL: 電子メールの保存アドレス
-
LANG: システム言語、言語ファミリー名
-
RANDOM: 乱数を生成します
-
PS1: Bash インタープリタ プロンプト
-
PATH: インタプリタがユーザー実行コマンドを検索するパスを定義します。
-
エディター: ユーザーのデフォルトのテキストエディター
[root@linuxprobe ~]# echo $HOME /root [root@linuxprobe ~]# su - linuxprobe su: user linuxprobe does not exist [root@linuxprobe ~]# echo $HOME /root [root@linuxprobe ~]# su - snow Last login: Sun Feb 6 19:28:32 CST 2022 on :0 [snow@linuxprobe ~]$ echo $HOME /home/snow
-
vimエディタ
Vim 操作の 3 つのモード
-
コマンドモード: カーソルの移動、コピー、貼り付け、削除、テキストの検索などを制御します。
-
入力モード: 通常のテキスト入力
-
最終行モード: ドキュメントを保存または終了し、編集環境を設定します。
a/i は、それぞれカーソルの 1 桁後ろの入力モードとカーソルの現在位置に切り替えます。
o カーソルの下に空行を作成します
Vim でよく使用されるコマンド
-
コマンドモードでよく使うコマンド
-
dd はカーソル下の行を削除します
-
5dd はカーソル位置の 5 行を削除します。
-
yy はカーソルが置かれている行全体をコピーします
-
5yy はカーソルから 5 行をコピーします
-
n は、検索コマンドで見つかった次の文字列を表示します。
-
N は、検索コマンドで見つかった前の文字列を表示します。
-
u 前の操作を元に戻す
-
p 以前に削除した (dd) またはコピーした (yy) データをカーソルの後ろに貼り付けます
-
-
最終行モードでよく使用されるコマンド
-
:w保存
-
:q 終了
-
:q! 強制終了 (ドキュメントへの変更を破棄)
-
:wq! 強制的に保存して終了します
-
:set nu は行番号を表示します
-
:set nonu は行番号を表示しません
-
:コマンド実行変更コマンド
-
:整数でこの行にジャンプします
-
?String テキストの下から上に文字列を検索します。
-
/string は、テキストを上から下に向かって文字列を検索します。
-
参考文献
- 初心者向けチュートリアル
- 「Linux はこう学ぶべきだ」Liu Xun