Linuxコマンドの使い方 - Linux command usage -

基本的なLinuxコマンドの使い方を掲載しています。一般ユーザーで実行できるコマンドは「$」、管理者権限が必要なコマンドは「#」で示します(例外あり)。ディストリビューション依存のコマンドはCentOS 7での実行を想定しています。

基本コマンド

コマンド説明
$cdホームディレクトリに移動する。
$cd /tmp/tmpディレクトリに移動する。
$cd -直前のカレントディレクトリに移動する。
$cd ..1つ上のディレクトリに移動する。
$pwdカレントディレクトリを表示する。
$man passwdpasswdコマンドのマニュアルを表示する。
$man 5 passwd/etc/passwdファイルのマニュアルを表示する。
$apropos ext3マニュアルの1行説明に「ext3」が含まれるマニュアル一覧を表示する。
$exitログアウトする。シェルを終了する。
$date現在の日時を表示する。
$surootユーザーになる(環境は元のまま)。終了はexit。
$su -rootユーザーになる(環境はrootでのログインと同じ)。
$su - smilesmileユーザーになる(環境はsmileでのログインと同じ)。
$sudo /sbin/shutdown -r now許可されたユーザーが管理者権限でshutdownコマンドを実行する。
$sudo -s許可されたユーザーがrootユーザーになる(環境は元のまま)。
$sudo -i許可されたユーザーがrootユーザーになる(環境はrootでのログインと同じ)。
$whatis passwdマニュアルのタイトルがpasswdであるマニュアル一覧を表示する。
$whereis passwdpasswdコマンドの実行ファイルとマニュアルのパスを表示する。

ファイル・ディレクトリ操作コマンド

コマンド説明
$cp httpd.conf httpd.conf.orghttpd.confファイルをhttpd.conf.orgファイルとしてコピーする。
$cp *.txt backup拡張子が「.txt」のファイルをbackupディレクトリにコピーする。
$cp -r /pub/data ./pub/dataディレクトリをカレントディレクトリにコピーする。
$lsカレントディレクトリ内のファイル一覧を表示する。
$ls -l /tmp/tmpディレクトリのファイル一覧を詳細に表示する。
$ls -A $HOME「.」で始まる隠しファイルも含めてホームディレクトリ内のファイルを表示する。
$mv before.txt after.txtbefore.txtファイルをafter.txtファイルにリネームする。
$mv datafile /tmpdatafileファイルを/tmpディレクトリ以下に移動する。
$mkdir temptempディレクトリを作成する。
$mkdir -p dir/sub1dirディレクトリを作成し、その中にsub1ディレクトリを作成する。
$mkdir -m 701 public_htmlパーミッション701でpublic_htmlファイルを作成する。
$ln data data.hddataファイルのハードリンクをdata.hdとして作成する。
$ln -s sampledir otherdirsampledirディレクトリのシンボリックリンクであるotherdirディレクトリを作成する。
$cat /etc/hosts/etc/hostsファイルの内容を表示する。
$less /etc/services/etc/servicesファイルをページビューワーで開く。
$locate nginx「nginx」という名前が含まれるファイルをファイル名データベースから検索する。
$chmod 644 samplesampleファイルのパーミッションを644に設定する。
$chmod a+x samplesampleファイルに実行権を追加する。
$chmod -R o-w sampledirsampledirディレクトリ以下のパーミッションから、その他ユーザーの書き込み権限を削除する。
#chown apache sample.htmlsample.htmlファイルの所有者をapacheにする。
#chown apache:apache sample.htmlsample.htmlファイルの所有者をapacheに、所有グループをapacheにする。
#chown -R apache htmlhtmlディレクトリ以下の所有者をapache、所有グループをapacheにする。
#chgrp apache sample.htmlsample.htmlファイルの所有グループをapacheにする。
$file samplesampleファイルの種別を表示する。
$find -name "*.txt"カレントディレクトリ以下から拡張子が「.txt」のファイルを検索する。
$find -name "*.txt" -mtime +30上記に加え、最終更新日が30日以上前である条件で検索する。
$find /tmp -type f -user happy -exec rm {} \;/tmpディレクトリ内のファイルで所有者がhappyのものを削除する。
$touch sampleサイズが0のsampleファイルを作成する。ファイルが存在すればタイムスタンプを更新する。
$touch -t 201601312345 samplesampleファイルのタイムスタンプを2016年1月31日23時45分にする。

