バッチコマンド(Linux/DOS/PowerShell)
Linux専用コマンドは
・Linux コマンド
・Linux コマンド:グループ・ユーザー・権限
参照
MS-DOS専用コマンドは「Windowsバッチ(MS-DOS)」参照
目次
ディレクトリ/ファイル操作
カレントディレクトリのファイル一覧
隠しファイル
ls -a
権限
ls -l
サブディレクトリを再帰的に表示
ls -R
ディレクトリのみ
ls -F | grep /
ファイルのみ
ls -F | grep -v /
ファイル一覧をテキスト出力
dir > test.txt
サブディレクトリも含む
dir /s
更新日時等非表示
dir /b
フォルダのみ
dir /ad
ファイルのみ
dir /a-d
※lsも可
※dirも可
※gci(Get-Child-Itemの略)も可
カレントディレクトリ表示/変更
カレントディレクトリを表示
cd
カレントディレクトリを変更
cd ~
カレントディレクトリを同階層の~に変更
cd d:~
カレントディレクトリを同一ドライブDの~フォルダに変更
cd /d d:
カレントドライブをDに
cd ..
親階層へ移動
cd ../..
親の親階層へ移動
cd ~/
homeへ移動
~> cd
⇒カレントフォルダ表示
~> cd c:\test
⇒カレントフォルダをc:\testへ変更
~> cd /d d:\
⇒dドライブへカレントフォルダを変更
【ネットワークパス】
パス(ネットワーク可)をスタックに保存
pushd (パス)
パス(ネットワーク可)をスタックを削除
popd (パス)
Set-Location -path C:\test
⇒カレントディレクトリをc:\testへ変更
※Set-Location C:\test も可
※cd C:\test も可
※chdir C:\test も可
※sl(Set-Locationの略) C:\test も可
ファイル/フォルダ移動
名前変更(移動先が存在しない場合)
$ mv -f before.txt after.txt
上書き
$ mv -f before/test.txt after/test.txt
txt拡張子ファイルを1階層上のafterディレクトリへ移動
$ mv *.txt ../after
リネーム
$ mv test.txt _test.txt
sudo+cd
sudo sh -c "cd ~; cd後の命令"
例 sudo sh -c "cd /var/httpd; ls"
~> move c:test\test.txt d:\test
⇒c:test\test.txt を d:\testへ移動
ファイル/フォルダ複写
上書き
$ cp -f before.txt after.txt
ディレクトリコピー
$ cp -r before after
txt拡張子ファイルを1階層上のafterディレクトリへコピー
$ cp *.txt ../after
~> copy c:test\test.txt d:\test
⇒c:test\test.txt を d:\testへコピー
option付き
~> xcopy ~
パラメータは「Windowsバッチ(MS-DOS)」参照
ファイル/フォルダ削除
$ rm ~
ディレクトリを削除
$ rm -r ~
ディレクトリ&内部のファイルを削除
$ rm -rf ~
txt拡張子の全ファイルを削除
$ rm *.txt
ファイル名を検索&検索したファイルを削除
find ./ -name '~*.txt' | xargs rm
~> del d:\test.txt
⇒d:\text.txtを削除
~> del -r d:\test
⇒d:\text(ディレクトリ)を削除
削除前に確認メッセージを表示しない
~> dell /q "c:\test.txt"
削除前に確認メッセージを表示する(規定)
~> dell /p "c:\test.txt"
ディレクトリ作成
サブディレクトリごと作成
mkdir -p test/test
~> mkdir d:\test
⇒dドライブに「test」ディレクトリを作成
ファイル作成
touch test.txt
文字をファイルに出力
echo aaa > test.txt
echo aaa > c:\test.txt
ファイルの中身を空に
ファイルが存在しない場合は新規作成
type null > (ファイル名)
type null > "c:\test.txt"
リンク作成
機能 | ハードリンク | シンボリックリンク |
---|---|---|
ファイルへのリンク | 〇 | 〇 |
ディレクトリへのリンク | × | 〇 |
別ファイルシステムへのリンク | × | 〇 |
リンク先移動時の挙動 | 移動後のパスへ自動修正 | 移動前のパスを保持 |
シンボリックリンク作成
ln -s /test/test.txt testlink
ln -s /test testlink
リンクの削除
unlink testlink
リンクの修正(上書き)
ln -nfs /test/test.txt testlink
リンクの確認
ls -la
testlink -> /test/~
シンボリックリンク
mklink C:\sf_test D:\test\test.txt
ハードリンク
mklink /H C:\sf_test D:\test\test.txt
ディレクトリのシンボリックリンク
mklink /D C:\sf_test D:\test
ネットワーク系
ネットワークドライブに接続する
NET USE (ネットワークパス) (パスワード) /USER:(ユーザー名)
NET USE (ドライブ文字) (ネットワークパス)
NET USE (ドライブ文字) (ネットワークパス) (パスワード) /USER:(ユーザー名)
NET USE M: \\TestServer\system
NET USE M: \\192.168.1.1\system
⇒フォルダ:\\TestServer\systemに、Mドライブとして接続する。
⇒フォルダ:\\192.168.1.1\systemに、Mドライブとして接続する。
切断
NET USE M:\\TestServer\system /delete
一覧表示
NET USE
IPアドレス取得/破棄(DHCP)
IPCONFIG /RENEW
DNSキャッシュのクリア
ipconfig /flushdns
DNS照会
A(Adress:XXX.XXX.XXX.XXX)の検索(正引き)
> nslookup office-yone.com
PTR(Pointer:office-yone.com)の検索(逆引き)
> nslookup XXX.XXX.XXX.XXX
対話モードで実行
> nslookup
クエリの種類を設定
> set type=A、AAAA、ANY、CNAME、MX、NS、PTR、SOA、SRV
調査するドメインを設定
> set domain=(ドメイン名)
現在のサーバーなどの情報を表示
> set all
ネットワーク情報
NetworkStatistic(統計)の略
オプション | 機能 |
---|---|
-l | 接続待ち(LISTEN)状態のソケットのみを表示 |
-n | 名前解決をせずに数字で表示 |
-p | 各ソケットが利用しているプロセスID(PID)とプログラム名を表示 |
-t | TCPの情報のみを表示 |
-u | UDPの情報のみを表示 |
-e | 詳細情報を表示 |
-ee | さらに詳細情報を表示 |
netstat
アクティブな接続(TCPコネクション):数値情報
netstat -n
現在のすべての接続を表示する
netstat -a
プロセス名を表示する
netstat -o
実行ファイル名を表示する
netstat -b
インターフェイス・レベル(イーサネット)の統計情報を表示する
netstat -e
プロトコルレベル(IP/TCP/UDP/ICMP)の統計情報を表示する
netstat -s
プロトコルごとの接続をリストする。プロトコルにはTCPかUDPを指定する。-sとともに使用すると、そのプロトコルに関する情報のみの表示を行う
netstat -p
ルーティング・テーブルを表示する
netstat -r
複数のパラメータを指定する場合
netstat -ano
プロセス確認
ps -fe
プロセスID:pid
実行ファイル:CMD
プロセス強制終了
kill -9 プロセスID
「全ユーザーのプロセスを表示する」にチェックを入れ、
「表示」メニュー > 列の選択
でNetstatで確認したプロセスID(PID)を選択。
対象のPIDのプロセスを強制終了させる。
【プロセスID(PID)表示】
netstat -nao
「ネットワーク情報」参照
netstat -nao|find "80"
【プロセス名表示】
tasklist /fi "pid eq 80"
【プロセス検索】
サーバ情報確認
# yum install jwhois
$ whois yahoo.co.jp
→結果
[Querying whois.jprs.jp]
Domain Information:
a. [Domain Name] YAHOO.CO.JP
g. [Organization] Yahoo Japan Corporation
l. [Organization Type] Corporation
m. [Administrative Contact] HA14103JP
n. [Technical Contact] KM43416JP
p. [Name Server] ns01.yahoo.co.jp
p. [Name Server] ns02.yahoo.co.jp
p. [Name Server] ns11.yahoo.co.jp
p. [Name Server] ns12.yahoo.co.jp
s. [Signing Key]
[State] Connected (2018/11/30)
[Registered Date] 2000/11/17
[Connected Date] 2000/11/17
[Last Update] 2017/12/01 01:02:55 (JST)
でIPアドレスを取得
https://www.nic.ad.jp/ja/
で182.22.59.229を検索
→結果
Network Information: [ネットワーク情報]
a. [IPネットワークアドレス] 182.22.0.0/17
b. [ネットワーク名] YAHOO-NET
f. [組織名] ヤフー株式会社
g. [Organization] Yahoo Japan Corporation
m. [管理者連絡窓口] JP00032461
n. [技術連絡担当者] JP00032461
p. [ネームサーバ] ns01.yahoo.co.jp
p. [ネームサーバ] ns02.yahoo.co.jp
p. [ネームサーバ] ns11.yahoo.co.jp
p. [ネームサーバ] ns12.yahoo.co.jp
[割当年月日] 2010/06/03
[返却年月日]
[最終更新] 2011/09/26 15:59:02(JST)
上位情報
----------
ヤフー株式会社 (Yahoo Japan Corporation)
[割り振り] 182.22.0.0/17
下位情報
----------
該当するデータがありません。
コンピューター情報
レジストリ登録
※デバッグモード時は参照するDLLをIDEが自動でレジストリに登録する。
一方、実行ファイルを他端末へ持って行って動作させる場合は、レジストリに登録する必要がある。
オプション
オプション無し
指定されたコンポーネント内のDllRegisterServer()関数を呼び出して、コンポーネントをシステムに登録。
/u
指定されたコンポーネント内のDllUnregisterServer()関数を呼び出して、コンポーネントをシステムから解除。
/s
メッセージボックスを表示せずに実行。
/i
省略可能な[コマンドライン]文字列を引数として、指定されたコンポーネント内の DllInstall(TRUE, コマンドライン文字列)関数を呼び出します。
/u と併用した場合は、指定されたコンポーネント内のDllInstall(FALSE, コマンドライン文字列)関数を呼び出し。
/n
DllRegisterServer()関数を呼び出しません。
/u と併用した場合はDllUnregisterServer()関数を呼び出しません。
このオプションは /i オプションと併用する必要あり。
環境変数
$ PATH=$PATH:(パス)
例 $ PATH=$PATH:/sbin
パスを指定(既存パスは削除)
$ PATH=(パス)
例 $ PATH=/sbin
設定値を出力
$ echo $PATH
→ /bin:/bin
設定を保存
$ export PATH
設定~保存を同時に
$ export PATH=~
例 $ PATH=/sbin:/bin
.bash_profile
ログイン時、~/.bash_profileの環境変数設定が読み込まれる
.bash_profileの編集で環境変数を変更可
一覧
$ printenv
$ printenv | less
SET
指定文字で始まる環境変数の一覧表示
SET (文字列)
設定
SET (環境変数名) = (値)
SET AAA = C:\AAA;C:\BBB
シンボリックリンク
mklink (リンクパス) (元ファイル)
mklink /d (リンクパス) (元フォルダ)
CPU、メモリ、HD使用率
入出力
画面出力
テキスト出力
出力内容 > ファイル名
追記
出力内容 >> ファイル名
(例)ls > list.txt
出力先ファイルが無い場合も新規作成される
出力内容 > ファイル名
追記
出力内容 >> ファイル名
(例)dir > list.txt
出力先ファイルが無い場合も新規作成される
バッチファイル
プログラムの実行
変数
SET ExePath=C:\Windows\Microsoft.NET\Framework\v4.0.30319\
変数の使用宣言不要。"や'の囲み不要。スペース不要。
rem 登録DLL場所
SET DllPath=C:\TEST\
SET DllNm=Test.dll
CD %ExePath%
CALL RegAsm %ExePath%%DllNm% /tlb /codebase
変数の参照は%で囲む。文字列を連結する場合は%~%を続ける。
ターミナル操作
表示言語
chcp 437 IBM437
日本語モード切り替え
chcp 932 shift_jis
chcp 65001 utf-8
画面のクリア
その他
シャットダウン
$ shutdown -h
システムを再起動
$ shutdown -r
または
$ reboot
時間指定
$ shutdown -r now (即)
$ shutdown -r 0:00 (午前0時)
$ shutdown -r +60 (60分後)
シェル(ターミナル)を終了
$ exit
> shutdown -t 1 ※1分後
> shutdown -t 0 ※即
再起動
> shutdown -r
リモートサーバを再起動
shutdown /m XXX.XXX.XXX.XXX /r
処理の中断
CTRL + C
FTP
> ftp ~.com
ログイン
ユーザー: (入力する)
パスワード:(入力する)
以下の様なコマンドが可能
ftp> ls
ftp> cd ~
ftp> mkdir ~
Passive/Activeモード切替
ftp> passive
ローカルマシンのファイルを転送する
ftp> put D:\test.txt
ローカルマシンへファイルを取得する
ftp> get test.txt
FTP終了
ftp> quit
> ftp ~.com
ログイン
ユーザー: (入力する)
パスワード:(入力する)
以下の様なコマンドが可能
ftp> dir
ftp> cd ~
ftp> mkdir ~
Passive/Activeモード切替
ftp> passive
WindowsのFTPクライアントはPassiveモード不可
ローカルマシンのファイルを転送する
ftp> put D:\test.txt
ローカルマシンへファイルを取得する
ftp> get test.txt
FTP終了
ftp> bye