Linux

LinuxとはLinuxカーネルを利用したUnix系OSです。

目次

  1. シェル
    1. sh
    2. ash
    3. bash
    4. csh
    5. dash
    6. ksh
    7. zsh
  2. コマンド
    1. オプション
    2. 正規表現
    3. ユーザーコマンド
      1. awk
      2. basename
      3. bzcmp
      4. bzdiff
      5. bzegrep
      6. bzfgrep
      7. bzip2
      8. bzless
      9. bzmore
      10. cat
      11. chmod
      12. cmp
      13. code (Visual Studio Code)
      14. curl
      15. cut
      16. date
      17. df
      18. diff
      19. dirname
      20. dpkg
      21. du
      22. echo
      23. egrep
      24. expr
      25. fgrep
      26. file
      27. find
      28. ftp
      29. fuser
      30. gcc
      31. gcore
      32. gdb
      33. getconf
      34. Git
      35. grep
      36. groupadd
      37. groupdel
      38. groupmod
      39. gunzip
      40. gzip
      41. hostname
      42. ifconfig
      43. ipcs
      44. julia
      45. kill
      46. less
      47. ld
      48. ls
      49. lsof
      50. man
      51. more
      52. nohup
      53. passwd
      54. perl
      55. ps
      56. ping
      57. pstree
      58. rgrep
      59. route
      60. rsync
      61. script
      62. sed
      63. seq
      64. su
      65. Subversion
      66. systemctl
      67. tar
      68. top
      69. traceroute
      70. traceroute6
      71. uname
      72. uncompress
      73. useradd
      74. userdel
      75. usermod
      76. uuidgen
      77. vi
      78. vim
      79. zcat
      80. zcmp
      81. zdiff
      82. zegrep
      83. zfgrep
      84. zless
      85. zmore
    4. 管理・特権コマンド
      1. apt
      2. apt-get
      3. iptables
      4. mount
      5. netstat
      6. rpm
      7. shutdown
      8. sudo
      9. visudo
      10. vmstat
      11. yum
  3. デーモン
    1. crontab
    2. sshd
    3. rsyslog
  4. システムコール
    1. accept
    2. bind
    3. close
    4. connect
    5. creat
    6. dup
    7. execve
    8. fcntl
    9. fork
    10. fstat
    11. listen
    12. lstat
    13. open
    14. openat
    15. poll
    16. read
    17. recv
    18. recvfrom
    19. send
    20. sendto
    21. socket
    22. stat
    23. time
    24. write
  5. errno
    1. EPERM
    2. ENOENT
    3. ESRCH
    4. EINTR
    5. EIO
    6. ENXIO
    7. E2BIG
    8. ENOEXEC
    9. EBADF
    10. ECHILD
    11. EAGAIN
    12. ENOMEM
    13. EACCESS
    14. EFAULT
    15. ENOTBLK
    16. EBUSY
    17. EEXIST
    18. EXDEV
    19. ENODEV
    20. ENOTDIR
    21. EISDIR
    22. EINVAL
    23. ENFILE
    24. ENOTTY
    25. ETXTBSY
    26. EFBIG
    27. ENOSPC
    28. ESPIPE
    29. EROFS
    30. EMLINK
    31. EPIPE
    32. EDOM
    33. ERANGE
    34. ENOMSG
    35. EIDRM
    36. ECHRNG
    37. EL2NSYNC
    38. EL3HLT
    39. EL3RST
    40. ELNRNG
    41. EUNATCH
    42. ENOCSI
    43. EL2HLT
    44. EDEADLK
    45. ENOLCK
    46. ECANCELED
    47. ENOTSUP
    48. EDQUOT
    49. EBADE
  6. ブートローダ
    1. GRUB
    2. LILO
  7. プロセス間通信
    1. シグナル
    2. ソケット
  8. ファイル
    1. /dev/null
    2. /etc
  9. ディストリビューション
    1. CentOS
    2. Linux Mint
    3. Ubuntu
  10. ライブラリ関数
    1. dlopen
    2. dlsym
    3. dlclose
    4. dlerror
    5. perror
    6. pthread_create
    7. pthread_join
    8. pthread_detach
    9. pthread_exit
    10. pthread_cancel
  11. 日本語入力
    1. IBus
    2. Fcitx
    3. Mozc
  12. 高可用システム
    1. HA

