GNU/Linux チュートリアル
GNU / Linuxを使い始める
サーチ…
こんにちは世界
端末に次のコードを入力し、Enterキーを押します。
echo "Hello World"
これにより、次の出力が生成されます。
Hello World
ファイル操作
ファイルとディレクトリ(別の名前のフォルダ)はLinuxの中心であるため、コマンドラインからファイルを作成、表示、移動、削除することは非常に重要であり、非常に強力です。これらのファイル操作コマンドを使用すると、グラフィカルファイルエクスプローラが実行するのと同じタスクを実行できます。
myFile
というmyFile
空のテキストファイルを作成します。
touch myFile
myFile
をmyFirstFile
myFile
しmyFirstFile
。
mv myFile myFirstFile
ファイルの内容を表示する:
cat myFirstFile
ページャを使ってファイルの内容を見る(一度に1画面分):
less myFirstFile
ファイルの最初の数行を表示する:
head myFirstFile
ファイルの最後の数行を表示する:
tail myFirstFile
ファイルを編集する:
vi myFirstFile
現在の作業ディレクトリにあるファイルを確認してください:
ls
myFirstDirectory
という空のディレクトリを作成します。
mkdir myFirstDirectory
マルチパスディレクトリを作成する:(srcとmyFirstDirectoryの2つのディレクトリを作成する)
mkdir -p src/myFirstDirectory
ファイルをディレクトリに移動します。
mv myFirstFile myFirstDirectory/
ファイルの名前を変更することもできます:
user@linux-computer:~$ mv myFirstFile secondFileName
現在の作業ディレクトリをmyFirstDirectory
変更しmyFirstDirectory
。
cd myFirstDirectory
ファイルを削除する:
rm myFirstFile
親ディレクトリに移動し..
( ..
と表示され..
)。
cd ..
空のディレクトリを削除する:
rmdir myFirstDirectory
空でないディレクトリを削除します(ファイルや他のディレクトリを含む)。
rm -rf myFirstDirectory
ディレクトリを削除するときに./
not /
を削除すると、ファイルシステム全体が消去されることに注意してください。
ファイル/ディレクトリの詳細
ls
コマンドには、より多くの情報を表示するために一緒に使用できるいくつかのオプションがあります。
詳細/権利
l
オプションは、ファイルのパーミッション、サイズ、最終更新日を表示します。ルートディレクトリにtest
という名前のディレクトリとsomeFile
というファイルが含まれている場合は、次のコマンドを実行します。
user@linux-computer:~$ ls -l
何かのように出力しますか?
-rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4096 Jul 21 07:18 test
アクセス権はdrwxrwxrwx
形式です。最初の文字は、ファイルタイプを表すd
、それがディレクトリだ場合-
そう。次の3つのrwx
は、ユーザーがファイルに対して持っているアクセス許可です。次の3つは、グループがファイルに対して持つアクセス許可です。最後の3つは、他のユーザーがファイルに対して持つアクセス許可です。
rwx
のr
は、ファイルを読み取ることができるrwx
表し、 w
はファイルを変更できる場合を表し、 x
はファイルを実行できるかどうかを表します。権限が与えられていない場合、 -
はr
、 w
、またはx
代わりになります。
だから、上からuser
の読み取りおよび変更できsomeFile.txt
そのグループは、読み取り専用の権限を持っています。
権利を変更するには、sudo権限を持っている場合はchmod ### fileName
コマンドを使用できます。 r
は4の値で表され、 w
は2で表され、 x
は1で表されます。したがって、内容をtest
ディレクトリに変更できるようにするには
Owner rwx = 4+2+1 = 7
Group r-x = 4+0+1 = 5
Other r-x = 4+0+1 = 5
コマンド全体が
chmod 755 test
今、 ls -l
を実行すると、次のようなものが表示されます
drwxr-xr-x 2 user users 4096 Jul 21 07:20 test
読み取り可能なサイズ
l
オプションと組み合わせて使用すると、 h
オプションは人間が読めるファイルサイズを示します。ランニング
user@linux-computer:~$ ls -lh
出力しますか?
total 4166
-rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4.0K Jul 21 07:18 test
隠された
隠しファイルを表示するには、 a
オプションを使用します。例えば
user@linux-computer:~$ ls -a
リストするかもしれない
.profile
someFile.txt
test
ディレクトリ全体のサイズ
現在のディレクトリのサイズを表示するには、 s
オプションを使用します( h
オプションは、サイズをより読みやすくするためにも使用できます)。
user@linux-computer:~$ ls -s
出力
total 4166
someFile.txt test
再帰的なビュー
test
ディレクトリにanotherFile
というファイルがあり、それをルートフォルダから見たい場合は、 R
オプションを使用して再帰ツリーをリストすることができます。
user@linux-computer:~$ ls -R
出力
.:
someFile.txt test
./test:
anotherFile
基本的なLinuxユーティリティ
Linuxはほとんどすべてのタスクのコマンドを持っており、そのほとんどは直感的で簡単に解釈されます。
Linuxでのヘルプの入手
コマンド | ユーザビリティ |
---|---|
man <name> | <name>のマニュアルページを読んでください。 |
man <section> <name> | 与えられたセクションに関連する<name>のマニュアルページを読んでください。 |
man -k <editor> | マニュアルページに<editor>キーワードが含まれているすべてのソフトウェアを出力します。 |
man -K <keyword> | <keyword>を含むすべてのマニュアルページを出力します。 |
apropos <editor> | 1行記述が単語エディタに一致するすべてのアプリケーションを出力します。アプリケーションの名前を呼び出すことができない場合は 、このコマンドを使用します。 |
help | Bashシェルでは、利用可能なすべてのbashコマンドのリストが表示されます。 |
help <name> | Bashシェルでは、<name> bashコマンドに関する情報が表示されます。 |
info <name> | <name>に関するすべての情報を表示します。 |
dpkg -l | Debianベースのシステムにインストールされているすべてのパッケージのリストを出力します。 |
dpkg -L packageName | Debian上の特定のパッケージのインストールされたファイルとパスの詳細を一覧表示します。 |
dpkg -l | grep -i <edit> | インストールされているすべての.debパッケージを、<edit>でケースに関係なく返します。 |
less /var/lib/dpkg/available | 利用可能なすべてのパッケージの説明を返します。 |
whatis vim | vimの1行の記述を列挙します。 |
<command-name> --help | <tool-name>に関する使用状況情報を表示します。場合によっては、 command -h も機能しますが、すべてのコマンドでは機能しません。 |
Linuxの世界で誰が誰ですか?
コマンド | ユーザビリティ |
---|---|
hostname | システムのホスト名を表示します。 |
hostname -f | システムの完全修飾ドメイン名(FQDN)を表示します。 |
passwd | 現在のユーザーのパスワードを変更します。 |
whoami | 端末にログインしているユーザーのユーザー名。 |
who | 現在ユーザーとしてログインしているすべてのユーザーのリスト。 |
w | 現在のシステム状態、時間、期間、システムに現在ログインしているユーザーのリスト、およびその他のユーザー情報を表示します。 |
last | 最近誰がシステムを使用したか |
last root | ユーザーが最後にrootとしてログインしたのはいつですか。 |
lastb | システムへの不正なログイン試行をすべて表示します。 |
chmod | アクセス権の変更 - ファイルまたはディレクトリの読み取り、書き込み、実行。 |
プロセス関連情報
コマンド | ユーザビリティ |
---|---|
top | 現在のシステムリソース使用量でソートされたすべてのプロセスを一覧表示します。継続的に更新されたプロセスの表示を表示します(デフォルトは3秒)。 q キーを使用して上部を終了します。 |
ps | 現在のシェルセッションで現在実行中のプロセスを一覧表示する |
ps -u root | ルートが実行されているすべてのプロセスとコマンドを一覧表示する |
ps aux | 現在のシステム上のすべてのユーザーによるすべてのプロセスを一覧表示する |
ファイル管理コマンド
Linuxは現在のディレクトリと親ディレクトリにいくつかの規則を使用しています。これは初心者のために少し混乱することができます。
あなたがLinuxのターミナルにいるときはいつでも、あなたは現在の作業ディレクトリと呼ばれる場所にいます。多くの場合、コマンドプロンプトには、完全な作業ディレクトリか、そのディレクトリの最後の部分だけが表示されます。プロンプトは次のようになります。
user@host ~/somedir $
user@host somedir $
user@host /home/user/somedir $
あなたの現在の作業ディレクトリは/home/user/somedir
です。
Linuxでは、 ..
は親ディレクトリを表し..
.
現在のディレクトリを表します。
したがって、現在のディレクトリが/home/user/somedir
場合、 cd ../somedir
は作業ディレクトリを変更しません。
以下の表は、最もよく使用されるファイル管理コマンドのリストです
ディレクトリのナビゲーション
コマンド | ユーティリティ |
---|---|
pwd | 現在の作業ディレクトリのフルパスを取得します。 |
cd - | 作業していた最後のディレクトリに移動します。 |
cd ~ またはcd | 現在のユーザーのホームディレクトリに移動します。 |
cd .. | 現在のディレクトリの親ディレクトリに移動します( cd と.. 間のスペースに気をつけてください) |
ディレクトリ内のファイルのリスト表示
コマンド | ユーティリティ |
---|---|
ls -l | カレントディレクトリのファイルとディレクトリをロング(テーブル)形式で表示します(わかりやすくするために-lとlsを併用することを推奨します)。 |
ls -ld dir-name | その内容ではなく、ディレクトリdir-name に関する情報を表示します。 |
ls -a | 隠しファイルを含むすべてのファイルを一覧表示します(Linuxではa . 始まるファイル名は隠しファイルです)。 |
ls -F | ファイル名の末尾に( * は実行可能ファイル、 / はディレクトリ、 @ はシンボリックリンク、 = はソケット、|は名前付きパイプを意味し、 > はドアを意味する)記号を付加します。 |
ls -lt | 最後に変更されたファイルをリストし、最後に変更されたファイルを一番上に表示します(-lオプションは、読みやすいように長い形式を提供します)。 |
ls -lh | 人間が判読可能な形式でファイルサイズを一覧表示します。 |
ls -lR | すべてのサブディレクトリを再帰的に表示します。 |
tree | 現在のディレクトリから始まるファイルシステムのツリー表現を生成します。 |
ファイル/ディレクトリの作成、コピー、削除
コマンド | ユーティリティ |
---|---|
cp -p source destination | ファイルをsource からコピー先にコピーします。 -pは保存を表します。ファイルの所有者、タイムスタンプ、グループ、権限などのコピー中に、ファイルの元の属性を保持します。 |
cp -R source_dir destination_dir | ソースディレクトリを指定された宛先に再帰的にコピーします。 |
mv file1 file2 | Linuxでは、 名前変更コマンドはありません。したがって、 mv はfile1をfile2に移動/名前変更します。 |
rm -i filename | すべてのファイルを削除する前にあなたに確認を求めます。 あなたがLinuxコマンドラインの新しいユーザである場合は、常にrm -i 使用する必要がありrm -i 。複数のファイルを指定できます。 |
rm -R dir-name | ディレクトリdir-name 再帰的に削除します。 |
rm -rf dir-name | ディレクトリdir 再帰的に削除し、存在しないファイルは無視し、何もプロンプトを表示しません。 このコマンドを慎重に使用してください!複数のディレクトリを指定できます。 |
rmdir dir-name | ディレクトリdir-name 空の場合は削除されます。このコマンドは、空のディレクトリのみを削除できます。 |
mkdir dir-name | ディレクトリdir-name 作成します。 |
mkdir -p dir-name/dir-name | ディレクトリ階層を作成します。存在しない場合、必要に応じて親ディレクトリを作成します。複数のディレクトリを指定できます。 |
touch filename | ファイルfilename が存在しない場合はそれを作成し、そうでない場合はファイルのタイムスタンプを現在の時間に変更します。 |
ファイル/ディレクトリのアクセス許可とグループ
コマンド | ユーティリティ |
---|---|
chmod <specification> filename | ファイルのアクセス許可を変更します。仕様= u ユーザ、 g 基、 o の他、 + 追加許可、 - 削除、 r 読み出し、 w 書き込み、 x 実行します。 |
chmod -R <specification> dir-name | 再帰的にディレクトリのアクセス許可を変更します。ディレクトリの権限とそのディレクトリ内のすべての権限を変更するには、このコマンドを使用します。 |
chmod go=+r myfile | 所有者とグループの読み取り権限を追加します。 |
chmod a +rwx myfile | すべてのユーザーにmyfile 読み取り、書き込み、または実行を許可します。 |
chmod go -r myfile | グループなどからの読取り権限を削除します。 |
chown owner1 filename | ファイルの所有権をユーザーowner1 変更します。 |
chgrp grp_owner filename | ファイルfilename プライマリグループの所有権をグループgrp_owner ます。 |
chgrp -R grp_owner dir-name | ディレクトリdir-name プライマリグループの所有権をgrp_owner 再帰的にグループdir-name します。ディレクトリとそのディレクトリ内のすべてのグループの所有権を変更するには、このコマンドを使用します。 |
便利なショートカット
ターミナルの使用
このドキュメントの例では、POSIX準拠のシェル( bash 、 sh 、 zsh 、 kshなど )を使用していることを前提としています。
端末を使用してGNU / Linux機能の大部分が達成されます。 Linuxのほとんどのディストリビューションには、ユーザがデスクトップ環境からシェルとやりとりできる端末エミュレータが含まれています。シェルは、ユーザーが入力したコマンドを実行するコマンドラインインタプリタです。 Bash (Bourne Again SHell)は、多くのLinuxディストリビューションで共通のデフォルトシェルであり、macOSのデフォルトシェルです。
これらのショートカットは、 emacsのキーバインドでBashを使用している場合に機能します(デフォルトで設定されています):
オープンターミナル
- Ctrl + Alt + Tまたはスーパー+ T
カーソル移動
- Ctrl + A現在入力している行の先頭に移動します。
- Ctrl + E現在入力している行の最後に移動します。
- Ctrl + XX行頭とカーソルの現在位置の間を移動します。
- Alt + Fカーソルを現在の行の1ワード分だけ前に移動します。
- Alt + Bカーソルを現在の行の1ワード後ろに移動します。
- Ctrl + F現在の行の1文字分だけカーソルを移動します。
- Ctrl + Bカーソルを現在の行の1文字後方に移動します。
テキスト操作
- Ctrl + U現在の位置から行の先頭まで線を切り取り、クリップボードに追加します。あなたがラインの終わりにいる場合は、ライン全体をカットしてください。
- Ctrl + K現在の位置から行末までの行をカットし、クリップボードに追加します。あなたがラインの始めにいるならば、ライン全体をカットします。
- Ctrl + Wカーソルの前の単語を削除し、クリップボードに追加します。
- Ctrl + Y最近削除したクリップボードの最後のものを貼り付けます( 現在のカーソル位置で最後の削除を元に戻します)。
- Alt + T最後の2つの単語をカーソルの前に入れ替えます。
- Alt + Lカーソルから単語の最後まで小文字にします。
- Alt + Uカーソルを単語の最後まで大文字にします。
- Alt + Cカーソルから始まる単語の末尾まで大文字にします(カーソルが単語の先頭にある場合は単語全体)。
- Alt + Dカーソルから始まる単語の終わりまで削除します(カーソルが単語の先頭にある場合は単語全体)。
- Alt +。前のコマンドで書かれた最後の単語を表示します。
- Ctrl + Tカーソルの前の最後の2文字を入れ替えます。
履歴へのアクセス
- Ctrl + R以前に使用したコマンドを検索できます。
- Ctrl + Gコマンドを実行せずに履歴検索モードを終了します。
- Ctrl + J現在の一致したコマンドを実行せずにコマンドラインにコピーできるので、コマンドを実行する前に変更することができます。
- Alt + Rあなたがあなたの履歴から引っ張ったコマンドへの変更を編集した場合は元に戻します。
- Ctrl + P最後に実行されたコマンドを表示します。つまり、コマンド履歴に戻ることができます(上矢印と同様)。
- Ctrl + N次に実行されたコマンドを表示します。つまり、コマンド履歴を順方向に進んでいきます(下矢印と同様)。
ターミナルコントロール
- Ctrl + Lクリアコマンドと同様に、画面をクリアします。
- Ctrl + Sすべての出力を画面に停止します。長い出力のコマンドを実行する場合に便利です。しかし、これは実行コマンドを停止しません。
- Ctrl + Q Ctrl + Sで停止後、画面に出力を再開します。
- Ctrl + C現在実行中のプロセスを終了し、プロンプトを返します。
- Ctrl + D exitまたはlogoutコマンドと同様に、現在のシェルセッションからログアウトします。いくつかのコマンドでは、ファイルの終わりに達したことを示すために、ファイルの終わりとして機能します。
- Ctrl + Zシェルプロンプトを返す現在実行中のフォアグラウンドプロセスを中断(一時停止)します。そのプロセスをバックグラウンドで実行できるように
bg
コマンドを使用できます。プロセスをフォアグラウンドに戻すには、fg
コマンドを使用します。すべてのバックグラウンド・プロセスを表示するには、jobs
コマンドを使用します。 - Tabファイルとディレクトリ名を自動補完します。
- タブ タブは、入力した文字が一意のファイル名またはディレクトリ名に一致しないすべての可能性を示しています。
特殊文字
- Ctrl + H Backspaceと同じです。
- Ctrl + J Return(歴史的に改行)と同じです。
- Ctrl + M Returnと同じです(歴史的にはキャリッジリターン)。
- Ctrl + I Tab と同じです。
- Ctrl + Gベル文字。
- Ctrl + @ Null文字。
- Altキー修飾子に相当するEsc Deadkey 。
ターミナルを閉じる
- Ctrl + Shift + Wターミナルタブを閉じます。
- Ctrl + Shift + Q端末全体を閉じます。
あるいは、 set -o vi
を使用して、 bashのviキーバインディングに切り替えることもできます。 emacsのキーバインドに戻すには、 set -o emacs
を使用します。
名前/コンテンツのパターンでファイルを検索する
Linuxコマンドライン(シェル)を使用している人の一般的な作業は、特定の名前または特定のテキストを含むファイル/ディレクトリを検索することです。これを達成するには、次の2つのコマンドがあります。
名前でファイルを検索する
find /var/www -name '*.css'
これにより、 .css
で終わる/var/www
配下のすべてのファイルに完全パス/ファイル名が出力され.css
。出力例:
/var/www/html/text-cursor.css
/var/www/html/style.css
詳細については:
man find
テキストを含むファイルを見つける
grep font /var/www/html/style.css
これにより、指定されたファイルにパターンfont
を含むすべての行が出力されます。出力例:
font-weight: bold;
font-family: monospace;
もう一つの例:
grep font /var/www/html/
これはあなたが望むようには機能しません。あなたは:
grep: /var/www/html/: Is a directory
-R
オプションを使用してgrep
再帰的に動作させる必要があります。
grep -R font /var/www/html/
こんにちは!この出力を確認してください:
/var/www/html/admin/index.php: echo '<font color=red><b>Error: no dice</b></font><br/>';
/var/www/html/admin/index.php: echo '<font color=red><b>Error: try again</b></font><br/>';
/var/www/html/style.css: font-weight: bold;
/var/www/html/style.css: font-family: monospace;
grep
が複数のファイルとマッチしている場合、マッチした行の先頭にファイル名がgrep
いることに注意してください。必要に応じて-h
オプションを使用して-h
することができます。
詳細については:
man grep