おはよう。@bioerrorlogです。
Linux基本コマンドを一覧でまとめていきます。
ネット上には良質なLinuxコマンドのまとめがたくさんありますが1、自分が覚えておきたいコマンドの一覧は、やはり自分で作るしかありません。
備忘録としてまとめます。
基本コマンド
man
マニュアルを表示します。
使用例:
$ man ls
これでls
コマンドのマニュアルが表示されます。
詳しくは別途記事にしました。
www.bioerrorlog.work
manコマンドのマニュアル: man(1) - Arch manual pages
cd
ディレクトリを移動します。
使用例#1:
$ cd ./Desktop
"./"は相対パスで、カレントディレクトリを示します。
つまりこの例では、カレントディレクトリ直下にある"Desktop"ディレクトリに移動します。
使用例#2:
$ cd
引数を与えないと、ホームディレクトリに戻ります。
使用例#3:
$ cd ../
"../"は相対パスで、一つ上の親ディレクトリを示します。
よって"../"を引数に渡すと、一つ上のディレクトリに移動します。
使用例#4:
$ cd /
"/"を引数に渡すと、ルートディレクトリに移動します。
cdコマンドのマニュアル: cd(1p) - Arch manual pages
ls
ディレクトリに含まれるファイルを表示します。
使用例#1:
$ ls
これでカレントディレクトリにあるファイルが列挙されます。
カレントディレクトリ以外のファイルは、パスを引数に渡すことで調べることができます。
使用例#2:
$ ls -l
長いリスト形式でファイルが表示され、より多くの情報が得られます。
ここで得られるパーミッション情報については、別途記事にしました。
www.bioerrorlog.work
使用例#3:
$ ls -a
隠しファイルを含め、ディレクトリ下にあるすべてのファイルを表示します。
なお、上記のオプションは ls -la
のように組み合わせることも可能です。
lsコマンドのマニュアル: ls(1) - Arch manual pages
cat
ファイルの中身を表示します。
使用例#1:
$ cat test.txt
カレントディレクトリ直下のファイル名(test.txt)を指定した場合、ファイルの中身が表示されます。
カレントディレクトリ以外のファイルは、パスを指定することで中身を見ることができます。
catコマンドのマニュアル: cat(1) - Arch manual pages
echo
文字列を表示します。
使用例:
$ echo Hello, Lain. Hello, Lain.
文字列Hello, Lain.
が出力されました。
echoコマンドのマニュアル: echo(1) - Arch manual pages
pwd
カレントディレクトリを表示します。
使用例:
$ pwd
例えば /home/user/Desktop
のように、カレントディレクトリが表示されます。
pwdコマンドのマニュアル: pwd(1) - Arch manual pages
touch
新規ファイルを作成します。
使用例:
$ touch test.txt
これで、空のファイル"test.txt"が作成されます。
touchコマンドのマニュアル: touch(1) - Arch manual pages
mkdir
新規ディレクトリを作成します。
使用例:
$ mkdir testdir
これで、空のディレクトリ"testdir"が作成されます。
mkdirコマンドのマニュアル: mkdir(1) - Arch manual pages
rm
ファイルやディレクトリを削除します。
使用例#1:
$ rm test.txt
ファイル(test.txt)が削除されます。
使用例#2:
$ rm -r test #testはディレクトリ
ディレクトリ(test)が削除されます。
rmコマンドのマニュアル: rm(1) - Arch manual pages
入出力制御
" | " パイプ
|
の左側のコマンドの出力を、|
の右側のコマンドの入力として渡します。
使用例:
$ man ls | grep all Sort entries alphabetically if none of -cftuvSUX nor --sort is speci‐ -a, --all -A, --almost-all print the allocated size of each file, in blocks -X sort alphabetically by entry extension Written by Richard M. Stallman and David MacKenzie. or available locally via: info '(coreutils) ls invocation'
man ls
コマンドの結果を、grep all
コマンドに渡したことで、lsコマンドマニュアルから"all"という文字列を含む列が検索されました。
" > " リダイレクト
>
の左側の出力を、>
の右側に渡します。
使用例:
$ echo Hello, Lain. > hello.txt
#hello.txt Hello, Lain.
Hello, Lain.
という文字列が、hello.txtファイルとして出力されました。
ファイル分析
file
ファイルの形式を表示します。
使用例:
$ file your_pass your_pass: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=92e8f5e9bc90478dfdcb5fc4bd6c63f414ed2f6e, not stripped
"your_pass"という名前のファイルの形式が表示されました。 たとえば、実行ファイル形式ELF 64-bitであることなどがわかります。
fileコマンドのマニュアル: file(1) - Arch manual pages
tree
ディレクトリ内容を木構造で表示します。
使用例:
$ tree radare2 radare2 ├── AUTHORS.md ├── autogen.sh ├── binr │ ├── blob │ │ ├── main.c │ │ ├── Makefile │ │ └── version.c │ ├── Makefile │ ├── preload │ │ ├── alloc.c │ │ ├── libr2.c │ │ ├── Makefile │ │ ├── trap-darwin-x86-32.asm │ │ ├── trap-darwin-x86-64.asm │ │ ├── trap-linux-x86-32.asm │ │ └── trap-linux-x86-64.asm │ ├── r2agent │ │ ├── index.h │ │ ├── Makefile │ │ ├── meson.build │ │ ├── r2agent │ │ ├── r2agent.c │ │ ├── r2agent.d │ │ └── r2agent.o │ ├── r2bb │ │ ├── Makefile │ │ └── r2bb.c │ ├── r2pm │ │ ├── meson.build │ │ └── r2pm #以下略
radare2ディレクトリの構造が視覚的に分かりやすく表示されました。
なお、デフォルトではインストールされていないので、自分でインストールする必要があります。
$ sudo apt install tree
オプション-L
で、表示する階層を指定することが出来ます。
$ tree -L 3
オプション-a
で、すべてのファイルを表示します。
$ tree -a
treeコマンドのマニュアル: tree(1) - Arch manual pages
ファイル検索系
locate
ファイルを名前で検索します。
使用例:
$ locate gdbinit /etc/gdb/gdbinit /home/nori/.gdbinit /usr/share/gdb/system-gdbinit /usr/share/gdb/system-gdbinit/elinos.py /usr/share/gdb/system-gdbinit/wrs-linux.py
"gdbinit"を含むファイルを検索し、その結果が出力されました。
※findコマンドとの違い:
locateはupdatedb
によって予め作成されたデータベースから検索されます。
findはリアルタイムにファイルが検索されます。
個人的には、findコマンドの挙動がいまいち把握できていないので、locateコマンドを使っています。
locateコマンドのマニュアル: locate(1) - Arch manual pages
grep
与えたパターンにマッチした行を出力します。
使用例:
$ man ls | grep help --help display this help and exit GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
lsコマンドのマニュアルのなかで、"help"という文字列がある行が2つ抽出されました。
あらゆるコマンドの後に| grep <key>
と付け加えて検索できるので、大変重宝しています。
grep
を使ってある文字列を含むファイルを検索する方法は、以下の記事に別途まとめています:
www.bioerrorlog.work
grepコマンドのマニュアル: grep(1) - Arch manual pages
whereis
コマンドのバイナリファイル、ソースファイル、マニュアルページファイルのパスを表示します。
使用例:
$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz
lsコマンドを渡したことで、lsコマンドのバイナリファイルとマニュアルページファイルのパス
ls: /bin/ls /usr/share/man/man1/ls.1.gz
が表示されました。
whreisコマンドのマニュアル: whereis(1) - Arch manual pages
which
コマンドのパスを表示します。
使用例:
$ which ls /bin/ls
whichコマンドのマニュアル: which(1) - Arch manual pages
OS関連
gnome-system-monitor | システムモニターの起動
システムモニター(Windowsのタスクマネージャーのようなもの)を起動します。
使用例:
$ gnome-system-monitor
システムモニターのヘルプ: System Monitor - GNOME Library
free
メモリの使用状況を表示します。
使用例#1:
$ free
freeコマンドを実行すると、次のようにメモリ使用量が表示されます。
total used free shared buff/cache available Mem: 5934616 962216 3785240 3132 1187160 4686364 Swap: 969960 0 969960
メモリとスワップ領域について、使用中・未使用のメモリサイズが表示されます。
使用例#2:
$ free -h
"-h"オプションをつけると見やすくなります。
total used free shared buff/cache available Mem: 5.7G 972M 3.4G 5.1M 1.3G 4.4G Swap: 947M 0B 947M
freeコマンドのマニュアル: free(1) - Arch manual pages
df
ディスクの使用状況を表示します。
使用例:
$ df -h
Filesystem Size Used Avail Use% Mounted on udev 2.9G 0 2.9G 0% /dev tmpfs 580M 1.8M 578M 1% /run /dev/sda1 20G 7.3G 12G 40% / tmpfs 2.9G 4.0K 2.9G 1% /dev/shm ~ #以下略
dfコマンドのマニュアル: df(1) -Arch manual pages
ps
処理しているプロセスの状況を表示します。
使用例#1:
$ ps
PID TTY TIME CMD 1769 pts/0 00:00:00 bash 4424 pts/0 00:00:00 ps
このPID, TTY, TIME, CMDは、psコマンドのマニュアルによると、
PID: the process ID (プロセスID)
TTY: the terminal associated with the process (プロセスを行っているターミナル)
TIME: the cumulated CPU time (累積CPU使用時間)
CMD: the executable name (実行コマンド)
(括弧内は私の意訳)
ということでした。
使用例#2:
$ ps aux
プロセスに関して、すべての情報が表示されます。
psコマンドのマニュアル: ps(1) - Arch manual pages
uname
OSの情報を表示します。
使用例:
$ uname -a
Linux my-virtual-machine 4.15.0-43-generic #46-Ubuntu SMP Thu Dec 6 14:45:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
64bitなのか、32bitなのか等も、ここで表示されています。
unameコマンドのマニュアル: uname(1) - Arch manual pages
Web関連
curl
URLからデータを移行します。
使用例:
$ curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
Pythonのpipパッケージをインストールする際に行った操作。 URL"https://bootstrap.pypa.io/get-pip.py"のデータを取得し、"get-pip.py"として出力されました。
curlコマンドのマニュアル: curl(1) - Arch manual pages
-
例えばCore utilities - ArchWikiは、とてもお世話になっている記事です。↩