プロセス・ジョブ管理コマンド

コマンド説明
$jobs実行中のジョブを表示する。
$jobs -l実行中のジョブをPIDとともに表示する。
$fg %1ジョブID1番のジョブをフォアグラウンドで実行する。
$bg %1ジョブID1番のジョブをバックグラウンドで実行する。
$kill 20000PIDが20000のプロセスを終了する。
$kill -9 20000PIDが20000のプロセスを強制終了する。
$kill -lシグナルを一覧表示する。
$killall vimvimプロセスをすべて終了する。
#killall -HUP namednamedプロセスに設定ファイルを再読込させる。
$nice -n 10 du -s /pub/*優先度を下げてduコマンドを実行する。
$pgrep sshプロセス名にsshが含まれるプロセスのPIDを表示する。
$pgrep -l sshプロセス名にsshが含まれるプロセスのPIDとプロセス名を表示する。
$pgrep -t pts/1仮想端末pts/1から起動しているプロセスを表示する。
$ps auxシステム上のすべてのプロセスを表示する。
$pstree -pプロセスをツリー状に表示する(PIDも表示する)。
$topプロセスとシステム状況をモニタする。

ファイル圧縮展開コマンド

コマンド説明
$gzip samplesampleファイルをgzipで圧縮する。
$gunzip sample.gzsample.gzファイルを解凍する。
$bzip2 samplesampleファイルをbzip2で圧縮する。
$bunzip2 sample.bz2sample.bz2ファイルを解凍する。
$xz samplesampleファイルをxz(7zip)で圧縮する。
$xz -d sample.xzsample.xzファイルを解凍する。
$zip sample.zip samplesampleファイルをzipで圧縮する。
$unzip sample.zipsample.zipファイルを解凍する。
$tar czvf home.tar.gz /home/homeディレクトリの圧縮アーカイブhome.tar.gzを作成する。
$tar xzvf home.tar.gz圧縮アーカイブhome.tar.gzを展開する。
$tar cjvf home.tar.bz2 /home/homeディレクトリの圧縮アーカイブhome.tar.bz2を作成する。
$tar xjvf home.tar.bz2圧縮アーカイブhome.tar.bz2を展開する。
$tar cJvf home.tar.xz /home/homeディレクトリの圧縮アーカイブhome.tar.xzを作成する。
$tar xJvf home.tar.xz圧縮アーカイブhome.tar.xzを展開する。

テキスト処理コマンド

コマンド説明
$grep httpd /etc/services/etc/servicesファイルの中から「httpd」という文字列が含まれる行を抜き出して表示する。
$head -5 MakefileMakefileファイルの先頭5行を表示する。
$tail -20 messagesmessagesファイルの末尾20行を表示する。
#tail -f /var/log/messages/var/log/messagesファイルの末尾を表示し続ける。
$head /etc/passwd/etc/passwdファイルの先頭10行を表示する。
$head -20 /etc/passwd/etc/passwdファイルの先頭20行を表示する。
$tail /etc/passwd/etc/passwdファイルの末尾10行を表示する。
$tail -20 /etc/passwd/etc/passwdファイルの末尾20行を表示する。
#tail /var/log/messages/var/log/messagesファイルの末尾を表示し続ける。(ログ監視)
$rpm -qa | sortインストール済みパッケージ名をソートして表示する。
$iconv -f sjis -t utf8 sample.txtShiftJISで書かれたsample.txtファイルをUTF-8に変換して出力する。
$lpr /etc/resolv.conf/etc/resolv.confを印刷する。
$wc samplesampleファイルのバイト数、単語数、行数を表示する。
$rpm -qa | wc -lインストール済みパッケージの数を数える。

bashコマンド

コマンド説明
$alias設定済みのエイリアスを表示する。
$alias ll='ls -l'「ls -l」のエイリアス「ll」を設定する。
$unalias llエイリアス「ll」を削除する。
$echo $PATH変数PATHの内容を表示する。
$echo "1" > /proc/sys/net/ipv4/ip_forward/proc/sys/net/ipv4/ip_forwardに「1」を書き込む。
$export PATH変数PATHを環境変数にする。
$export LANG=C変数LANGに値「C」を設定して環境変数にする。
$export PATH=$PATH:/opt/bin変数PATHに「/opt/bin」を追加して環境変数にする。
$printenv環境変数をすべて表示する。
$setシェル変数と環境変数を表示する。
$type echoechoが外部コマンドか組み込みコマンドか、エイリアスか関数かを調べる。
$historyコマンド履歴を表示する。
$history -cコマンド履歴を削除する。
$ps aux > ps.logpsコマンドの実行結果をps.logに保存する。
$ps aux >> ps.logpsコマンドの実行結果をps.logに追記する。
$ps aux | tee ps.logpsコマンドの実行結果をps.logに保存するとともに画面上に表示する。

ネットワークコマンド

コマンド説明
$telnet host.example.comhost.example.comにtelnetで接続する。
$telnet host.example.com 80host.example.comの80番ポートに接続する。
$ssh host.example.comhost.example.comにSSHで接続する。
$ssh reika@host.example.comhost.example.comにreikaユーザーとしてSSHで接続する。
$ssh -p 10022 host.example.comhost.example.comの10022番ポートにSSHで接続する。
$ssh-keygen -t dsaSSHの鍵ペアをDSAで作成する。
$ssh-keygen -pSSHのパスフレーズを変更する。
$ssh-keygen -l -t dsaDSA鍵のフィンガープリントを表示する。
$lftp host.example.comhost.example.comにFTPで接続する。
$mail happy@example.comhappy@example.com宛のメールを作成する。
$df -h | mail -s diskuse admin@example.comdfコマンドの実行結果を、admin@example.com宛にタイトル「diskuse」でメール送信する。
$scp sample host.example.com:sampleファイルをhost.example.comのホームディレクトリ内にリモートコピーする。
$scp happy@host.example.com:/tmp/sample .happyユーザーとしてhost.example.comに接続し、/tmp/sampleファイルをローカルディレクトリにリモートコピーする。
$ssh-agent bashssh-agentでbashを利用する。
$ssh-addssh-agentで利用する秘密鍵のパスフレーズを入力する。
$wget http://www.example.com/samplehttp://www.example.com/sampleファイルをダウンロードする。
$wget -r http://www.example.com/mainhttp://www.example.com/mainディレクトリ以下をダウンロードする。

ネットワーク管理コマンド

コマンド説明
$dig www.example.comwww.example.comのIPアドレスをDNSサーバに問い合せる。
$dig -x 192.168.1.30192.168.1.30に対応するホスト名をDNSサーバに問い合せる。
$dig example.com mxexample.comドメインのメールサーバ(MXレコード)を調べる。
$host www.example.comwww.example.comのIPアドレスをDNSサーバに問い合せる。
$host 192.168.1.30192.168.1.30に対応するホスト名をDNSサーバに問い合せる。
$host -t mx example.comexample.comドメインのメールサーバ(MXレコード)を調べる。
$ip addr showIPアドレスなどネットワークインターフェースの情報を表示する。
#ip addr add 192.168.1.30/24 dev eth1ネットワークインターフェースeth1に192.168.1.30/24を割り当てる。
#ip link set eth1 upネットワークインターフェースeth1を有効にする。
#ip link set eth1 downネットワークインターフェースeth1を無効にする。
$ss -at開いているTCPポートを表示する。
$ss -atun開いているTCP/UDPポートを、名前解決せず表示する。
#ss -atp開いているTCPポートとプロセス名を表示する。
#ntpdate pool.ntp.orgNTPを使ってシステムクロックを正確に合わせる。
#ntpq -pNTPの問い合せ状況を確認する。
$ping host.example.comhost.example.comの疎通確認をする。終了はCtrl+C。
$ping -c 4 host.example.comhost.example.comの疎通確認をする。ICMPパケットを4回送ったら終了する。
$ip route showルーティングテーブルを表示する。
#ip route add default via 192.168.11.1ルーティングテーブルにデフォルトゲートウェイを追加する。
#traceroute host.example.comhost.example.comまでに通過するルータを表示する。
#iptables -Lパケットフィルタリングの設定を表示する(IPv4)。
#ip6tables -Lパケットフィルタリングの設定を表示する(IPv6)。

システム管理コマンド

コマンド説明
$at 23:1523時15分に実行するジョブを予約する。
$at 4:30 tomorrow明日の4時半に実行するジョブを予約する。
$crontab -eスケジュールを登録する。
$crontab -l登録済みのスケジュールを表示する。
$crontab -r登録済みのスケジュールをすべて削除する。
$systemctl list-unit-files --type=serviceサービスの自動起動設定を表示する。
#systemctl enable httpdシステム起動時にhttpdサービスを自動的に起動する。
#systemctl disable httpdシステム起動時にhttpdサービスを自動的に起動しないようにする。
#systemctl start httpdhttpdサービス(Apache)を起動する。
#systemctl restart httpdhttpdサービス(Apache)を再起動する。
#systemctl is-active httpdhttpdサービス(Apache)の状態を確認する。
#systemctl stop httpdhttpdサービス(Apache)を終了する。
#date 012308302016システムクロックを2016年1月23日8時30分にセットする。
$lsmodロードされているカーネルモジュールを表示する。
#lsof /var/log/messages/var/log/messagesファイルを開いているプロセスを表示する。
#lsof -c rsyslogdrsyslogdプロセスが開いているファイルを表示する。
#lsof -i:631631番ポートを開いているプロセスを表示する。
$modinfo sr_modsr_modカーネルモジュールの情報を表示する。
#modprobe sr_modsr_modモジュールをロードする。
#modprobe -r sr_modsr_modモジュールをアンロードする。
#shutdown -r nowただちにシステムを再起動する。
#shutdown -h +1010分後にシステムをシャットダウンする。
#shutdown -r 23:0023時にシステムを再起動する。
#shutdown -cシャットダウンの予定をキャンセルする。
$uname -aシステム情報を表示する。
#updatedblocateコマンド用のファイル名データベースを更新する。
$hostnameホスト名を表示する。
$lspciPCIデバイスの情報を表示する。
$lsusbUSBデバイスの情報を表示する。
$dmesgカーネルの出力メッセージを表示する。(起動メッセージなど)
$ldd /bin/zsh/bin/zshの実行に必要な共有ライブラリを表示する。
$free -mメモリの使用状況をMバイト単位で表示する。
#hwclock --showハードウェアクロックを表示する。
#hwclock --systohcシステムクロックをハードウェアクロックに書き込む。
#hwclock --hctosysハードウェアクロックをシステムクロックに書き込む。

ユーザー管理コマンド

コマンド説明
$id自分のUID、プライマリグループ、所属グループを表示する。
$id madokamadokaユーザーのUID、プライマリグループ、所属グループを表示する。
$groups所属しているグループを表示する。
$last過去のログイン・ログアウト履歴を表示する。
$last sayakasayakaユーザーのログイン・ログアウト履歴を表示する。
#lastlogユーザーごとの最終ログイン日時を一覧表示する。
#lastlog -t 7最近7日以内の最終ログイン日時を表示する。
$usersログイン中のユーザーを表示する。
#useradd yayoiyayoiユーザーを追加する。
#useradd -s /sbin/nologin apacheログイン不可のユーザーapacheを作成する。
#userdel jokerjokerユーザーを削除する。
#userdel -r jokerjokerユーザーをホームディレクトリごと削除する。
#groupadd developdevelopグループを追加する。
#groupdel developdevelopグループを削除する。
$passwd自身のパスワードを変更する。
#passwd akaneakaneユーザーのパスワードを設定する。
#chage reikareikaユーザーのパスワード期限などを変更する。
#visudosudoコマンドを扱えるユーザーを管理する。
$wログイン中のユーザーとユーザーが実行しているコマンドを表示する。
$who現在ログインしているユーザーを表示する。

ファイルシステム管理コマンド

コマンド説明
$dfファイルシステムごとのディスク使用量を表示する。
$df -H見やすい単位で表示する(1G=1000MiB)
$df -h見やすい単位で表示する(1G=1024MB)
$df -i容量ではなくiノードの使用状況を表示する。
$du -c $HOMEホームディレクトリ以下の各ディレクトリの容量および合計を表示する。
$du -m ~/src~/srcディレクトリ内のファイルし容量をMB単位で表示する。
#du -s /*/ディレクトリ直下の各ディレクトリのファイル使用量を表示する。
#ejectデフォルトの光学ドライブをイジェクトする。
#eject /media/cdrom/media/cdromをイジェクトする。
#eject -t光学ドライブのトレイを収納する。
#fsck -y /dev/sda1/dev/sda1のファイルシステムをチェックし、自動的に修復する。
#mke2fs -t ext4 /dev/sda5/dev/sda5にext4ファイルシステムを作成する。
$mountマウントされているファイルシステムを表示する。
#mount /dev/sda5 /home/dev/sda5を/homeディレクトリとしてマウントする。
#mount -o loop cdrom.iso /mnt/cdromcdrom.isoイメージファイルを/mnt/cdromにマウントする。
#umount /media/cdrom/media/cdromをアンマウントする。

