Linuxとは
Linuxとは「Linux Is Not UNIX」の略です。
UNIXとはサーバーに優れた有償のOSでありますが、それに似た無償のOSがLinuxです。
※ほとんどのコマンドに
--help
--version
のコマンドがある。
コマンドを途中で辞める
ctrl+c
ダウンロードインストール
yum
yumは、Yellow dog Updater Modifiedの略です。Yellow Dog Linuxで開発されたRPMパッケージ管理ソフトです。
yumは依存性をまとめてインストールしてくれるので、yumが使えればrpmコマンドではなく優先的にyumコマンドを使ってダウンロードやインストールをします。
list
全てのパッケージ一覧を表示
・各リポジトリ名またはinstalled
各パッケージ、またはインストール済のパッケージを表示
install パッケージ名
インストールする。
groupinstall
update パッケージ名
アップデートする。パッケージ名がなければ全体をアップデートする。
remove パッケージ名
アンインストールする。
info パッケージ名
パッケージの詳細を返す。
repolist
インストールされているリポジトリの一覧を返す。
clean all
キャッシュを全てクリアする。
-y
プロンプトが表示されたら全てyesにする。
rpm
rpmは、Red Hat Package Managerの略だったが、現在はRPM Package Managerの略です。
(ITでは再帰定義の略が流行ってます)
ファイル名は、
(パッケージ名)-(バージョン)-(リリース番号).(アーキテクチャ).rpm
アーキテクチャとは、コンパイルされた時の構成されてるマシンのこと。
以下によく使われるアーキテクチャをまとめました。
アーキテクチャ名 | 備考 |
---|---|
i386 | i386およびその互換CPU。 |
i486 | i486およびその互換CPU。 |
i586 | Pentium、MMX Pentiumおよびその互換CPU。 |
i686 | Pentium Pro、Pentium II、Pentium III、Pentium4、Celeronなど。 |
k6 | K6、K6-2、K6-III。 |
athlon | Athlon、Athlon MP、Athlon XP。 |
x86_64 | Opteron、Athlon64、Xeon(EM64T)。 |
src | ソースパッケージ。自分で rpm パッケージを作ったりする際(rebuild)に必要。 |
noarch | 機種(CPU)に依存しないパッケージ。 |
ppc | Power PC。 |
alpha | alphaチップ搭載コンピュータ。 |
sparc | SUN SPARC。 |
-ivh ファイル名
install verbose hash。
インストールする。
http://から指定すればそのままインストール、wgetでDLしてからファイル名のみを指定してもよい。
-Uvh パッケージ名
update verbose hash。
インストール、もしくはインストール済のパッケージをアップデートする。
-Fvh パッケージ名
freshen verbose hash。
インストール済のパッケージをアップデートする。
-e パッケージ名
erase。
アンインストール
※-qはインストール済のパッケージへの問い合わせ。
-q パッケージ名
query。
パッケージのフルパッケージ名を返す。
-qi パッケージ名
query info。
パッケージの詳細を返す。
-ql パッケージ名
query list。
パッケージに含まれるファイル一覧を返す。
-qa
query all。
全てのパッケージの一覧を返す。
rpm -qa | grep 検索値 はよく使う。
-qf ファイルパス
query file。
ファイル生成元のパッケージ名を返す。
-qR パッケージ名
query --requires。
そのパッケージの依存パッケージを返す。
-pqR 未インストールのファイル名
packagefile query --requires
そのパッケージファイルの依存パッケージを返す。
一般操作系
vi
入力モードに切換
i
コマンドモードに戻る
escキー
保存せずに終了
:q!
保存して終了
:wq
次ページにスクロール
コマンドモードでctrl+f
前ページにスクロール
コマンドモードでctrl+b
最終行に移動
コマンドモードでG
先頭行に移動
コマンドモードでgg
logout
ログアウトする。
exit
前のユーザーに切り替える。
tree
ディレクトリをツリー構造で返す。
-L 数字
表示する階層数を指定する。
-F
ディレクトリには/を付ける。
-C
カラー表示をする。
pwd
現在のディレクトリを返す。
ls
現在の階層にあるファイルやフォルダ一覧を返す。
CentOS6以降、SELinuxで作成されると権限の後ろにドット「.」が付く。
-l
list。
権限、ファイル数、ハードリンクの数、所有者、グループ、サイズ、更新日を返す。
◾︎-n
numeric userID。
ファイルのオーナーを返す。
-a
all。
ドット「.」で始まるファイルやフォルダを含めて表示する。
lsmod
カーネルのモジュール一覧を表示する。
【ldd】ファイルパス
List Dynamic Dependencies。
共有ライブラリの依存関係を表示する。
【which】コマンド名
コマンドがインストールされている場所を返す。
【whereis】サービス名
サービスがインストールされている場所を返す。
【find】ディレクトリ
-name ファイル名
指定の(指定しなければ現在の)ディレクトリ以下に指定したファイルがあるか検索する。
-user ユーザー名
指定したユーザーが所有するファイルを検索する。
-type f
ファイルを検索する。
-type d
ディレクトリを検索する。
clear
シェルの画面をクリアする。
【su】ユーザー名
substitude user。ユーザーを切り替える。
ユーザー名を省略するとrootになる。
ファイル操作
【chmod】パーミッション ファイル名
権限を変更する。
【chown】ユーザー名 ファイル名
ファイルの所有者を変更する。
グループも同時に変更する場合は、
ユーザー名:グループ名
という書式にする。
【chgrp】グループ名 ファイル名
ファイルのグループを変更する。
【mkdir】フォルダ名
フォルダを作成する。
【cat】ファイル名
ファイルの内容を返す。
【mv】元ファイル 変更後ファイル
ファイルを移動したりファイル名を変更する。フォルダを指定するとフォルダごと移動出来る。
【cp】元ファイル コピー後ファイル
ファイルをコピーする。
【touch】ファイル名
ファイルのタイムスタンプを変更する。
存在しないファイル名を指定するとファイルを作成する。特にlinuxはmkfileなどのファイル作成コマンドが無い為、ファイル作成はこのコマンドを利用する。
【rm】ファイル名 ファイル名 ファイル名
ファイルを削除する。
◾︎-rf
ディレクトリとディレクトリ以下を削除する。
ユーザー管理
【useradd】ユーザー名
ユーザーを追加する。passwdコマンドも合わせて使わないとログイン出来ない。
adduserコマンドもあるがcentOSはuseraddと同じ。
-s シェル名
shell。利用するシェルを指定する。利用出来るシェルは/etc/shellsファイルで確認出来る。
-d ディレクトリ
directory。
ホームディレクトリを指定する。
-u
userID。ユーザーIDを指定する。
指定しなかった場合、自動的に割り振られるIDは、/etc/login.defsに記載されてある。
-D
ユーザーを作成する時のデフォルト値が確認出来る。
id
自分のユーザー情報を表示する。
【passwd】ユーザー名
指定のユーザーのパスワードを作成する。
【userdel】ユーザー名
/etc/passwdと/etc/groupと/etc/shadowから指定したユーザーを削除する。
-r
remove。
削除するユーザーの所有ファイルも削除する。削除する前に必ず
find -user ユーザー名
でユーザーの所有ファイルを確認する。
【usermod】ユーザー名
ユーザー情報を変更する。
/etc/passwd、/etc/shadow、/etc/groupが編集される。
-l 新しいユーザー名 古いユーザー名
ユーザー名を変更する。
-d
directory。ホームディレクトリを変更する。
-s
shell。ログインシェルを変更する。
-u
userID。ユーザーIDを変更する。
ただしそのユーザーで作成したファイルやフォルダは一緒には変わらないので注意。
-g
groupID。グループIDを変更する。
【groupmod】グループ名
-g
groupID。グループIDを変更する。
finger
ユーザーの情報を表示する。
【su】ユーザー名
ユーザーを切り替える
システム系
uname
unix name。OSに関する情報を表示する。
-a
all。全ての情報を表示する。
-o
OSの名称を表示する。
-n
OSのホスト名を表示する。
-r
release。OSのリリースを表示する。
hostname
ホスト名を表示する。引数にホスト名を設定すると、ホスト名を変更できる。
-a
alias。ホスト名のエイリアスがあれば表示する。
-d
DNSドメイン名を表示する。
-f
FQDNを表示する。
-i
ホストのIPアドレスを表示する。
-s
short。短い形式のホストを表示する。
lsof
/usr/sbin/lsof
現在使用しているプロセスを表示する。
■-i
ポートとプロセスを表示。
【kill】シグナル ジョブ番号
■シグナル
-9:プロセスジョブを強制終了する。
arch
OSのbitを調べる。
【du】ファイル名
disk used。
指定したファイルのディスク使用量を調べる。
runlevel
現在のランレベルを返す。
netstat
-at
現在開いているポートを返す。
systemctl
何もオプションを付けなければ、実行中のサービス一覧を返す。
※centos7から
start サービス名
起動する。
restart サービス名
再起動する。
stop サービス名
停止する。
status サービス名.service
起動中か調べる。
is-enabled サービス名.service
自動起動になっているか調べる。
enable サービス名.service
自動起動に設定する。
disable サービス名.service
自動起動しないに設定する。
service httpd configtest
でどのファイルのどこにエラーがあるか確認できる。
service
※centos6まで
パスが通ってない場合、/sbin/を前に付け足さないといけない。
--status-all
現在起動中のサービスを表示する。
サービス名 status
指定のサービスの状態を表示する。
サービス名 start
指定のサービスを起動する。
サービス名 stop
指定のサービスを停止する。
サービス名 restart
指定のサービスを再起動する。
サービス名 reload
指定のサービスを再読み込みする。
chkconfig
サービス名 on
ランレベルの2、3、4、5をonにする。
--list
それぞれのランレベルに対して、OSの起動時に自動起動するサービスを表示する。
reboot
OSを再起動する。
shutdown
-h now
シャットダウンする。
-r now
再起動する。
ps
フィルタリング
iptables
※centos6まで
設定する
iptables -に続けて設定内容を打つ。
削除する
iptables -D INPUT 命令文の行番号
service iptables save
firewalld-cmd
※centos7から
デフォルトゾーンの確認
firewall-cmd --get-default-zone
デフォルトゾーンの設定
firewall-cmd --set-default-zone=ゾーン名
定義されているサービス一覧を表示する
firewall-cmd --get-service
一時的な設定を含めて確認する
firewall-cmd --list-all
恒久的な設定を確認する
firewall-cmd --permanent --list-all
サービスを追加する
firewall-cmd --permanent --add-service=サービス名
ポートを追加する
firewall-cmd --permanent --add-port=ポート番号/tcp
サービスを削除する
firewall-cmd --remove-service=サービス名
ポートを削除する
firewall--cmd --remove-port=ポート/tcp
サービスをリロードする
firewall-cmd --reload
ネットワーク系
【ping】IPアドレス
パケット通信を確認する。
ifconfig
起動しているネットワークインターフェイスの内容を表示する。
-a
存在するインターフェースの一覧を表示する。
【traceroute】IPアドレス
ネットワーク経路を確認する。
netstat
ネットワーク接続状況を確認する。
オプション無しは、現在の有効な接続ESTABLISHEDのみ表示する。
-r
ルーティングテーブルを表示する。
nslookup
bind-utilsパッケージがインストールされてないと使えない。
DNSサーバーに名前解決の問い合わせを行う。nslookupとコマンドすると対話モードになるので、対話モードでIPアドレスやホストをコマンドするとホストやIPアドレスが返ってくるかを確認出来る。exitで対話モードを終了出来る。
【dig】ドメイン
bind-utilsパッケージがインストールされてないと使えない。
ドメイン情報をDNSサーバーから取得する。
a
最後に半角空けてaを追加すると、AレコードをDNSサーバーから取得する。
【host】IPアドレスまたはホスト
bind-utilsパッケージがインストールされてないと使えない。
ホストまたはIPアドレスを返す。
nmcli
centos7から。
NetworkManagerComandLineInterface。
g s
general status。
NetworkManagerの全般的なステータスを表示する。
■d
device。
デバイス一覧を表示する。
■d show デバイス名
device show。
指定したデバイスの詳細を表示する。
■c
connection。
コネクション一覧を表示する。
■c u デバイス名
connection up。
コネクションを有効にする。
恐らくWindowsでいうとネットワーク接続画面のアイコンの有効/無効。
■c d デバイス名
connection down。
コネクションを無効にする。
恐らくWindowsでいうとネットワーク接続画面のアイコンの有効/無効。
■c show デバイス名
connection show。
コネクションの詳細を表示する。
■c add type eth ifname デバイス名 con-name 接続名
新規で接続する。
c delete デバイス名
接続の設定を削除する。
■c m デバイス名 ipv4.method 接続方法
connection modify。
DHCPか固定かを設定する。
接続方法は、
DHCPにするなら「auto」
固定にするなら「manual」
ipv4の前に+を付けて指定すれは追加。
ipv4の前に-を付けて指定すれは削除。
■c m デバイス名 ipv4.addresses IPアドレス/CIDR
connection modify。
固定のIPアドレスを設定する。
ipv4の前に+を付けて指定すれは追加。
ipv4の前に-を付けて指定すれは削除。
■c m デバイス名 ipv4.gateway デフォルトゲートウェイ
connection modify。
デフォルトゲートウェイを設定する。
ipv4の前に+を付けて指定すれは追加。
ipv4の前に-を付けて指定すれは削除。
■c m デバイス名 ipv4.dns DNSサーバーアドレス
connection modify。
DNSサーバーを設定する。
ipv4の前に+を付けて指定すれは追加。
ipv4の前に-を付けて指定すれは削除。
■n on
networking on。
ネットワーキングを起動する。
■n off
networking off。
ネットワーキングを終了する。
※このコマンドをすると全てのネットワーキングが終了するためSSHやサイトも繋がらず、VNCコンソールから操作するしかなくなる。
n c
networking connectivity。
現在のネットワーキングの状態を表示する。
ip
centos7から。
ifconfigやrouteやarpやnetstatの代用。
■a
address。
デバイスのIPやMACアドレスを表示する。
■l
link。
リンクアップの確認。
state の後がUPかDOWNで確認できる。
■r
route。
ルーティングテーブルを表示する。
■n
ARPテーブルを表示する。
■rule
rt_tablesファイルによる設定一覧を表示する。
ss
centos7から。
netstatの代用。
■-ant
TCPソケット、UDPソケットの確認。
シェルスクリプト
echo $PATH
現在通っているパス一覧を返す。
SELinux
getenforce
SELinuxが稼動しているかを返す。
sestatus
SELinuxの状態を表示する。
シェル直指定
■httpdの再起動など
① /usr/sbin/apachectl restart
② /etc/init.d/httpd restart (③のリンク)
③ /etc/rc.d/init.d/httpd restart
④/sbin/service httpd restart
■mysqlの再起動など
① /etc/init.d/mysqld restart (②のリンク)
② /etc/rc.d/init.d/mysqld restart
■named.confの構文チェック
/usr/sbin/named-checkconf namedファイルパス
■ゾーンファイルの構文チェック
/usr/sbin/named-checkzone ドメイン名 ファイル名
■bindが正しく起動しているか
/usr/sbin/rndc status
Linux
Linuxバージョン確認
cat /etc/redhat-release
リポジトリ一覧の確認
ls /etc/yum.repos.d/
apache
バージョン確認
/usr/sbin/httpd -v
SSL
バージョン確認
openssl version
proFTPd
proftpdユーザーの追加
/usr/sbin/ftpasswd --passwd --file /etc/proftpd/ftpd.passwd --name iloha168 --uid 6002 --gid 6002 --home /var/www/vhosts/abc-mssbfm.xyz.rakuraku/httpdocs --shell /sbin/nologin
proftpdユーザーの削除
(長いけど、追加の式に--delete-userを付けるだけ)
/usr/sbin/ftpasswd --passwd --file /etc/proftpd/ftpd.passwd --name iloha168 --uid 6002 --gid 6002 --home /var/www/vhosts/abc-mssbfm.xyz.rakuraku/httpdocs --shell /sbin/nologin --delete-user
proFTPdグループの追加
/usr/sbin/ftpasswd --group --file /etc/proftpd/ftpd.group --name iloha168 --gid 6002
proFTPdグループの削除
(追加の式に--delete-groupを付けるだけ)
/usr/sbin/ftpasswd --group --file /etc/proftpd/ftpd.group --name iloha168 --gid 6002 --delete-group