2017

7

6

よく使う初歩的なLinuxシェルコマンドまとめてやんよ!!!

Pocket
LINEで送る
Facebook にシェア
reddit にシェア
LinkedIn にシェア

ワーキングディレクトリ関連

「pwd」カレントディレクトリを表示

pwd ・・・ Print Working Directory
$ pwd
--> /home/admin

「cd」ディレクトリ移動

cd ・・・ Change Directory
# homeディレクトリから子階層のadminディレクトリに移動
$ cd dir
--> admin

「ls」ディレクトリファイル一覧を表示

ls ・・・ List Segments
$ ls
--> home index.html

lsコマンドのオプション一覧

オプション名説明
-a隠しファイルも含めたすべてのファイルを表示
-F構造も一緒に表示(フォルダは◯◯/、実行可能ファイルは◯◯*)
-lファイルの詳細(ファイル権限・所有者・グループ・容量・最終修正日時)も表示
-lr-lの逆順に表示
-tl更新時間順に表示
-lSファイルサイズ順に表示
-Xlファイルを拡張子順に表示
-1リストを縦表示
-R中身のあるディレクトリ内容を再帰的に表示
-mファイル名をカンマで区切って表示
-lhファイルサイズを単位変換(k,m,g)して表示

ファイル・フォルダ操作

「cat」ファイルの中身を表示

cat ・・・ CATanate
# ファイルの中身全体を表示
$ cat index.html
# ファイルの中身をウィンドウ画面部分だけ表示
$ less index.html
# ファイルに行番号を付けて表示(空行はカウントされない)
$ nl index.html
# ファイルに行番号を付けて表示(空行も含めてカウント)
$ cat -n index.html

「touch」ファイルを新規作成/タイムスタンプを変更

# 既存ファイルならタイムスタンプを変更、なければ「index.html」を作成
$ touch index.html
# アクセス日時のみ変更
$ touch -a index.html
# 更新日時のみ変更
$ touch -m index.html

「cp」ファイル/ディレクトリをコピー

cp ・・・ CoPy
# index.htmlをindex2.html名義でコピー
$ cp index.html index2.html
# コピー先(index2.html)に同名ファイルが存在する場合、上書きするか確認
$ cp -i index.html index2.html
# コピー先(index2.html)に同名ファイルが存在しても強制的に上書き
$ cp -f index.html index2.html
# コピー元(index.html)の所有者・タイムスタンプ・アクセス権の情報を保持したままコピー
$ cp -p index.html index2.html
# newディレクトリをhomeディレクトリ直下に丸ごとコピー
$ cp -R new /home

「mv」ファイル/ディレクトリ を移動・名前を変更

mv ・・・ MoVe
# index.htmlをnewフォルダ内のファイル名「new.html」に変更して移動
$ mv index.html new/new.html
# newディレクトリを/homeディレクトリ直下へ移動
$ mv new /home
# 移動先に同名ファイルが存在する場合、上書きするか確認
$ mv -i new /home
# 移動先に同名ファイルが存在していても強制的に上書き
$ mv -f new /home

「rm」ファイルを削除

rm ・・・ ReMove
$ rm index.html

「mkdir」ディレクトリを新規作成

mkdir ・・・ MaKe DIRectory
 $ mkdir newdir 

「rmdir」ディレクトリを削除

rmdir ・・・ ReMove DIRectory
 
# フォルダを削除(中身がある場合はエラー) 
$ rmdir newdir 
# 中身のファイルも一括で削除する場合 
$ rmdir -r newdir 

「tail」テキストファイルの末尾を出力

 
# index.htmlの末尾から出力
$ tail index.html 
# index.htmlの末尾から100行目までを出力
$ tail -n 100 index.html  
# ファイルの末尾を出力し続けて(リアルタイムに反映)表示
$ tail -f access.log  

「split」ファイルを複数に分割

指定ファイルを決まった大きさに分割ができます(デフォルトでは1000行毎に分割)
 
