linux
sudo, su
sudoは現在のユーザーのまま他のユーザーに成り代わってコマンドを実行できる。
sudoコマンドを使うためには、予めsudoが使える権限がそのユーザーに付与されている必要がある。
suは他のユーザーにログインし直す事ができる。
いつでも使えるが、ログインしようとしているユーザーのパスワードが必要。
パーミッション
読み込み(r)、書き込み(w)、実行(x)の権限
r=4、w=2、x=1 という数字が割り当てられている。
ls -l [権限を確認したいファイルのパス]で確認できる。
所有者・グループユーザー・一般ユーザーの順で表示される。
数字で755などと表示される。
chmod
アクセス権限を書き換える
chmod [権限の種類] [ファイル/フォルダ]
例
chmod 777 projects/project1
chown
ファイルやディレクトリの所有者を変更する
chown [所有者][ファイル/ディレクトリ]
パッケージ・マネージャ
yumコマンド
# パッケージをインストールする
$ yum install [ファイル名]
# システムにインストールされているパッケージをアップデートする
$ yum update
# パッケージをアンインストールする
$ yum remove [ファイル名]
# サーバーにあるパッケージを一覧する
$ yum lis
シェル
ユーザーの入力したコマンドを解釈するソフトウェアのこと
ls
listの略で、フォルダやファイルの一覧を表示する。
ディレクトリ
- カレントディレクトリ(.)
- 親ディレクトリ(..)
- ホームディレクトリ(~)
- ルートディレクトリ(/)
cp
copyの略
cp [コピー元] [コピー先]
cp test.rb test_copy.rb
mv
ファイルの移動およびリネーム
#ファイルの移動
mv [移動させたいもの] [移動先]
# 名前変更
mv [元のファイル名][新しいファイル名]
rm
ファイルを削除する
rm [削除したいファイル名]
mkdir
ディレクトリを作成する
mkdir [ディレクトリ名]
touch
指定したファイルが存在しない場合は空のファイルを新規に作成する。
指定されたファイルへのアクセス時刻と更新時刻を現在の時刻または任意の時刻に変更する。
# 新規のファイルを作成する・アクセス時刻と更新時刻を現在の時刻に変更
touch [ファイル名]
# sampleファイルのアクセス時刻や最終更新日時を21年10月11日22:00に変更
touch -t 2110112200 sample
cat
ファイルの内容を結合し、表示するコマンド。
concatnateの略
# ファイルの閲覧
cat [ファイル名]
# ファイルの結合
cat [ファイル1] [ファイル2]
tail
ファイルの終わり部分を表示する。
オプションをつけずに実行すると終わりから10行表示される。
tail -f error.log
-fオプションをつけると、エラーログが追加されるたびに自動で新しいエラーログを表示してくれる。
プロセスを確認
psコマンド
実行中のプロセスを表示。
-a | 自分以外のユーザーのプロセスも表示する。 |
-r | 実行中のプロセスのみを表示する。 |
-u | ユーザー名とプロセスが実行された時刻を表示する。 |
-aux | 実行中のすべてのプロセスに関してCPU使用率などの詳細な情報つきで表示する。 |
オプション一覧は以下を参照。
| (パイプ)処理
左辺が最初に実行され、右辺へ処理が移る。
ls | grep p
killコマンド
プロセスを終了する。
kill [プロセスID]
kill -9は問答無用の強制終了。
シグナル指定なしなら -15 -1 -9の順にシグナルが流れる。
子プロセスが残る可能性があるので可能な限り-9を使わないほうが良い。
$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
lessコマンド
テキストファイルを1画面ずつ表示する。
Enterで1行、Spaceで1画面ずつスクロールする。
終了するにはqキーを押す。
vi
通常モード
コマンド | 説明 |
---|---|
:w | 作成・編集したファイルを保存します。 |
:q | viコマンドを終了します。 |
:q! | 編集した内容を保存しないでviコマンドを強制終了します。 |
:wq | 編集した内容を保存してviコマンドを強制終了します。 |
/ (検索)
/に続けて文字をうち、enterすると検索文字へ移動する。
u (アンドゥ)
インサートモード中の処理を1つずつundoできる。
i (インサートモード), ESC
SSH
Secure Shell。
リモートコンピュータと通信するためのプロトコル。
暗号化されるため、安全に通信できる。
秘密鍵と公開鍵
ssh-keygen -t rsa
上記を打てば秘密キーと公開キーを生成できる。
公開鍵は ~/.ssh/id_rsa.pub、秘密鍵は~/.ssh/id_rsaに保存される。
公開鍵でのログイン手順
~ $ cd .ssh # .sshディレクトリへ移動
.ssh $ ssh-keygen -t rsa # 公開鍵と秘密鍵を作成
指示通りパスワードを入力
リモートサーバにローカル環境の公開鍵のファイル(id_rsa.pub)をコピーする
# .sshディレクトリにローカル環境の公開鍵のファイル(id_rsa.pub)をコピー
$ scp ~/.ssh/id_rsa.pub [ユーザー名]@ [IPアドレス]:~/.ssh
awsではpemでSSHできるため以下のようにするのが一般的。
$ ssh -i [ダウンロードした鍵の名前].pem ec2-user@[作成したEC2インスタンスと紐付けたElastic IP]
ローカル環境の公開鍵のファイル(id_rsa.pub)の中身をリモートサーバの公開鍵のファイル(~/.ssh/authorized_keys)に追記。
リモートサーバの公開鍵のファイル(~/.ssh/authorized_keys)を作成し、その中にローカル環境の公開鍵のファイル(id_rsa.pub)の中身を追記。
ローカル環境では、公開鍵はid_rsa.pubに保存しましたが、リモートサーバでは公開鍵は ~/.ssh/authorized_keysに保存する。
# リモートサーバにログイン
$ ssh [ユーザー名]@ [IPアドレス]
# .sshディレクトリへ移動
$ cd ~/.ssh
# リモートサーバの公開鍵のファイル(~/.ssh/authorized_keys)を作成
touch .ssh/authorized_keys
# 公開鍵の中身を追記
$ cat ~/id_rsa.pub >> authorized_keys
scpコマンド
送信先のディレクトを指定してファイルを送る。
コメント