パッケージ管理コマンド

コマンド説明
$rpm -qaインストール済みの全パッケージ名を表示する。
$rpm -q httpdhttpdパッケージがインストールされているか確認する。
$rpm -qi httpdhttpdパッケージの情報を表示する。
$rpm -ql httpdhttpdパッケージからインストールされたファイルを表示する。
$rpm -qlp httpd-2.4.6-45.el7.centos.x86_64.rpmhttpdパッケージからインストールされるファイルを表示する。
$rpm -qc httpdhttpdパッケージからインストールされた設定ファイルを表示する。
$rpm -qd httpdhttpdパッケージからインストールされたドキュメントを表示する。
#rpm -ivh httpd-2.4.6-45.el7.centos.x86_64.rpmhttpdパッケージをインストールする。
#rpm -Fvh httpd-2.4.6-45.el7.centos.x86_64.rpmhttpdパッケージをアップデートする。
#rpm -e httpdhttpdパッケージをアンインストールする。
$yum info nginxnginxパッケージの情報を表示する。
$yum search nginxパッケージ名に「nginx」が含まれるパッケージをリポジトリから検索する。
#yum check-updateアップデート可能なパッケージをリストアップする。
#yum updateすべてのパッケージをアップデートする。
#yum update httpdhttpdパッケージをアップデートする。
#yum install httpdhttpdパッケージをインストールする。
#yum remove httpdhttpdパッケージをアンインストールする。
$yum listリポジトリ上のすべてのパッケージをリスト表示する。
$yum grouplistパッケージグループをリスト表示する。
#yum groupinstall "GNOME Desktop Environment"「GNOME Desktop Environment」パッケージグループをインストールする。
$yumdownloader httpdhttpdパッケージをダウンロードする。

2016/12/31 ©Yoshikazu Nakajima ver.1.02