Linux

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

目次

  1. シェル
    1. sh
    2. ash
    3. bash
    4. csh
    5. dash
    6. ksh
    7. zsh
  2. コマンド
    1. オプション
    2. 正規表現
    3. apt
    4. apt-get
    5. Atom
    6. awk
    7. basename
    8. bzcmp
    9. bzdiff
    10. bzegrep
    11. bzfgrep
    12. bzip2
    13. bzless
    14. bzmore
    15. chmod
    16. code (Visual Studio Code)
    17. curl
    18. cut
    19. date
    20. df
    21. dirname
    22. dpkg
    23. du
    24. echo
    25. expr
    26. file
    27. find
    28. ftp
    29. fuser
    30. gcc
    31. gcore
    32. gdb
    33. getconf
    34. Git
    35. groupadd
    36. groupdel
    37. groupmod
    38. gunzip
    39. gzip
    40. hostname
    41. ifconfig
    42. ipcs
    43. iptables
    44. julia
    45. kill
    46. less
    47. ld
    48. ls
    49. lsof
    50. man
    51. more
    52. mount
    53. netstat
    54. nohup
    55. passwd
    56. perl
    57. ps
    58. ping
    59. pstree
    60. route
    61. rpm
    62. rsync
    63. script
    64. sed
    65. seq
    66. shutdown
    67. su
    68. Subversion
    69. sudo
    70. tar
    71. top
    72. traceroute
    73. traceroute6
    74. uname
    75. uncompress
    76. useradd
    77. userdel
    78. usermod
    79. uuidgen
    80. vi
    81. visudo
    82. vim
    83. vmstat
    84. yum
    85. zcat
    86. zcmp
    87. zdiff
    88. zegrep
    89. zfgrep
    90. zless
    91. zmore
  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 のアプリケーションを動かすことができます。

日本語入力

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