コピペ出来るようによく使うLinuxコマンドを具体例付でまとめてみた
cpコマンド
ファイルやディレクトリをコピーするコマンド
オプション
オプション | 説明 |
---|---|
-f | コピー先に同名のファイルがあれば上書きする |
-i | コピー先に同名のファイルがあれば上書きするかどうか確認する |
-p | コピー元ファイルの属性(所有者、所有グループ、アクセス権、タイムスタンプ)を保持したままコピーする |
-r、-R | ディレクトリ内を再帰的にコピーする(ディレクトリをコピーする) |
-d | シンボリックリンクをシンボリックリンクとしてコピーする |
-a | できる限り元ファイルの構成と属性をコピー先でも保持する(-dpRと同じ) |
data.txtファイルをdata.BAK.txtという名前でコピーする
[root@ src]# ls
data.txt
#コピー作成
[root@ src]# cp data.txt data.BKUP.txt
[root@ src]# ls
data.BKUP.txt data.txt
/usr/local/src/直下にある「dir1」ディレクトリを/tmp/bkupディレクトリにコピーする
[root@ src]# cp -r /usr/local/src/dir1/ /tmp/bkup
findコマンド
検索コマンド
検索式
検索式 | 説明 |
---|---|
-name ファイル名 | ファイル名で検索する |
-atime 日時 | 最終アクセス時刻で検索する |
-mtime 日時 | 最終更新時刻で検索する |
-pem アクセス権 | アクセス権で検索する |
-size サイズ | ファイルサイズで検索する |
-type ファイルの種類 | ファイルの種類で検索する f:ファイル l:シンボリックリンク d:ディレクトリ |
-user ユーザー名 | ファイルの所有者で検索する |
マッチしたファイルを表示する(省略可能) | |
-exec コマンド || \; | マッチしたファイルに対してコマンドを実行する |
-ok コマンド || \; | マッチしたファイルに対してコマンドを実行する(確認あり) |
/etcディレクトリ以下から、ファイル名が「sshd_config」であるファイルを検索する
[root@ /]# find /etc -type f -name "sshd_config"
/etc/ssh/sshd_config
/varディレクトリ以下から、フォルダ名が「tmp」であるフォルダを検索する
[root@ /]# find /var -type d -name "tmp"
/var/opt/remi/php80/tmp
/var/tmp
/etcディレクトリ以下から、ファイル名の末尾が「.conf」であるファイルを検索する
[root@ /]# find /etc -type f -name "*.conf"
/etc/man_db.conf
/etc/abrt/gpg_keys.conf
/etc/abrt/abrt.conf
grepコマンド
文字列検索コマンド
オプション
-rオプション:再帰的に検索するオプション
/etcディレクトリ以下から、再帰的に、文字列「localdomain」を含むファイルを検索する
[root@ /]# grep -r "localdomain" /etc
/etc/sysconfig/network-scripts/network-functions: '(none)' | 'localhost' | 'localhost.localdomain')
/etc/sysconfig/network-scripts/network-functions: # ['(none)', 'localhost' or 'localhost.localdomain' are not valid]
/etc/hostname:localhost.localdomain
/etc/pki/tls/certs/make-dummy-cert: echo localhost.localdomain
/etc/pki/tls/certs/make-dummy-cert: echo root@localhost.localdomain
/etc/hosts:127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
/etc/hosts:#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
chmodコマンド
アクセス権を変更するコマンド
オプション
オプション | 説明 |
---|---|
-v | コマンド実行結果を表示 |
-c | 変更があった場合のみ、実行結果を表示 |
-R | 指定したディレクトリ以下にある全ファイルのアクセス権を変更する |
「dir」ディレクトリ以下(再帰的に)のパーミッションを777から775に変更する
※パーミッションを777から775に変更
【777】drwxrwxrwx
「所有者」「所有グループ」「その他」は、「読取」「書込」「実行」の権限を持っている
⬇
【775】drwxr-xr-x
「所有者」は、「読取」「書込」「実行」の権限を持っている
「所有グループ」は、「読取」「実行」の権限を持っている
「その他」は、「読取」「実行」の権限を持っている
#「dir」ディレクトリのパーミッションは777であることを確認
[root@ src]# ls -l
drwxrwxrwx 2 root root 4096 Oct 12 11:48 dir
#パーミッションを777から755に変更
[root@ src]# chmod -cR 755 dir
mode of ‘dir’ changed from 0777 (rwxrwxrwx) to 0755 (rwxr-xr-x)
#「dir」ディレクトリのパーミッションは775であることを確認
[root@ src]# ls -l
drwxr-xr-x 2 root root 4096 Oct 13 11:48 dir
chownコマンド
ファイルやディレクトリの所有者を変更するコマンド。変更できるのは、rootユーザーのみ。
オプション
オプション | 説明 |
---|---|
-R | 指定したディレクトリとその中にある全ファイルをの所有者を変更する |
「testfile」ファイルの所有者をlinuxからlpicに変更する
#所有者がlinuxである
[root@ src]# ls -l testfile
-rw-rw--r-- 1 linux staff 2048 Jun 27 10:00 testfile
#testfileファイルの所有者をlpicに変更
[root@ src]# chown lpic testfile
#所有者がlpicである
[root@ src]# ls -l testfile
-rw-rw--r-- 1 lpic staff 2048 Jun 27 10:00 testfile
chgrpコマンド
ファイルやディレクトリのグループを変更するコマンド。一般ユーザーでも使うことができるが、実行するユーザーが所属しているグループに限られる。スーパーユーザーの場合は、どのグループにでも変更することができる
オプション
オプション | 説明 |
---|---|
-R | 指定したディレクトリとその中にある全ファイルをの所有グループを変更する |
「testfile」ファイルの所有グループをstaffからlpicに変更する
#所有グループがstaffである
[root@ src]# ls -l testfile
-rw-rw--r-- 1 linux staff 2048 Jun 27 10:00 testfile
#testfileファイルの所有者をlpicに変更
[root@ src]#chgrp lpic testfile
#所有グループがlpicである
[root@ src]# ls -l testfile
-rw-rw--r-- 1 lpic lpic 2048 Jun 27 10:00 testfile
useraddコマンド
ユーザーアカウントを作成する
オプション
オプション | 説明 |
---|---|
-c コメント | コメントフィールドを指定する |
-d パス | ホームディレクトリを指定する |
-g グループ名/GID | プライマリグループを指定する |
-G グループ名/GID | プライマリグループ以外に所属するグループを指定する |
-s パス | デフォルトシェルを指定する |
-D | デフォルトの設定値を表示もしくは設定する |
-m | ホームディレクトリを自動的に作成する※Debian系、GNU/Linux |
「apache」ユーザーをプライマリグループ「apache」グループで作成する
[root@ /]#useradd -g apache apache
usermodコマンド
既存のユーザアカウントを変更するコマンド。
主に、グループにユーザーを追加したい場合によく使う。
オプション
省略
注意点
ユーザーのサブグループにグループを追加したい場合は、-aGオプションをつける
https://ex1.m-yabe.com/archives/2867
「testuser」ユーザーのサブグループに「apache」グループを追加する
#「testuser」ユーザーは、「testuser」グループに所属している
[root@ /]$ grep testuser /etc/group
testuser:x:1001:
#「testuser」ユーザーのサブグループに「apache」グループを追加する
[root@ /]# usermod -aG apache testuser
[root@ /]# grep testuser /etc/group
testuser:x:1001:
apache:x:48:admin,root,testuser
groupaddコマンド
グループを作成するコマンド
devグループを作成する
[root@ /]# groupadd dev
#グループ一覧を確認
[root@ /]# cat /etc/group
mysql:x:993:
redis:x:992:
dev:x:1003:
groupmodコマンド
既存のグループ情報を変更するコマンド
オプション
オプション | 説明 |
---|---|
-g GID | GIDを変更する |
-n グループ名 | グループ名を変更する |
devグループの名称をdevelopに変更する
[root@ /]# groupmod -n develop dev
tarコマンド
アーカイブにまとめたり、展開するコマンド
オプション
省略
「latest-ja.tar.gz」を展開する
[root@ src]# ls
latest-ja.tar.gz
#展開
[root@ src]# tar xvf latest-ja.tar.gz
[root@ src]# ls
latest-ja.tar.gz wordpress
「wordpress」フォルダをアーカイブ名「wordpress.tar.gz」として圧縮する
[root@ src]# ls
latest-ja.tar.gz wordpress
#圧縮
[root@ src]# tar zcvf wordpress.tar.gz /usr/local/src
[root@ src]# ls
latest-ja.tar.gz wordpress wordpress.tar.gz
SSH
リモートホストにログインするコマンド。引数にはホスト名かIPアドレスを指定する
オプション
オプション | 説明 |
---|---|
-p ポート番号 | ポート番号を指定する |
-l ユーザー名 | 接続するユーザーを指定する |
-i ファイル名 | 秘密鍵ファイルを指定する |
ホスト:1XX.XXX.XX.XXX、SSHPORT:12345、adminユーザーでログインする
ssh -p 12345 admin@1XX.XXX.XX.XXX
lsofコマンド
開いているポートを確認するコマンド。
また、ssコマンド、netstatコマンド、nmapコマンドでも開いているポートを確認することができる
オプション
オプション | 説明 |
---|---|
-i | 開いているポートの情報を表示する |
-i:ポート番号 | 指定したポート番号が使われている通信を表示する |
#-Pを指定することでポート番号で情報表示できる
[root@tk2-105-54208 /]# lsof -i -P
sshd 909 root 3u IPv4 80727 0t0 TCP *:12345(LISTEN)
mariadbd 930 mysql 24u IPv4 17013 0t0 TCP *:3306 (LISTEN)
mariadbd 930 mysql 27u IPv6 17014 0t0 TCP *:3306 (LISTEN)
その他
パーミッション
https://qiita.com/shisama/items/5f4c4fa768642aad9e06
コメント