# 1100行あるdata.csvを300行毎に区切って「l_data」名義で分割
$ split -l 300 data.csv sl_data_
$ ls
--> data.csv sl_data_aa sl_data_ab sl_data_ac sl_data_ad

# 3MBあるdata.csvを1MB毎に区切って「sb_data」名義で分割
$ split -b 1m data.csv sb_data_
$ ls
--> data.csv sb_data_aa sb_data_ab sb_data_ac


# data.csvを4分割に区切って「sn_data」名義で分割
$ split -n 4 data.csv sn_data_
$ ls
--> data.csv sn_data_aa sn_data_ab sn_data_ac sn_data_ad

アクセス権限関連

「chown」所有者の変更

chown ・・・ CHange OWNer
 
# /var/www/html/index.htmlの所有者をnginxに変更
$ chown nginx /var/www/html/index.html  

「chown」グループの変更

chown ・・・ CHange GRouP
 
# /var/www/html/index.htmlのグループをnginxに変更
$ chgrp nginx /var/www/html/index.html  

「chown」所有者&グループの同時変更

 
# /var/www/html/index.htmlの所有者をroot、グループをnginxに変更
$ chown root:nginx /var/www/html/index.html  

「chgrp」指定ディレクトリ配下すべてのグループ変更

 
# /var/www/htmlディレクトリ配下のグループをnginxに変更
$ chgrp -R nginx /var/www/html/  

「chmod」アクセス権限の変更

chmod ・・・ CHange MODe
 
# /var/www/html/index.htmlの権限を755に変更
$ chmod 755 /var/www/html/index.html  

chmodコマンドの指定書式

$ chmod [ユーザ][グループ][その他] ファイル名
項目記号意味
[ユーザ] u 所有者
gグループ
oその他のユーザー
aすべてのユーザー
[演算子]+指定アクセス権を追加
-指定アクセス権を削除
=指定アクセス権に設定
[アクセス権]r[4] 読み込み可
w[2] 書き込み可
x[1] 実行可

ユーザー関連

「su」ユーザー切り替え

su ・・・ Switch User
[admin@centos7 ~]$ id ← 現在のユーザー"admin"のIDとグループを表示
-->  uid=1000(admin) gid=1000(admin) groups=1000(admin),100(users)

[admin@centos7 ~]$ su yanyo ←yanyoユーザーに切り替え
[yanyo@centos7 admin]$ id ← 現在のユーザー"yanyo"のIDとグループを表示
--> uid=1001(yanyo) gid=1001(yanyo) groups=1001(yanyo),100(users)

[yanyo@centos7 admin]$ pdw  ← 現在のカレントディレクトリを確認
--> /home/admin
[yanyo@centos7 admin]$ exit  ← "yanyo"ユーザーから離脱
[admin@centos7 ~]$
※切り替えユーザー名の前に"-"(ハイフン)を付けるとユーザーIDが変わると共に新しいユーザー環境を使用(上下ともに9行目参照)
[admin@centos7 ~]$ id ← 現在のユーザー"admin"のIDとグループを表示
-->  uid=1000(admin) gid=1000(admin) groups=1000(admin),100(users)

[admin@centos7 ~]$ su - yanyo ←yanyoユーザーに切り替え("-"付き)
[yanyo@centos7 admin]$ id ← 現在のユーザー"yanyo"のIDとグループを表示
--> uid=1001(yanyo) gid=1001(yanyo) groups=1001(yanyo),100(users)

[yanyo@centos7 admin]$ pdw  ← 現在のカレントディレクトリを確認
--> /home/yanyo ← ※"yanyo"ユーザーのホームディレクトリに強制移動されている
[yanyo@centos7 admin]$ exit  ← "yanyo"ユーザーから離脱
[admin@centos7 ~]$
Pocket
LINEで送る
Facebook にシェア
reddit にシェア
LinkedIn にシェア

トップへ