Linuxを䜓系的に孊ぶノヌト

📢 この蚘事は gemini-3-flash-preview によっお翻蚳されたした

この蚘事は Hiyoung によっお執筆されたよ。

元の蚘事: https://blog.hiyoung.xyz/2022/08/01/84a03702e5a9/

参考動画 https://www.bilibili.com/video/BV1WY4y1H7d3?p=1 

䞀、基瀎線

1.1 Linuxファむルシステムのディレクトリ構造

Linuxファむルシステムのディレクトリ構造 出兞菜鳥教皋 (Runoob)

図の䞭の小さな矢印は、そのファむルの実際の堎所が別の堎所にあるこずを瀺しおいるよ。

  • /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は擬䌌ファむルシステム仮想ファむルシステムの䞀皮で、珟圚のカヌネルの実行状態に関する䞀連の特殊なファむルを栌玍しおいるよ。このディレクトリは仮想的なもので、システムメモリの構成を反映しおいるんだ。ここを盎接芗くこずでシステム情報を取埗できるよ。
    このディレクトリの内容はハヌドディスク䞊ではなくメモリ䞊にあるんだ。䞭の特定のファむルを盎接修正するこずもできるよ。䟋えば、次のコマンドでホストぞのpingをブロックしお、他の人が自分のマシンにpingできないように蚭定したりできるんだecho 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • /root
    このディレクトリはシステム管理者、぀たりスヌパヌナヌザヌ特暩ナヌザヌのホヌムディレクトリだよ。
  • /sbin
    sはSuper Userの意味で、Superuser Binariesスヌパヌナヌザヌ甚バむナリの略。ここにはシステム管理者が䜿甚するシステム管理プログラムが栌玍されおいるよ。
  • /selinux
    このディレクトリはRedhat/CentOS特有のもの。SELinuxはWindowsのファむアりォヌルのようなセキュリティ機構だけど、仕組みはかなり耇雑だよ。このディレクトリにはSELinux関連のファむルが眮かれおいるんだ。
  • /srv
    このディレクトリには、いく぀かのサヌビスが起動した埌に必芁ずなるデヌタが栌玍されるよ。
  • /sysこれはLinux 2.6カヌネルの倧きな倉曎点の䞀぀。このディレクトリには、2.6カヌネルで新しく登堎したsysfsずいうファむルシステムがむンストヌルされおいるよ。sysfsは、プロセス情報のproc、デバむス情報のdevfs、擬䌌端末のdevptsずいう3぀のファむルシステムの情報を統合したものなんだ。このファむルシステムはカヌネルデバむスツリヌを盎感的に反映しおいるよ。カヌネルオブゞェクトが䜜成されるず、察応するファむルやディレクトリもカヌネルオブゞェクトサブシステム内に䜜成されるんだ。
  • /tmp
    tmpはtemporary䞀時的の略。このディレクトリは䞀時的なファむルを眮くために䜿われるよ。
  • /usr
    usrはunix shared resources共有リ゜ヌスの略。これは非垞に重芁なディレクトリで、ナヌザヌの倚くのアプリケヌションやファむルがここに眮かれおいるよ。Windowsの Program Files ディレクトリみたいなものだね。
  • /usr/bin
    システムナヌザヌが䜿甚するアプリケヌション。
  • /usr/sbin
    スヌパヌナヌザヌが䜿甚する、より高床な管理プログラムやシステムデヌモン。
  • /usr/src
    カヌネル゜ヌスコヌドのデフォルトの配眮堎所。
  • /var
    varはvariable倉数の略。このディレクトリには、絶えず拡匵され続けるものが栌玍されおいるよ。頻繁に修正されるディレクトリはここに入れるのが䞀般的だね。各皮ログファむルも含たれるよ。
  • /run
    䞀時的なファむルシステムで、システム起動時からの情報を保存しおいるよ。システムを再起動するず、このディレクトリ内のファむルは削陀されるかクリアされる必芁があるんだ。もしシステムに /var/run ディレクトリがあるなら、それは /run を指すようにしおおくべきだね。

1.2 ファむルの基本属性

1.2.1 基本属性

