はじめに
割とよく使う基本的なコマンドを備忘録的につらつらと書いていく。
それぞれのコマンドにたくさんのオプションがあるが、なかでも特によく使うものだけピックアップする。
詳しく知りたかったら後述のmanコマンドを使ってどうぞ。
実行環境はUbuntu 20.04.4 LTS
bashrcは自作のものを使っている
https://github.com/polyacetal/my-configs
目次
- 作成系のコマンド
- 閲覧系のコマンド
- 移動系のコマンド
- 削除系のコマンド
- その他のコマンド
作成系のコマンド
コマンド名 | 機能 |
---|---|
mkdir | 新しいディレクトリを作る |
touch | 新しいファイルを作る |
cp | ファイルもしくはディレクトリをコピーする |
閲覧系のコマンド
コマンド名 | 機能 |
---|---|
ls | ディレクトリ内のファイル一覧を表示させる |
cat | ファイルの中身を表示させる |
移動系のコマンド
コマンド名 | 機能 |
---|---|
cd | カレントディレクトリを移動させる |
mv | ファイルの移動、名前の変更を行う |
削除系のコマンド
コマンド名 | 機能 |
---|---|
rm | ファイルを削除する |
その他のコマンド
コマンド名 | 機能 |
---|---|
sudo | スーパーユーザー権限で実行する |
man | コマンド一覧を表示させる |
chmod | ファイルのアクセス権限を変更する |
echo | オペランドをそのままshellに返す |
作成系の詳細
mkdir
例:
$mkdir hoge
こうするとhogeという名前のディレクトリができる。
touch
例:
$touch hoge
こうするとhogeというファイルができる。
正しくはファイル作成ではないが、ここではファイル作成として紹介する。
cp
例:
$cp hoge hogehoge
こうするとhogeというファイルを、hogehogeという名前でコピーできる。
ディレクトリをコピーしたい場合は、
$cp -R hoge hogehoge
このようにオプションに -R を使うことで、hogeというディレクトリをhogehogeとしてコピーできる。
閲覧系の詳細
ls
例:
$ls
hoge hoge hogehoge hogehoge
上記の2つのコマンドを実行していると、このようになるはずである。
環境により差異はあるが、ディレクトリは色付きで表示され上記のようになる。
色の変化がないためわかりにくいが、
hogeとhogehogeというディレクトリと、hogeとhogehogeというファイルがあることがわかる。
cat
例:
$cat hoge
Hello, World!
hogeというファイルには"Hello,world!"と書かれているとしたとき、このようになる。
単純にファイルの中身を表示させるだけである。
移動系の詳細
cd
例:
~/ $cd hoge/
~/hoge/ $
こうすることによってカレントディレクトリをhogeに変更することができる。
~/hoge/ $cd ..
~/ $
..とすることで一つ上のディレクトリに上がることができる。
~/hoge/ $cd ~
~/ $
このように指定することで、すぐにhomeディレクトリに帰ってくることもできる。
オペランドには相対パスも絶対パスも指定できる。
mv
例:
$mv hoge ./hoge/
このようにすることでファイルhogeをディレクトリhogeの中に移動できた。
$mv hoge huga
このようにすることでファイル名の変更も行える。
mvコマンドは2つ目のオペランドでディレクトリとファイルを間違えた場合、
名前を変えたかったはずなのに違うディレクトリに移動したり、
移動させたかったはずが名前が変わっていたりすることがある。
初心者が間違えやすいトラップだったりする。
削除系の詳細
rm
例:
$ rm hoge
このようにすることでファイルhogeを削除できる。
$rm -R hoge
このようにすることでディレクトリhogeを削除できる。
注意点として、rmコマンドはwindowsの削除と違ってゴミ箱に移動するわけではないので、
間違えてしまった場合復旧が困難である。
なのでこの操作は慎重に行う必要がある。
その他のコマンドの詳細
sudo
あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます。
#1)他人のプライバシーを尊重すること。
#2)タイプする前に考えること。
#3)大いなる力には大いなる責任が伴うこと。
これは初めてLinux機でsudoを実行すると出てくる文章である。
3番を見ればわかる通りsudoコマンドには強大な力がある。
やろうと思えば自分を破壊もできてしまうため、
sudoコマンドを使うときはよく考えてから使うようにしましょう。
例:
$sudo shutdown -h now
試してもいいが考えてから試すように!
自己責任である。
man
例:
$man ls
このようにするとlsコマンドの詳しい説明を見ることができる。
manコマンドを実行するとそのコマンドの仕様を調べることができる。
このページには書かれていない説明などもあるので一度は調べておくべきだ。
chmod
まず先ほど説明したlsコマンドに"-l"というオプションをつけて実行してみよう。
$ls -l
-rw-r--r-- 1 user user 9 1月 1 00:00 hoge.txt
drw-r-xr-x 1 user user 9 1月 1 00:00 hoge/
このような表示になるはずだ。先頭のわけのわからない文字列は、それぞれ意味があり、最初の1文字目は種類を表している。
文字 | 意味 |
---|---|
- | ファイル |
d | ディレクトリ |
l | シンボリックリンク |
その後ろ後ろは3文字区切りで、
"所有者" "グループ" "その他"の順に権限を表している。
このそれぞれにも記号が振られている。
文字 | 意味 |
---|---|
u | 所有者 |
g | グループ |
o | その他 |
a | 全員 |
そしてそこに書かれている"r" "w" "x"にも、もちろん意味がある。
文字 | 意味 |
---|---|
r | 読み取り(read) |
w | 書き込み(wlite) |
x | 実行(execution) |
なのでhoge.txtの所有者の権限は、読み取りと書き取りということになる。
権限を与えるときは"+"、はく奪するときは"-"、指定した権限に変更したいときは"="を使い、
権限を変更する。
例:
$chmod g+w hoge.txt
このようにすることで、hoge.txtのグループに書き込みの権限が与えられる。
$ls -l
-rw-rw-r-- 1 user user 9 1月 1 00:00 hoge.txt
drw-r-xr-x 1 user user 9 1月 1 00:00 hoge/
確かに与えられていることがわかる。
また、それぞれの文字には対応する数字がある。
文字 | 数字(10進数) | 数字(2進数) |
---|---|---|
r | 4 | 100 |
w | 2 | 010 |
x | 1 | 001 |
2進数で見るとそれぞれの数が独立しているため、好きな組み合わせで足し算をしても権限は一つに定まる。
例:
$chmod 777 hoge/
$ls -l
-rw-rw-r-- 1 user user 9 1月 1 00:00 hoge.txt
drwxrwxrwx 1 user user 9 1月 1 00:00 hoge/
このように数字でも指定することができる。
echo
例:
$echo hello,world!
hello,world!
このようにオペランドを返してくれる。
正しくは違うがここではそれくらい軽く紹介する。
参考文献
Linuxの権限確認と変更(chmod)(超初心者向け)
chown - ファイルの所有者やグループを変更 - Linuxコマンド