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. ld
    47. ls
    48. lsof
    49. mount
    50. netstat
    51. nohup
    52. passwd
    53. perl
    54. ps
    55. ping
    56. pstree
    57. route
    58. rpm
    59. rsync
    60. script
    61. sed
    62. seq
    63. shutdown
    64. su
    65. Subversion
    66. sudo
    67. tar
    68. top
    69. traceroute
    70. traceroute6
    71. uname
    72. uncompress
    73. useradd
    74. userdel
    75. usermod
    76. uuidgen
    77. vi
    78. visudo
    79. vim
    80. vmstat
    81. yum
    82. zcat
    83. zcmp
    84. zdiff
    85. zegrep
    86. zfgrep
    87. zless
    88. 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. 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. 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 のアプリケーションを動かすことができます。

参考文献

IEEE and The Open Group (2018) Utility Conventions

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