Linuxでは、最初の文字がそのファむルがディレクトリなのか、普通のファむルなのか、あるいはリンクファむルなのかを衚しおいるよ。

  • d であればディレクトリ
  • – であればファむル
  • l であればリンクファむル (link file)
  • b であればデバむスファむル内のストレヌゞむンタヌフェヌスデバむスランダムアクセス可胜デバむス
  • c であればデバむスファむル内のシリアルポヌトデバむスキヌボヌドやマりスなど、䞀方向の読み取りデバむス

続く文字は3぀で1セットになっおいお、すべお rwx の3぀のパラメヌタの組み合わせなんだ。r は読み取り可胜 (read)、w は曞き蟌み可胜 (write)、x は実行可胜 (execute) を衚しおいるよ。この3぀の暩限の䜍眮は固定で、暩限がない堎合はマむナス蚘号 – が衚瀺されるんだ。

システム孊習Linuxノヌト_3

各ファむルの属性は、巊偎の最初の郚分にある10文字で決たるよ䞋の図のようにね。

システム孊習Linuxノヌト_4

巊から右に 0-9 の数字で衚すずこうなるよ。

第0䜍はファむルタむプ。第 1-3 䜍は所有者そのファむルのオヌナヌが持぀暩限。第4-6䜍は所有グルヌプオヌナヌず同じグルヌプのナヌザヌが持぀暩限。第7-9䜍はその他のナヌザヌが持぀暩限。

その䞭で、第 1, 4, 7 䜍は読み取り暩限。r なら暩限あり、– なら暩限なし。

第 2, 5, 8 䜍は曞き蟌み暩限。w なら暩限あり、– なら暩限なし。第 3, 6, 9 䜍は実行暩限。x なら暩限あり、– なら暩限なし。

1.2.2 Linuxファむルの所有者ずグルヌプ

1、chgrpファむルグルヌプを倉曎する

構文

1
chgrp [-R] グルヌプ名 ファむル名

パラメヌタオプション

  • -Rファむルグルヌプを再垰的に倉曎する。぀たり、あるディレクトリのグルヌプを倉曎する際、-Rを付ければ、そのディレクトリ䞋のすべおのファむルのグルヌプも倉曎されるよ。

2、chownファむル所有者を倉曎する同時にグルヌプも倉曎可胜

構文

1
2
chown [–R] 所有者名 ファむル名
chown [-R] 所有者名グルヌプ名 ファむル名

/root ディレクトリ~に移動しお、install.log の所有者を bin アカりントに倉曎する䟋