ディレクトリ構成

Ubuntuのディレクトリ構成を次に示す。

/dev/null

特殊なデバイスとして、ヌルデバイス(/dev/null)を指定することもできます。出力先とした場合、何も出力しないのと同義になります。入力元とした場合、常に EOF が入力されます。

$ echo hello > /dev/null

標準出力をヌルデバイスにリダイレクトした場合、/dev/nullというファイルに出力するのではなく、どこにも出力しないことになります。

/proc

/proc
パス 説明
/proc/pid/maps プロセスのメモリマップ
/proc/pid/cmdline プロセスのコマンドライン引数
/proc/pid/stat プロセスの状態
/proc/cpuinfo CPUに関する情報
/proc/diskstats ストレージデバイスに関する情報
/proc/meminfo メモリ関する情報
/proc/sys カーネルのチューニング・パラメータ
$ cat /proc/cpuinfo
processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 23
model		: 24
model name	: AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
stepping	: 1
microcode	: 0x8108109
cpu MHz		: 2452.618
cache size	: 512 KB
physical id	: 0
siblings	: 8
core id		: 0
cpu cores	: 4
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
$ cat /proc/diskstats
7       0 loop0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7       1 loop1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7       2 loop2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7       3 loop3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7       4 loop4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7       5 loop5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7       6 loop6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7       7 loop7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
259       0 nvme0n1 428166 104379 16659976 102701 482678 680548 34791602 130543
3 0 542780 1469421 0 0 0 0 80209 61286
259       1 nvme0n1p1 309 21 20422 71 2 0 2 7 0 236 79 0 0 0 0 0 0
259       2 nvme0n1p2 427489 104358 16625578 102557 482676 680548 34791600 1305
425 0 542648 1407983 0 0 0 0 0 0
$ cat /proc/meminfo
emTotal:        5935204 kB
MemFree:          274724 kB
MemAvailable:    2447692 kB
Buffers:          152308 kB
Cached:          2463844 kB
SwapCached:        39328 kB
Active:          2212840 kB
Inactive:        2685160 kB
Active(anon):     519260 kB
Inactive(anon):  2082944 kB
Active(file):    1693580 kB
Inactive(file):   602216 kB
Unevictable:       12764 kB
Mlocked:           12764 kB
SwapTotal:       2097148 kB
SwapFree:        1579516 kB
Dirty:               660 kB
Writeback:             0 kB
AnonPages:       2275028 kB
Mapped:           817732 kB
Shmem:            307632 kB
KReclaimable:     194828 kB
Slab:             332120 kB
SReclaimable:     194828 kB
SUnreclaim:       137292 kB
KernelStack:       17520 kB
PageTables:        48676 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     5064748 kB
Committed_AS:   13319012 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       75604 kB
VmallocChunk:          0 kB
Percpu:            13952 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:      637052 kB
DirectMap2M:     5529600 kB
DirectMap1G:           0 kB

Wine

Linux に Wine をインストールすると、Linux 上で Microsoft Windows のアプリケーションを動かすことができる。

Wine は「Wine is not an emulator」の再帰的頭字語である。OSのエミュレーターではなく、Windows API を実装した環境でアプリケーションを動かしている。

日本語入力

IBus

IBus (Intelligent Input Bus) とは、Linuxのインプットメソッドフレームワークである。

Fcitx

Fcitx (Flexible Context-aware Input Tool with Extension) とは、Linuxのインプットメソッドフレームワークである。

Mozc

Mozcは「Google日本語入力」のオープンソース版である。Mozcはあくまで日本語変換エンジンであり、IBusやFcitx等のインプットメソッドフレームワークが別途必要である。

参考文献

IEEE and The Open Group (2018) Utility Conventions

Free Software Foundation, Inc. (2020) Standards for Command Line Interfaces