◆ Directory操作 ◆
◇ 検索
$ find -name [ディレクトリ名] -type d
** -type d でディレクトリを検索 type f でファイル検索
例)
[root@localhost /]# ls ./var/www
cgi-bin html
[root@localhost /]# find -name html -type d
./var/www/html
*findコマンドで検索できる範囲はcurrent directoryとその配下のdirectoryのみ。
*全フォルダを検索したければ最上位のルートディレクトリで上記コマンドを実行。
◇ カレント・ディレクトリ内にあるディレクトリ・ファイルの確認
$ ls : lsコマンドは「list segments」の略
(Option)-a
$ ls -a
(Option)-l (-lは、シンボリックリンクの表示オプション)
各ディレクトリ・ファイルの属性(パーミッション等)が表示されます。
$ ls -l 又は 単に $ll でも可。
(Option)-Xl :ファイルを拡張子ごとにまとめる
$ ls -Xl
[root@localhost www]# ll
total 0
drwxr-xr-x 2 root root 6 Jun 27 22:49 cgi-bin
drwxrwxr-x 4 apache vpsuser 47 Dec 6 19:46 html
[root@localhost www]# cd html
[root@localhost html]# ls -l
total 4
drwxr-xr-x 5 root root 4096 Dec 6 19:32 blog
drwxr-xr-x 3 root root 17 Dec 6 01:48 flaskpj
(属性の読み方)
drwxr-xr-x 2 root root 6 Jun 27 22:49 html
rwx:所有者の権限
r-x: 所有者が所属するグループの権限
r-x: その他の人の権限
2は解説がなく、
root : 最初のrootは、所有者名
root : 2番目のrootは、所有者グループ名
最後の htmlが、対象のDirectory名
(rwxの意味)
-fileの場合
r: 読める
w: 編集して上書き保存できる
x: コマンドとして実行できる ex) /bin/ls
-directoryの場合 r: ファイル一覧が表示できる(lsが打てる)
w: ファイル一覧を修正できる(rm, touch, mvとか)
x: ディレクトリ内にcdできる。ディレクトリ内のfind, touch, rmはできない (Point計算)
(数字の計算方法:意味)
r:4 points w:2 points x:1 points を
権限グループごとに足し算。
上記は、html directoryは '755'
◇現在いるディレクトリのPATHの表示。
$pwd
[○○○jp@○○ ~] $ pwd
/home/users/0/○○○jp
◇ デイレクトリの変更
1) cd [移動先ディレクトリへのpath]
cd ~ : 自身のホームディレクトリへ移動する。
cd : 自身のホームディレクトリへ移動する。
cd / :ルートディレクトリへ移動する。
cd /home : ルートディレクトリの中のhomeディレクトリへ移動する。
2) 前に実行したコマンドのディレクトリーに移動(mkdir の直後とかで使用)
cd !$
◇ディレクトリの作成
1) 基本:work01を作成する場合
$ mkdir work01
2) オプション(権限の指定)
$ mkdir -m パーミッション指定 ディレクトリ名
$ mkdir -m 666 work02
◇ディレクトリの削除
1) 基本
$ rm -r ディレクトリ名
2)オプション(確認なしで削除)
$ rm -rf ディレクトリ名
◇ディレクトリの移動
1)基本
$ mv 元のディレクトリ 移動先
2-1)応用(カレント・ディレクトリ内の全ファイルを下位フォルダに移動)
手順1) .(ドット)付のディレクトリを作る
$ mkdir .dir
手順2) .(ドット)付のディレクトリに全ファイル移動
$ mv * .dir
手順3) .(ドット)付のディレクトリを最終的な残すディレクトリ名に変更
$ mv .dir dir
2-2)応用(カレント・ディレクトリ配下のディレクトリにある全ファイルを現フォルダに移動)
$mv フォルダ名/* . (最後のdotがこのディレクトリという移動先を示してます。)
◇ディレクトリ名の変更
1) 基本: mv コマンドを使います。
$ mv 元の名前 変更後の名前
◇ディレクトリ・Owner Permission変更
1) Ownershipの変更
# chown -R apache:apache * ← * の部分は具体的なdirectory/file名を指定することも可能
(Rは再帰的に実行する、という意味。 上のコマンドは、コマンドを実行したディレクトリに格納されている全てのディレクトリーとファイルに適用される。 (実行した時のCurrent Directoryは、chownの対象に含まれない。)
2) permission(権限)の変更
# chmod -R g+w * <-symbol modeでの記述
(simbol modeでの記述方法)
記号 意味
u 所有者
g 所有グループ
o 所有者でもなく、所有グループでもないその他のアカウント
a 全ての意味。u,g,o全てを選択した意味となります。
省略 ugoaを省略することも可能です。その場合は、「a」を指定したことになります。
記号 意味
+ 選択したアクセス権を加える。
- 選択したアクセス権を削除する。
= 選択したアクセス権にする
# chmod -R 755 *
(ファイル・ディレクトリ属性)
chownでファイルの所有者(ユーザーとグループ)の変更をし、chmodで書き込み権限を変更します。-R オプションをつけることで、「サブディレクトリにあるファイルも対象」になります。
(ねこでもわかる 「さくら VPS」 を試してみる 第八回 -Wordpressインストール DB構築 :参照)
通常WEBに公開するファイルのパーミッションはhtmlファイルやcssファイルなどは644、ディレクトリは755で大丈夫。 htmlファイルやcssファイルを読み込むのは、一般のユーザではなく、apacheだから。 (その他のユーザでファイル又はディレクトリにアクセスする場合には、ドキュメント・ルートからファイルまでの全てのディレクトリと、実行するファイルに、実行権限 '1' が最低でもついている必要があります。'601' とか、'401' でも良いので。 ついていないとpermission deniedのエラーが出ます。)
3))一連のPATHとファイルの実行権限を確認したいとき。
namei -m [PATH とFile名] (*当然、PATHのディレクトリーのみでも可)
[root@ofcm9och /]# namei -m var/www/html/templates/sample01.html
f: var/www/html/templates/sample01.html
drwxr-xr-x var
drw-r-xr-x www
drw-r-xr-x html
drw-r-xr-x templates
-rw-r-xr-x sample01.html
◆ File 操作
◇file検索
find / -name "<ファイル名>"
ワイルド・カード "*" 使用可能。
又は、
find / -name "<ファイル名>" -type f
でも可。
◇ 作成・追加
$ touch ファイル名
◇ 削除
$ rm ファイル名
(確認なしは rm -rf ファイル名)
◇コピー作成
cp 元ファイル名 新ファイル名
新ファイル名を元ファイル名+日付で指定。
cp -piv /etc/selinux/config /etc/selinux/config.`date "+%Y%m%d_%H%M%S"`
-p, --preserve オーナー,グループ,パーミッション,タイムスタンプを保持したままコピーする
(タイムスタンプを上のように不可するときは、 -p だけでも良い)
-i, --interactive 上書きされるファイルがあるときは問い合わせする
-v, --verbose コピーの前に,ファイル名を表示する
◇移動
$ mv ファイル名 移動先
例)
[root@localhost html]# mv test.py ../../../root/flaskpj
[root@localhost html]# cd ../../../root/flaskpj
[root@localhost flaskpj]# ls -a
. .. test.py venv
◇名前の変更
$ mv 元ファイル名 新ファイル名
◆アーカイブ・ファイル tar の取り扱い
tar はアーカイブするだけで圧縮していないが、zオプションがついていると圧縮されている。
オプションは、どの順番で書いても構わない。
tar zxvf Python-3.5.2.tgz
tar xvfz mod_wsgi-4.6.5.tar.gz
オプション: -x :書庫からファイルを取り出す(tarファイルを展開する)
オプション: -v(--verboseオプション):処理したファイルの一覧を表示する
オプション: -f : 指定したファイル名を使用する
オプション: -z : gzipを通し処理する(拡張子:.gz)
オプション: -a : 圧縮形式を拡張子から自動認識
◆ パッケージの管理
yum系、rpm系コマンドともルート・ディレクトリで実行する。
yumの使用を優先し、出来ないものがあればrpmコマンドを使用。
◇yum系コマンド
1) インストールされたパッケージの確認
$ yum list [installed|updates|available|extras]
2) 利用できるパッケージ情報の確認
$ yum list available | grep php
php.x86_64 5.4.16-46.el7 base
cf) pipで取得できるパッケージ・バージョンの確認
pip install [パッケージ名] ==
3) パッケージをインストールする
yum install [パッケージ名]
yum install -y python-pip --enabl erepo=epel を実行すると
python2-pip.noarch 0:8.1.2-8.el7 がインストールされた。 何?
(?? インストールするディレクトリを指定する: --installrootの指定 ??)
yum --installroot=/path --releasever=7 install postgresql93-server
(pathはabsolute path)
yum --installroot = /home/tw_virtualenv/lib/python3.7/site-packages install python-pip
--enablerepo=epel
- ではエラー。
調べると
-installrootオプションはchroot内に新しいLinux環境を作成しようとする際 に、
そのchroot内にパッケージをインストールなどするために使用されます。
できないのか?
(インストールするディレクトリを指定する: --downloaddirの指定 )
yum install nginx --downloadonl --downloaddir=DownloadDir
3) インストール済みのパッケージをアップデートする
yum update
(yum自身のアップデート: yum update yum)
yum upgrade
yum update --obsoletesと同じ
--obsoletesは、パッケージの更新時にのみ有効なオプションで、不要になった
パッケージの削除を自動で行う 。
CentOSでは、/etc/yum.confに
obsoletes=1
と書いてあるため、デフォルトで--obsoletes
が有効の状態なので、
yum update
もyum upgrade
も変わらない。4) プロセスの強制終了
何らかの理由で以下のメッセージが出て、新しいyumコマンドが実行できない時。
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum
$ rm -f /var/run/yum.pid
5) wget の取得
# yum install wget
◇rpm系コマンド
Linux系ディストリビューションに標準でついてくる rpmコマンドを使用。 なければインスール
する必要がある。
1)インストールされたパッケージの確認。
# yum list installed | grep パッケージ名
$ yum list | grep httpd <-Apacheのパッケージであるhttpdの表示
httpd.x86_64 2.4.6-88.el7.centos base
httpd-devel.x86_64 2.4.6-88.el7.centos base
****省略****
python2-keycloak-httpd-client-install.noarch
# rpm -qa | grep パッケージ名
(rpm -qa パッケージ名 だけでも動くが、一気に表示されてしまう。)
(オプション)
| less ゆっくり一覧表示
| grep
grepで指定した条件に合致するものだけを表示。
◇レポジトリ(epel)
1) epel リポジトリの追加
[root@ /]# yum install epel-release
Installed:
epel-release.noarch 0:7-11
Complete!
2)epel レポジトリ・オフ
# vi /etc/yum.repos.d/epel.repo
[epel]
enabled=1
↓変更
enabled=0
3) レポジトリを使う場合は、使うことを明示
$ yumにオプション
--enablerepo=epel を指定
♯ yum install --enablerepo=epel, certbot python2-certbot-apache
$ yum install --enablerepo=remi,remi-php71 phpMyAdmin
4) レポジトリがインストールされているか確認
[root@ /]# rpm -qa | grep "epel"
epel-release-7-11.noarch
◆ テキストの操作 ◆
実際の利用例は、
【 Linux の ログ格納場所一覧 と SSH アクセスログをみる 】
◇cutコマンド
テキストファイルを横方向に分割するコマンド
-d (オプション--delimiter):区切り文字を指定する
(-dオプションは、次の-fオプションと組み合わせて使用する。)
-f (オプション--fields):
-dオプションによって区切られた項目の中で取り出したい項目を項目数で指定する
◇Sort コマンド
ファイルの内容を並べ替えるコマンド
書式は、[$ sort ファイル名]だが、ファイルに書き出したい場合はリダイレクトして
[$ sort 並べ替え対象ファイル > 並べ替え出力ファイル]
-n(オプション--numeric-sort):数値として並べ替える。
-r(オプション--reverse):降順で並べ替える。
◇uniqコマンド
ファイルから重複する行を削除するコマンド
-cオプション:(--countオプション):重複した行数も表示する
◇wcコマンド
ファイルの大きさを確認する
書式は、[$ wc ファイル名]
行数、1白で区切られた単語数、ファイル容量(バイト数)の順で表示される。
( -l オプションは、行数のみ表示)
[root@ httpd]$ wc access_log
1141 21934 206777 access_log
◆ ログの確認 ◆
◇ tail コマンドで。
リアルタイムで確認する
(logファイルの存在するディレクトリーで)
tail -f [ ログファイル名 ] リアルタイムで操作ログが表示されていく。
又は
tailf [ ログファイル名 ] 直近の操作ログを表示。
*直近のログ 10行を表示。 新しくログが書き込まれると自動的に表示するので、ほぼリアルタイムだが、
tailfはイベントが発生するまでモニターを止めているので、サーバー負荷がかからない。
終了するには、' ctl + c '
◇ less <ファイル名> コマンドで
q
:less終了(quit)f
:次のページを見る(forward)b
:前のページを見る(backward)j
:1行下へk
:1行上へg
:ファイルの先頭へ移動G
:ファイルの末尾へ移動/キーワード
:前方検索。n
で次の検索一致へ移動。N
で前の検索一致へ移動。?キーワード
:後方検索。n
で次の検索一致へ移動。N
で前の検索一致へ移動。F
:監視状態。tail -f
と同じ機能。Ctrl + c
でless状態に戻る。
F
で監視状態になり、止めたい時はCtrl + c
で止めて/キーワード
で検索することが可能。◆ ユーザの管理 ◆
1) ユーザーの追加
# useradd usertest
*home Directoryにユーザが追加されます。
*所属グループは、指定しなければユーザ名となります。
2) 特定のユーザ情報を確認
$ cat /etc/passwd |grep [ ユーザー名 ]
[root@ home]# ls -a
. .. vpsuser
$ cat /etc/passwd |grep vpsuser
vpsuser:x:1000:1000::/home/vpsuser:/bin/bash
表示される情報は、左から、
・ユーザー名 ・パスワード(xで表示される)・ユーザーID(UID)
・グループID ・何も表示されない箇所は作成時に任意でつけるコメント
・ユーザーのホームディレクトリ
・シェルの場所
◆ PATHの管理 ◆
1) Pathの確認
[@ /]$ echo $PATH
(CentOS 7の初期設定)
(結果)
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
2) Symbolic Linkの作成
lnコマンド:ファイルに複数のパス名を付加します。 $ ln -s [元のファイルパス名] [新しいファイルパス名]
ln -s /usr/local/bin/python3.5 /usr/bin/python3
◆ Memory / Diskの管理 ◆
1) メモリー容量の確認。
- free コマンド: 現在のメモリ使用量
[root@] # free -m (-m で, mega bite 単位 -g でgiga bite単位)
total used free shared buff/cache available
Mem: 992 184 606 2 201 651
Swap: 1023 103 920
- top コマンド: 実行中のプロセスの状態を確認
[root@] # top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 125272 2716 1656 S 0.0 0.3 0:03.72 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
2) ディスク容量の確認。
[root@] # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda4 16G 2.0G 14G 13% /
devtmpfs 233M 0 233M 0% /dev
tmpfs 244M 0 244M 0% /dev/shm
tmpfs 244M 4.5M 240M 2% /run
tmpfs 244M 0 2 44M 0% /sys/fs/cgroup
/dev/vda2 497M 222M 276M 45% /boot
tmpfs 49M 0 49M 0% /run/user/1000
◆ システムの管理 ◆
OSの再起動
shutdown -r now
参考: https://qiita.com/Tocyuki/items/2e811cedd53b58b10270
0 件のコメント:
コメントを投稿