環境設定#
Linux を学ぶには環境が必要で、仮想マシンを作成し、その上に CentOS システムをインストールして学習します。
仮想マシンのインストール#
VMware15.5
システムのインストール#
CentOS 7
ネットワーク接続の 3 つのモード:
- ブリッジモード:仮想マシンが外部と直接通信できる(IP の衝突が起こりやすい)
- NAT モード:ネットワークアドレス変換モード、仮想マシンが外部システムと通信でき、IP の衝突を引き起こさない
- ホストモード:独立したシステムで、外部と接続しない
仮想マシンのクローン:フォルダを直接コピーします。
仮想マシンのスナップショット:誤操作が発生した場合に元の状態に戻すための管理です。
Vi Vim 入門#
vi テキストエディタは Linux システムに内蔵されています。
Vim はプログラム編集の能力を持ち、Vi の強化版と見なすことができ、フォントの色を使って構文の正しさを識別し、プログラム設計を便利にします。コード補完、コンパイル、エラージャンプなど、プログラミングを便利にする機能が豊富で、プログラマーの間で広く使用されています。
通常モードでは、V でファイルを開くと直接一般モードに入ります(これがデフォルトのモードです)。このモードでは、「上下左右」キーを使用してカーソルを移動し、「文字を削除」または「行全体を削除」を使用してファイルの内容を処理したり、「コピー、ペースト」を使用してファイルデータを処理したりできます。
挿入モードは、L、o、O、a、A、r、R などの任意の文字を押すと入ります。一般的には i を押すだけです。
コマンドラインモードでは、esc を押してからを入力します。このモードでは、関連するコマンドを提供し、読み込み、保存、置換、V を終了、行番号の表示などのアクションを達成します!
wq 書き込み 終了
取り消し:u
- 現在の行をコピーするには yy、現在の行から下の 5 行をコピーするには 5yy、そしてペーストするには(P を入力)
- 現在の行を削除するには dd、現在の行から下の 5 行を削除するには 5dd
- ファイル内で特定の単語を検索するには [コマンドラインで / キーワード、Enter で検索、入力すると次を検索]
- ファイルの行番号を設定し、ファイルの行番号を解除する。[コマンドラインで:set nu と set nonu]
- /etc/profile ファイルを編集し、一般モードでショートカットキーを使用してその文書の最末行 [G] と最首行 [gg] に移動します。
- あるファイルに「helo」と入力し、一般モードで、その動作を取り消すには u を押します。
- /etc/rofile ファイルを編集し、一般モードでカーソルを移動し、20 を入力し、次に shift+g を入力します。
関連管理ファイル:
/etc/passwdファイルは、ユーザーのさまざまな情報を記録します:ユーザー名:パスワード:ユーザー識別子:グループ識別番号:注釈的説明:ホームディレクトリ:ログインシェル
シェルはコマンドのインタプリタを指し、カーネルがユーザーの入力したコマンドに基づいて動作します。
/etc/shadowファイルは、パスワードの設定情報を保存します。
/etc/groupファイルは、グループ設定情報を記録し、Linux に含まれるグループ情報を保持します。
実行レベル#
実行レベルの基本的な説明:
- 0: シャットダウン
- 1: シングルユーザー【失われたパスワードを回復】
- 2: ネットワークサービスのないマルチユーザーステータス
- 3: ネットワークサービスのあるマルチユーザーステータス
- 4: システム未使用、ユーザー用に予約
- 5: グラフィカルインターフェース
- 6: システム再起動
一般的に使用される実行レベルは 3 と 5 で、デフォルトの実行レベルを指定することもできます。
init x 実行レベルを切り替えます。
一、Linux のリモート接続#
1.1 ネットワーク情報設定#
Linux にリモートログイン ——XShell
リモートファイル管理 ——XFtp
2 つのシステムが ping 通しているか確認する:ping 192.168.58.129
192.168.58.129 は仮想マシンの IP アドレスで、ホストで ping 通を確認します。
ip addrで IP アドレスを確認します。
ifconfigで IP アドレスを確認します。
ls /etc/sysconfig/network-scripts/でネットワークカード情報を確認します。
ネットワークカードの IP 設定ファイル名は ifcfg-ens33 です。
vi /etc/sysconfig/network-scripts/ifcfg-ens33で ifcfg-ens33 ファイルの内容を確認します。
ローカルエリアネットワークに基づいてネットワーク情報を設定します。
1.2 ネットワーク接続に必要な設定内容#
DNS=8.8.8.8
DNS1=114.114.114.114
BROADCAST はローカルネットワークのブロードキャストアドレスを設定します。
IPADDR は静的 IP です。
NETMASK はサブネットマスクです。
GATEWAY はゲートウェイまたはルーターアドレスです。
変更後、ネットワークを再起動します:service network restart
ping www.baidu.com
1.3 ファイアウォール関連#
ファイアウォールの状態を確認します:firewall--cmd-stateまたはsystemctl status firewalld.service
ファイアウォールを起動します:systemctl start firewalld.service
ファイアウォールを停止します:systemctl stop firewalld.service
再起動します:systemctl restart firewalld.service
起動時に有効にします:systemctl enable firewalld.service
起動時に無効にします:systemctl disable firewalld.service
起動時に有効かどうかを確認します:systemctl is-.enabled firewalld.service
二、Linux システムのディレクトリ構造#
ディレクトリ構造ツリー#
- /bin:bin は Binaries(バイナリファイル)の略で、このディレクトリには最も頻繁に使用されるコマンドが格納されています。
- /boot:ここには Linux 起動時に使用されるいくつかのカーネルファイルが格納されており、いくつかのリンクファイルやイメージファイルも含まれています。
- /dev:dev は Device(デバイス)の略で、このディレクトリには Linux の外部デバイスが格納されています。Linux ではデバイスへのアクセス方法はファイルへのアクセス方法と同じです。
- /etc: etc は Etcetera(その他)の略で、このディレクトリにはすべてのシステム管理に必要な設定ファイルとサブディレクトリが格納されています。
- /home:ユーザーのホームディレクトリで、Linux では各ユーザーに自分のディレクトリがあり、一般的にそのディレクトリ名はユーザーのアカウント名に基づいています。上の図の alice、bob、eve のように。
- /lib:lib は Library(ライブラリ)の略で、このディレクトリにはシステムの基本的な動的リンク共有ライブラリが格納されており、その役割は Windows の DLL ファイルに似ています。ほぼすべてのアプリケーションがこれらの共有ライブラリを必要とします。
- /lost+found:このディレクトリは通常空で、システムが不正にシャットダウンされた後にいくつかのファイルがここに格納されます。
- /media: Linux システムは自動的にいくつかのデバイスを認識し、例えば USB メモリや光学ドライブなど、認識後、Linux は認識したデバイスをこのディレクトリにマウントします。
- /mnt:システムはこのディレクトリを提供して、ユーザーが他のファイルシステムを一時的にマウントできるようにしています。光学ドライブを /mnt/ にマウントし、そのディレクトリに入ることで光学ドライブの内容を確認できます。
- /opt:opt は optional(オプション)の略で、これはホストに追加のソフトウェアをインストールするためのディレクトリです。例えば、ORACLE データベースをインストールする場合はこのディレクトリに置くことができます。デフォルトでは空です。
- /proc:proc は Processes(プロセス)の略で、/proc は一種の擬似ファイルシステム(つまり仮想ファイルシステム)であり、現在のカーネルの実行状態に関する一連の特殊ファイルが格納されています。このディレクトリは仮想のディレクトリで、システムメモリのマッピングです。このディレクトリに直接アクセスすることでシステム情報を取得できます。
- /root:このディレクトリはシステム管理者、すなわちスーパーユーザーのホームディレクトリです。
- /sbin:s は Super User の意味で、Superuser Binaries(スーパーユーザーのバイナリファイル)の略で、ここにはシステム管理者が使用するシステム管理プログラムが格納されています。
- /selinux:このディレクトリは Redhat/CentOS 特有のもので、Selinux は Windows のファイアウォールに似たセキュリティメカニズムですが、このメカニズムは比較的複雑で、このディレクトリには selinux 関連のファイルが格納されています。
- /srv:このディレクトリにはサービス起動後に必要なデータが格納されます。
- /sys:これは Linux2.6 カーネルの大きな変化です。このディレクトリには 2.6 カーネルで新たに登場したファイルシステムsysfs がインストールされています。sysfs ファイルシステムは以下の 3 つのファイルシステムの情報を統合しています:プロセス情報に関する proc ファイルシステム、デバイスに関する devfs ファイルシステム、擬似端末に関する devpts ファイルシステム。このファイルシステムはカーネルデバイスツリーの直感的な反映です。カーネルオブジェクトが作成されると、それに対応するファイルとディレクトリもカーネルオブジェクトサブシステム内で作成されます。
- /tmp:tmp は temporary(テンポラリ)の略で、このディレクトリは一時的なファイルを格納するために使用されます。
- /usr:usr は unix shared resources(共有リソース)の略で、これは非常に重要なディレクトリで、ユーザーの多くのアプリケーションやファイルがこのディレクトリに格納されています。Windows の program files ディレクトリに似ています。
- /usr/bin:システムユーザーが使用するアプリケーション。
- /usr/sbin:スーパーユーザーが使用する比較的高度な管理プログラムとシステムデーモン。/usr/src:カーネルソースコードのデフォルトの配置ディレクトリ。
- /var:var は variable(変数)の略で、このディレクトリには常に拡張されるものが格納されており、頻繁に変更されるディレクトリをこのディレクトリに配置することが一般的です。さまざまなログファイルを含みます。
- /run:これは一時ファイルシステムで、システム起動以来の情報を格納します。システムが再起動すると、このディレクトリ内のファイルは削除またはクリアされるべきです。システムに var/run ディレクトリがある場合は、それを run に指し示すべきです。
Linux システムには、いくつかの重要なディレクトリがあり、普段は誤って削除したり、内部ファイルを無闇に変更したりしないように注意が必要です。 /etc:上記でも述べたように、これはシステム内の設定ファイルであり、このディレクトリ内のファイルを変更すると、システムが起動しなくなる可能性があります。
/bin、/sbin、/usr/bin、/usr/sbin:これはシステムが予め設定した実行ファイルの配置ディレクトリで、例えば ls は /bin/ls ディレクトリにあります。特に言及すべきは、/bin、/usr/bin はシステムユーザーが使用するコマンド(root 以外の一般ユーザー)であり、/sbin、/usr/sbin は root が使用するコマンドです。
/var:これは非常に重要なディレクトリで、システム上で多くのプログラムが実行されている場合、各プログラムは対応するログを生成し、これらのログはこのディレクトリに記録されます。具体的には /var/log ディレクトリに記録されます。また、メールのデフォルト配置もここにあります。
三、Linux の基本知識ファイルとディレクトリ管理#
絶対パス:パスの書き方は、ルートディレクトリ / から始まります。例えば:/usr/share/doc というディレクトリ。
相対パス:パスの書き方は、/ から始まらないものです。例えば:/usr/share/doc から /usr/share/man に移動する場合、cd ../man と書くことができます。これが相対パスの書き方です。
3.1 ディレクトリを扱うための一般的なコマンド#
ls(ディレクトリをリスト表示)
- -a:すべてのファイル、隠しファイルを含む、ファイル名は先頭に(よく使用される)
- -d:詳細情報を表示(よく使用される)
- -l:ディレクトリ属性を確認(よく使用される)
- -h:詳細なファイルサイズを表示するために使用
mkdir(新しいディレクトリを作成)
mkdir -mp xxx
- -m:ファイルの権限を設定
- -p:再帰的に作成
touch(空のファイルを作成)
touch xxx
cd(ディレクトリを切り替え)
# mkdirコマンドを使用してrunoobディレクトリを作成
[root@www ~]# mkdir runoob
# 絶対パスを使用してrunoobディレクトリに切り替え
[root@www ~]# cd /root/runoob/
# 相対パスを使用してrunoobディレクトリに切り替え
[root@www ~]# cd ./runoob/
# 自分のホームディレクトリに戻ることを示します。つまり、/rootというディレクトリです。
[root@www runoob]# cd ~
# 上の階層のディレクトリに切り替え
[root@www ~]# cd ..
pwd(現在のディレクトリを表示)
pwd
rmdir(空のディレクトリを削除)
rmdir [-p] ディレクトリ名
-p このディレクトリから始めて、一度に複数の空のディレクトリを削除します(空のディレクトリのみ削除可能)。
cp(ファイルまたはディレクトリをコピー)
[root@www ~]# cp -rp [元のファイルまたはディレクトリ] (ターゲットディレクトリ)
[root@www ~]# cp [opt] tes1
mv(ファイルとディレクトリを移動するか、名前を変更)
[root@www ~]# mv [元のファイルまたはディレクトリ] (移動先/名前変更)
[root@www ~]# mv /tmp/day1 /root/day02 他のディレクトリに移動して名前を変更
[root@www ~]# mv day1 day02 現在のディレクトリで名前を変更
- -f :ターゲットファイルが既に存在する場合、確認せずに直接上書きします;
- -i :ターゲットファイルが既に存在する場合、上書きするかどうかを確認します!
rm(ファイルまたはディレクトリを削除)
- -f :強制実行
- -i :削除前に確認を求めます
- -r :再帰的に削除します!最も一般的にディレクトリを削除する際に使用されます。
3.2 Linux ファイル内容の表示#
cat ファイル内容を最初から表示
tac 最後から表示
more ページごとに表示
less ページごとに表示
head ファイルの最初の数行を取得
tail ファイルの最後の数行を取得
四、シャットダウンと再起動のコマンド#
4.1 再起動コマンド:#
- reboot 再起動します
- shutdown -r now すぐに再起動します(root ユーザー使用)
- shutdown -r 10 10 分後に自動的に再起動します(root ユーザー使用)
- shutdown -r 20:35 20:35 に再起動します(root ユーザー使用) shutdown コマンドで再起動を設定した場合、shutdown -c コマンドで再起動をキャンセルできます。
4.2 シャットダウンコマンド:#
- halt すぐにシャットダウンします
- poweroff すぐにシャットダウンします
- shutdown -h now すぐにシャットダウンします(root ユーザー使用)
- shutdown -h 10 10 分後に自動的にシャットダウンします。shutdown コマンドでシャットダウンを設定した場合、shutdown -c コマンドで再起動をキャンセルできます。
五、権限管理コマンド#
5.1 ユーザー管理#
ユーザー情報
cat コマンドを使用してユーザー情報が保存されているファイルを確認します。ユーザー情報が保存されているファイルは /etc/passwd ファイルにあります。
cat /etc/passwd
スーパーユーザー:root、UID=0
一般ユーザー:UID は 500 から 60000 の範囲
擬似ユーザー:UID は 1 から 499 の範囲
擬似ユーザーはシステムにログインできず、ホームディレクトリもありません。
なぜ擬似ユーザーが必要か:ユーザーがログインしていないときでも、Linux システムは動作し続け、多くのプロセスが実行されているため、いくつかの擬似ユーザーが必要です。
パスワードが保存されているファイル:/etc/shadow
ユーザーグループが保存されているファイル:/etc/group
ユーザーグループパスワードが保存されているファイル:/etc/gshadow
ユーザー設定ファイル:/etc/default/useradd
ユーザーの追加
useradd パラメータ ユーザー名
パラメータ:
- -s:新しいユーザーのデフォルトシェル端末を設定
- -u:ユーザー ID を設定
- -e:ユーザーの終了日を設定
- -f:ユーザーが期限切れになる日数を設定
- -M:ユーザーのホームディレクトリを作成しない
- -G:ユーザーに対応する拡張ユーザーグループを設定
ユーザーの変更
usermod パラメータ ユーザー名
パラメータ:
- -c:ユーザーアカウントの備考を変更
- -d:ユーザーのログイン時のホームディレクトリを変更
- -e:ユーザーアカウントの有効期限を変更
- -f:パスワードが期限切れになった後、何日後にアカウントを無効にするかを設定
- -u:ユーザーアカウントの ID を変更
- -l:ユーザーアカウント名を変更
- -L:ユーザーパスワードをロックし、パスワードを即座に無効にします
- -U:パスワードのロックを解除し、パスワードを正常に戻します
- -p:ユーザーの新しいパスワードを設定
ユーザーパスワードの変更
passwd パラメータ ユーザー名
パラメータ:
- -l:ロックユーザーのパスワード値をロックし、変更を許可しない
- -u:ロック解除ユーザーのパスワード値を解除し、変更を許可する
- -e:次回ログイン時にパスワードの変更を強制する
- -d:既存のパスワードを削除する
- -S:現在のパスワードの状態を表示
ユーザーの切り替え
su パラメータ ユーザー名
- -l:切り替え時に作業ディレクトリも変更する
- -m:切り替え時に作業ディレクトリを変更しない
ユーザーの削除
userdel パラメータ ユーザー名
パラメータ:
- -f:ユーザーアカウントを強制的に削除し、確認を求めない
- -h:ヘルプ情報を表示
- -r:ユーザーのホームディレクトリとそのすべてのサブファイルを削除
ユーザーの一覧を表示
ls /home
5.2 ユーザーグループ管理#
ユーザーグループの追加
groupadd パラメータ グループ名
- -g:ユーザーグループ ID を設定
- -r:root がシステムユーザーグループを作成
- -o:重複 ID のユーザーグループを作成することを許可
ユーザーグループの変更
groupmod パラメータ グループ名
パラメータ:
- -g:グループ識別コードを設定
- -n:name グループ名を設定
ユーザーグループの削除
groupdel パラメータ グループ名
- -f:強制的に削除し、確認を求めない
ユーザーグループの変更
usermod パラメータ ユーザー名
- -l:ユーザーアカウント名を変更
- -L:ユーザーパスワードをロックし、パスワードを即座に無効にします
- -u:ユーザーアカウントの ID を変更
- -U:パスワードのロックを解除し、パスワードを正常に戻します
- -d:ユーザーのログイン時のホームディレクトリを変更
5.3 ファイル権限の変更#
ファイルの所有ユーザーグループを変更
chgrp パラメータ ユーザー名
- -R:すべてのサブファイルを再帰的に処理
- -v:実行プロセスの詳細情報を表示
ファイルまたはディレクトリの権限を変更
chmod パラメータ ユーザー名
- -c:ファイル権限の変更が成功した後に成功情報を出力
- -f:ファイル権限の変更が失敗した後にエラー情報を表示しない
- -R:すべてのサブファイルを再帰的に処理
- -v:実行プロセスの詳細情報を表示
六、パイプコマンドとリダイレクト#
6-1 パイプ#
- more:内容を分割表示
- grep:コマンド実行結果に基づいて指定テキストを検索
6-2 リダイレクト > と >>#
> は出力を示し、ファイルの元の内容を上書きします
>> は追加を示し、内容を既存のファイルの末尾に追加します
七、ソフトウェアディスクコマンド#
7-1 ディスク管理関連コマンド#
ディスクパーティションを管理
fdisk パラメータ デバイス名
- -H:ハードディスクのヘッド数を設定
- -l:指定された周辺機器のパーティションテーブルの状態を表示
- -s:指定されたパーティションのサイズを表示
- -S:各トラックのセクター数を設定
- -b:各パーティションのサイズを設定
システムのメモリ使用量を表示
free パラメータ
- -b:表示単位をバイトに設定
- -g:表示単位を GB に設定
- -h:適切な表示単位に自動調整
- -k:表示単位を KB に設定
- -l:低メモリと高メモリの統計データを表示
- -m:表示単位を MB に設定
- -s:メモリデータを継続的に表示
7-2 圧縮 / 解凍#
gzip ファイルを圧縮
gzip -v t.txt ファイルを.gz に圧縮し、単一ファイルの圧縮に使用します。
- -d:指定された圧縮パッケージファイルを解凍
- -v:実行プロセスの詳細情報を表示
- -k:元のファイルを保持
- -l: 圧縮パッケージ内のファイル情報を表示
gunzip ファイルを解凍
gunzip -v t.txt.gz 複数のファイルを圧縮または解凍します。
Zip ファイルを圧縮
zip パラメータ 圧縮名 圧縮するファイル
unzip ファイルを解凍
unzip パラメータ 圧縮パッケージ名 -d 指定ディレクトリ名
tar ファイルを圧縮または解凍
tar パラメータ 圧縮パッケージ名 自由に ファイルまたはディレクトリ名
tar -czvf test.tar.gz -C /etc 規範的な拡張子は.tar.gz
-c:新しい圧縮パッケージを作成
-z:gzip 圧縮形式を使用
-v:実行プロセスの詳細情報を表示
-t:圧縮パッケージの内容を表示
-f:圧縮後のファイル名を指定
-x:解凍
-C:指定されたディレクトリに解凍
tar パラメータ 圧縮パッケージ名 -C 解凍ディレクトリ名
tar -xvf File.tar -C /etc File.tar ファイルを /etc ディレクトリに解凍します。
7-3 ソフトウェアのインストール#
yum コマンド
yum パラメータ アクション ソフトウェアパッケージ
7-4 ソフトウェアの起動と停止#
systemctl パラメータ アクション サービス名
7-5 rpm コマンド RPM ソフトウェアパッケージ管理#
rpm の役割は、Windows 上のコンピュータ管理ソフトウェアの「ソフトウェア管理」やセキュリティソフトウェアの「ソフトウェア管理」などの製品に似ており、主に Linux サーバー上のソフトウェアパッケージを管理するための操作を行います。管理は、クエリ、アンインストール、インストールに分かれます。
rpm -ql ソフトウェアパッケージ名
パラメータ:
- -a:すべてのソフトウェアパッケージを表示
- -e:ソフトウェアパッケージをアンインストール
- -i:ソフトウェアパッケージをインストール
- -l:ソフトウェアパッケージのファイルリストを表示
- -q:指定されたソフトウェアパッケージがインストールされているかどうかを表示
- -U:ソフトウェアパッケージをアップグレード
- -v:実行プロセス情報を表示
特定のソフトウェアのインストール状況を確認
ソフトウェアをインストール
インストールされたソフトウェアのパスを確認
特定のソフトウェアをアンインストール
特定のソフトウェアパッケージをアップグレード
八、検索コマンドとソフトリンク#
8-1 検索コマンド#
find コマンド
find パス 条件 ファイル名
grep コマンド
grep パラメータ ファイル名
8-2 ソフトリンク#
Windows のショートカットに似ています。
ln パラメータ ソースファイル名 目標ファイル名