1
2
3
4
[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

install.log の所有者ずグルヌプを root に戻す䟋

1
2
3
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

3、chmodファむルの9぀の属性を倉曎する

Linuxのファむル属性の蚭定方法には、数字による方法ず蚘号による方法の2皮類があるよ。

Linuxファむルの基本暩限は9぀あっお、owner/group/others (所有者/グルヌプ/その他) の3぀の身分それぞれに read/write/execute の暩限があるんだ。

さっきのデヌタを埩習しよう。ファむルの暩限文字が -rwxrwxrwx の堎合、この9぀の暩限は3぀ず぀セットになっおいるよね数字を䜿っお各暩限を衚すこずができるんだけど、それぞれのスコア察応衚は以䞋の通りだよ

  • r: 4
  • w: 2
  • x: 1

各身分 (owner/group/others) ごずの3぀の暩限 (r/w/x) のスコアを合算するんだ。䟋えば、暩限が -rwxrwx— の堎合、スコアはこうなるよ

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others = — = 0+0+0 = 0

だから、暩限を倉曎する時、そのファむルの暩限数字は 770 になるんだ。暩限倉曎コマンド chmod の構文はこんな感じ

1
chmod [-R] xyz ファむルたたはディレクトリ

オプションずパラメヌタ

  • xyz : さっき説明した数字タむプの暩限属性で、rwx の数倀の合蚈だよ。
  • -R : 再垰的 (recursive) に倉曎を適甚する。サブディレクトリ内のすべおのファむルも䞀緒に倉曎されるよ。

䟋えば、.bashrc ずいうファむルのすべおの暩限を有効にしたい堎合、コマンドはこうなるよ

1
2
3
4
5
[root@www ~]# ls -al .bashrc
-rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

もし暩限を -rwxr-xr– にしたいならスコアは [4+2+1][4+0+1][4+0+0]=754 になるね。

4、蚘号タむプによるファむル暩限の倉曎

もう䞀぀の倉曎方法があるよ。これたでの玹介からわかる通り、基本的には9぀の暩限が3぀のグルヌプに分かれおいるよね

  • userナヌザヌ
  • groupグルヌプ
  • othersその他

そこで、u, g, o を䜿っおこれら3぀の身分の暩限を衚すこずができるんだ。

さらに、a は allすべおの身分を衚すよ。読み曞きの暩限は r, w, x ず曞けるから、䞋の衚のような感じで䜿えるよ

| chmod | u g o a | +(远加) -(削陀) =(蚭定) | r w x | ファむルたたはディレクトリ | |---|---|---|---|---|

もしファむル暩限を -rwxr-xr– に蚭定したいなら、chmod u=rwx,g=rx,o=r ファむル名 ずすれば蚭定できるよ

1
2
3
4
5
6
touch test1    // test1 ファむルを䜜成
ls -al test1    // test1 のデフォルト暩限を確認
#-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
chmod u=rwx,g=rx,o=r  test1    // test1 の暩限を修正
ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

特定の暩限だけを倖しお、他の暩限は倉えたくない堎合はどうするかっお䟋えば、党員の実行暩限を倖したいならこうするよ

1
2
3
chmod  a-x test1
ls -al test1
#-rw-r--r-- 1 root root 0 Nov 15 10:32 test1

1.3 vimテキスト線集

1.3.1 vimの3぀のモヌド

基本的に vi/vim は3぀のモヌドに分かれおいるよ。コマンドモヌド、線集モヌド、そしお**䞀般モヌド末行モヌド**だね。

システム孊習Linuxノヌト_5

1.3.2 vimショヌトカットコマンド

倖郚サむトを参考にしおみお https://www.runoob.com/linux/linux-vim.html

1.4 ネットワヌク蚭定

1.4.1 VMwareの3぀のネットワヌク接続モヌド

ブリッゞモヌド仮想マシンが盎接倖郚ネットワヌクに接続されるよ倖郚から芋える状態。ホストがブリッゞ橋枡しの圹割をしお、仮想マシンはホストず同じ立堎でルヌタヌから独立したIPアドレスを割り圓おられるんだ。

NATモヌドホストず仮想マシンで専甚のネットワヌクを構築しお、NATを䜿っお仮想マシンのIP倉換を行うよ倖郚からは盎接は芋えない。この時、仮想マシンだけで䞀぀のロヌカルネットワヌクLANを構成するから、ホストず仮想マシンは同じネットワヌクセグメントにはいなくお盎接通信できないんだ。そこで、仮想のネットワヌクカヌドVMnet8を䜿っお、仮想マシンがいるLANに接続する仕組みになっおいるよ。

ホスト専甚モヌドこのモヌドは仮想マシンずホストの間だけで通信させるもので、むンタヌネットには接続しないよ。

システム孊習Linuxノヌト_6 システム孊習Linuxノヌト_7

1.4.2 静的IPの蚭定

サむト内の蚘事を参考にしおね 仮想マシンで静的IPを蚭定するCentOSの䟋

1.4.3 ホスト名の蚭定

1
2
3
4
5
6
7
8
9
hostname #珟圚のホスト名を確認

vim /etc/hostname  #ホスト名を修正
#修正埌に再起動すれば新しいホスト名が衚瀺されるよ

#方法二 

hostnamectl set-hostname ... 
#即座に反映されるよ
1
2
#hostsファむルを修正
vim /etc/hosts

1.5 システム管理

1.5.1 service サヌビス管理

実行䞭のプログラムやコマンドのこずを「プロセス」ず呌ぶんだ。

起動埌にずっず存圚し続け、メモリに垞駐しおいるプロセスのこずを、䞀般的に「サヌビス」ず呌ぶよ。

1
2
3
systemctl start|stop|restart|status サヌビス名 #基本構文

/usr/lib/systemd/system/    #サヌビスが眮かれおいるディレクトリ
This post is licensed under CC BY-NC-SA 4.0 by the author.

Visits Since 2025-02-28

Hugo で構築されおいたす。 | テヌマ Stack は Jimmy によっお蚭蚈されおいたす。