Linux

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使用率などの詳細な情報つきで表示する。

オプション一覧は以下を参照。

ps コマンド

| (パイプ)処理

左辺が最初に実行され、右辺へ処理が移る。

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作成・編集したファイルを保存します。
:qviコマンドを終了します。
: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コマンド

送信先のディレクトを指定してファイルを送る。

コメント