これからLinuxを始める知人に見せるために書きました
- 必要そうなのは随時増やします
- 書くと長そうなのは最低限だけ書いて残りをリンク先に丸投げします
ここに書かれたコマンドは全て非管理者権限のシェルで実行されることを想定しています
- 管理者権限が必要なコマンドは頭に
sudo
をつけています(現状はない) - アクセスするのに管理者権限が必要な場合も
sudo
をつけてください
このページはScrapboxからの移植です
全般
コマンドのヘルプを見る
<コマンド> --help
または
<コマンド> -h
- どちらかしか対応していない場合がある
コマンドのマニュアルを見る
man <コマンド>
- 全てのコマンドが対応しているわけではない
- 日本語化されていないマニュアルもある
コマンドオプションについて
-
ls -a
の-a
のことをオプションという-
-
(ハイフン)から始まるのがオプション
-
- アルファベット1文字のオプションと複数文字のオプションがある
- 例)
ls -a
とls --all
- 例)
- ほとんどのオプションは複数同時に使える
- 例)
ls -a -l
- 例)
- 1文字のオプションは連結できる
-
ls -a -l
->ls -al
-
ディレクトリ操作系
カレントディレクトリを変更する
cd <ディレクトリ>
ホームディレクトリをカレントディレクトリにする
cd
または
cd $HOME
カレントディレクトリを確認する
pwd
ファイルの一覧を見る
カレントディレクトリの中を見る場合
ls
特定のディレクトリの中を見たい場合
ls <ディレクトリ>
ファイルごとの詳細な情報も見たい場合
ls -l
または
ll
- .bashrcなどでエイリアスが有効になっている場合のみ使える
表示される主な情報
- パーミッション
- ファイルタイプ(ディレクトリかどうかもわかる)
- 作成日時
- 更新日時
- ファイルサイズ
- ファイル名・ディレクトリ名
- リンク先(シンボリックリンクの場合)
- ハードリンクも何か出たっけ?
隠しファイルや隠しディレクトリも表示したいとき
ls -a
または
la
- .bashrcなどでエイリアスが有効になっている場合のみ使える
ファイルのみを表示したいとき
ls -F | grep -v / | sed s/\*$//g
ディレクトリのみを表示したいとき
ls -F | grep / | sed s/\\/$//g
ファイルを移動する
mv <移動前> <移動先>
例
mv foo.sh ./bar/
- foo.shをbarディレクトリの中に移動する
ファイル名を変更するのにも使える
mv <変更前> <変更後>
例
mv foo.sh bar.sh
- foo.shのファイル名をbar.shに変更する
ファイルをコピーする
cp <コピー前の場所> <コピー後の場所>
ディレクトリを丸ごとコピーする場合
cp -r <コピー前の場所> <コピー後の場所>
ファイルを削除する
rm <削除するファイル>
-f
を付けないとファイルを削除するときに本当に削除していいか訊かれることがある
rm -f <削除するファイル>
ディレクトリごと削除する場合
rm -rf <削除するディレクトリ>
-
-f
を付けないとディレクトリの中のファイルごとにいちいち質問されて面倒 - つけ忘れて実行してしまった場合は
Ctrl-c
で中断して初めからやり直そう
ファイルの圧縮・解凍
- 方法が多岐に渡るため省略
リンクの作成
シンボリックリンク(Windowsで言うショートカット)を作成する
ln -s <ファイル名> <リンク名>
-
-s
がないとハードリンクになってしまうので注意
権限(パーミッション)編集系
権限の基礎知識
- これを知らないことには何も始まらない
権限を設定できる__対象__は3つ
-
u
: 所有者 -
g
: 所有グループ -
o
: それ以外-
a
: 上記3つすべて
-
権限の種類も3つ
-
r
: 読み取り権限 -
w
: 書き込み権限 -
x
: 実行権限- あくまでファイル自身を直接実行する場合
- シェルスクリプトをshコマンドの引数に渡して実行する場合などでは必要ない
権限を確認する
ls -l
- 「ファイルごとの詳細な情報も見たい場合」と全く同じコマンド
- 読み方は以下を参照
任意の権限を許可する
chmod <対象>+<種類> <ファイル>
例
chmod o+w foo.txt
-
foo.txt
を誰でも書き込みできるようにする
任意の権限を剥奪する
chmod <対象>-<種類> <ファイル>
例
chmod a-x foo.sh
-
foo.sh
を(root以外)誰も実行できないようにする
ディレクトリとその中のファイル全てを一括で変更する
chmod -R <パーミッション> <ファイル>
- 大文字の
R
なので注意
参考
所有者を変更する
chown <所有者のユーザー名> <ファイル>
所有グループを変更する
chown <所有者のユーザー名>:<所有グループ名> <ファイル>
- 所有者を省略してコロン(
:
)から右だけを書いてもいい
ディレクトリとその中のファイル全てを一括で変更する
chown -R <所有者のユーザー名> <ファイル>
chown -R :<所有グループ名> <ファイル>
chown -R <所有者のユーザー名>:<所有グループ名> <ファイル>
- 大文字の
R
なので注意
ソフトウェア(パッケージ)の管理
- ディストリビューションによって違う
RedHat系(CentOSなど)
yum
コマンドを使う
Debian系(UbuntuやRaspberry Pi OSなど)
apt
コマンドを使う
ファイルを編集する系
ファイルの中身を確認する
cat <ファイル>
ファイルが長い場合は
cat <ファイル> | less
テキスト形式のファイルを編集する
vim <ファイル>
- 基本はこれだけ覚えておけばよさそう
- iキー: 挿入モードに入る
- 普通のテキストエディタと同じような操作ができるようになる
- Escキーで戻る
-
:w
: 上書き保存 -
:wq
: 上書き保存してから閉じる -
:q
: 閉じる(通常) -
:q!
: 変更を保存せずに閉じる
- iキー: 挿入モードに入る
- もっとちゃんと活用したい人は以下のページを参照
nano <ファイル>
- 使い方は画面を見て
ほかにもありそうだけど筆者が使ったことがあるのがこれだけ
空のファイルを作成する
touch <ファイル名>
- 何も書き込まれていないファイルが作成される
標準出力関連
- 標準出力とはコンソール上に表示される文字のこと
標準出力をファイルに書き出す
<標準出力を出すコマンド> > <保存するファイル名>
例
ls --help > ls.txt
- lsコマンドのヘルプが
ls.txt
に保存される
長い出力をスクロールして見れるようにする
<標準出力を出すコマンド> | less
検索して合致した行だけを出力する
<標準出力を出すコマンド> | grep <検索文字列>
行数を出す
<標準出力を出すコマンド> | wc -l
その他
シェルスクリプトの実行
sh <スクリプトファイル>
コマンドが格納されている場所を確認する
which <コマンド>
- 使用中のユーザーでしか使えないコマンドなのかを確認するのにも使える
蒸気機関車を走らせる
sl
- あらかじめslコマンドをインストールしておかないと使えない
書きたいけどまだ書いてないコマンド
ps
kill
service
systemctl
top
df
- ユーザー作成・編集・削除