Terminal
をテンプレートにして作成
LECTURE
担当科目一覧
コンピュータ概論/2024
データサイエンス/2024
3DCG演習/2024
情報デザイン研究/2024
卒業研究/2024
KEYWORDS
WEB DESIGN
SOCIAL DESIGN
SQUARES
LINKS
九州産業大学
芸術学部
芸術研究科
九産大美術館
九産大図書館
年間スケジュール
動画ニュース他
交通情報
気象・環境情報
危機に備えて
K'sLife
Office365Mail
Tools
SEARCH
開始行:
*Terminal
端末エミュレータ
~
**はじめに
ターミナルとは、空港や駅などの輸送路の終端を意味する言葉...
最大の特徴は CUI(Character-based User Interface)である...
ちなみに、MacOSはUNIXベースの OS なので、UNIX(Linux)と...
-より詳細なPCの管理や応用的な開発作業では、この知識が必要...
-本格的なサーバー管理には遠隔操作([[SSH]]接続)が必要な...
''[ 注意事項 ]''
-&color(red){ターミナルからのコマンド操作は、自由度が高い...
-&color(red){このページに記載のコマンドには、MacOSでは使...
-&color(red){MacOS Catalina 以降、Terminal のデフォルトシ...
//&color(red){&small(PATHの情報は、bash の場合は .bash_pr...
//&color(red){&small(参考:Mojave からCatalina にアップデ...
~
***CONTENTS
#contents2_1
~
~
**ターミナルの概要
***起動方法(Macの場合)
MacOSメニュー>移動>ユーティリティー>ターミナル
MacOSのターミナルエミュレータの正式名称は、Terminal.app ...
頻繁に使用するつもりであれば、起動後に以下の操作をしまし...
ドック上のアイコンを右クリック>オプション>Dockに追加
~
***どうやって使うの?
ターミナルはCUI(Character User Interface)です。キーボー...
パソコン名:カレントディレクトリ 利用者名 $
例)MyComputer:~ UserName$
この ''$ マークの右側に 命令文字列を入力+[ENTER] '' と...
簡単に体感できる事例として、カレンダーを表示してみましょ...
$ cal
当該月のカレンダーが表示されます。20XX年の1年分見たい場...
$ cal 20XX
ということで、使い方はこんな感じです。
~
***何が便利なの?
-GUI(Graphical User Interface)ではできないことが可能に...
ターミナルを使うと、画面上のメニューには用意されていない...
$ ls -a
このとき、通常は見えないファイル(先頭に . のあるファイル...
-作業の種類によっては、GUI操作よりも効率的です。
ファイル名を一定のルールで一括書き換えするといった作業は...
~
***カレントディレクトリ(作業フォルダ)について
カレントディレクトリという言葉は、ターミナルを利用するの...
例えば、ユーザー yamada さんがMacターミナルを立ち上げたと...
MyComputer:~ yamada$
このプロンプト上の文字列の意味は、以下のとおりです。
PC名:カレントディレクトリ名 ユーザ名$
上の例では、カレントディレクトリの部分が [ ~ ] となってい...
MyComputer:~ yamada$ ls
Applications Downloads Movies Public Desktop
Music Documents Library Pictures
また例えば ''cd(ディレクトリの移動)''コマンドで Desktop...
プロンプト自体が変わって、以下のようになります。
MyComputer:~ yamada$ cd Desktop
MyComputer:Desktop yamada$
プロンプトは現在の場所(カレントディレクトリー)として、y...
MyComputer:Desktop yamada$ ls
SampleSite Document.pdf Test.txt・・・・
~
***フォルダをターミナルで開くには(GUI操作)
ターミナルを通常起動した場合、デフォルトのカレントディレ...
$ cd /Users/links/Documents/SampleProject
その場合、そもそも書類フォルダがどこにあるのか、また書類...
1) Dockにターミナルのアイコンを追加しておきます。
2) ターミナルで開きたいフォルダのアイコンをそこへ Drag&D...
以上で、当該フォルダをカレントディレクトリとして利用でき...
例えば、「書類フォルダ」の中の SampleProject フォルダ を...
SampleProjectフォルダをDock上のターミナルアイコンへ Drag...
これで、ターミナル上では、以下のような表示となり、SampleP...
MyComputer:SampleProject yamada$
~
~
**コマンド操作について
Command(コマンド)の一般的な意味は、命令(する)、指揮(する)...
みなさんが主に使うMac OSはUNIXベースのOSで、ターミナルを...
''この技術は「一生モノ」なので、IT系の人は覚えて損はあり...
コマンドには、システムの特定のディレクトリに収められてい...
-''一般のコマンド''
/binや /usr/bin などのディレクトリに実行型ファイルとして...
-''組み込みコマンド''
シェル(コマンドインターフェイス)の起動時にメモリに読み...
-コマンドのタイプは以下のように type コマンドで調べること...
$ type cd
cd is a shell builtin
これは、 cd コマンドが シェル組み込みコマンドである とい...
以下、よく用いられるコマンドを紹介します(参考程度の内容...
詳しいサイトは多数あります > [[Google: UNIX コマンド一...
''ご注意''
以下のサンプルコマンドの記載で、[ $ ] はターミナルのプロ...
試す場合は [ $ ] は含めず、その右側部分のみを利用して下さ...
~
~
**ディレクトリ操作
***ls [-options]
ディレクトリ内のファイルを一覧表示します ( List Directory...
-例)隠しファイルまで含んですべての一覧を表示( -a は all...
$ ls -a
-例)ディレクトリ内のファイルをサブフォルダまで再帰的にリ...
$ ls -Rl
-例)それをさらにテキストファイル( file_list.txt )とし...
$ ls -Rl > file_list.txt
~
***pwd
Print working directory. 自分が今いる場所、つまりカレント...
$pwd
~
***cd
Change Directory. ディレクトリの移動。これは頻繁に使いま...
-例)カレントディレクトリ内の Desktop フォルダに入る
$ cd Desktop/
-例)一つ上の親ディレクトリに戻る
$ cd ..
-例)ルート(MacintoshHD 直下 / )に行く
$ cd /
-例)自分のホーム( /user/あなたのユーザ名 )に行く
$ cd ~/
~
***mkdir [-options] [-p]
Make Directories. ディレクトリを作ります。
-例)ディレクトリ temp を作成
$ mkdir -m 777 temp
~
***rmdir [-options]
ReMove DIRectory. ディレクトリーを削除します。
-例)ディレクトリ tempを削除する
$ rmdir temp
この命令は、ディレクトリー内が空の場合にのみ有効です。
中身がある場合は、[ ファイル操作] に記載の rm -rf を使う...
~
***tar
Tape Archieves. 複数のファイルを1つのアーカイブファイル...
-例)アーカイブ
$ tar -cvf xxxx.tar アーカイブ対象ディレクトリ
-例) 展開
$ tar -xvf xxxx.tar
-''例)圧縮してアーカイブ''
$ tar -zcvf xxxx.tar.gz 圧縮アーカイブ対象ディレクトリ
-''例)解凍して展開''
$ tar -zxvf xxxx.tar.gz
-応用例)日付をつけてアーカイブ
tar -cvf backup_$(date +%Y%m%d).tar.gz 対象ディレクトリ名
-tarでのアーカイブファイルの拡張子には .tar が使われます...
-オプションの意味
--c(--create):アーカイブを作成
--x(--extract):ファイルを解凍し展開・復元を行う
--v(--verbose)アーカイブ結果を表示する
--f(--file=ARCHIVE):アーカイブファイル名を指定する
--z(--gzip):gzip形式で圧縮する
-tarコマンドはオプションにハイフンをつけなくても動く珍し...
$ tar cvf hoge.tar hoge
$tar -cvf hoge.tar hoge
これは歴史的な経緯で、コマンドラインオプションに [ - ]を...
~
***zip / unzip
zip形式で圧縮します。
-例)ファイルの圧縮
$ zip xxxx.zip test.txt
-例)複数ファイルの圧縮
$ zip xxxx.zip test1.txt test2.txt・・
$ zip xxxx.zip test*.txt
-例)ディレクトリの圧縮(testという名前のディレクトリを想...
zip -r xxxx.zip test
$ zip -r xxxx.zip
-例)解凍する場合・・
$unzip xxxx.zip
~
~
**ファイル操作
***cat
ファイルの内容を標準出力に出力する。標準出力というのはタ...
-例)file1 の内容を見る
$ cat file1
-例)file1とfile2を結合してfile3 に出力する
$ cat file1 file2 > file3
-例)OSのバージョンを確認する(CentOSの場合)
$ cat /etc/redhat-release
ちなみに MacOS の場合は以下
$ sw_vers
-例)カーネルのバージョンを確認する
$ cat /proc/version
~
***open [-options]
ファイルを開く、あるいは、アプリケーションを起動します。...
-a:Opens with the specified application.
-t:Opens with default text editor.
-n, --new:Open a new instance of the application
-ファイルを指定して開く(関連付けされたアプリケーションで...
$ open test.png ← おそらくプレビューが起動
$ open http://www.google.com ← デフォルトブラウザが起動
$ open ~/.bash_profile ← デフォルトエディタが起動
注).bash_profile の意味が不明な場合は試さないで下さい...
-アプリケーションを起動: -a オプション
$ open -a Firefox
$ open -a Safari
$ open -a "/Applications/Google Chrome.app"
-アプリケーションとファイル名を指定して起動
$ open -a Atom sample.txt
~
***cp [-options] source dest
ファイルやディレクトリーをコピーする ( copy )
-例)file1を/tmp/というディレクトリの中にコピーする
$ cp file1 /tmp/
~
***mv [-options] source dest
ファイルやディレクトリを移動 ( move )
-例)file1ファイルをfile2に名前を変更する
$ mv file1 file2
~
***rm [-options] name...
ファイル、ディレクトリーの削除 ( ReMove )
-例)カレントディレクトリ内の拡張子 .txt のファイルを削除...
$ rm *.txt
-例)カレントディレクトリにある abc* に該当するファイルを...
$ rm abc*
&small(USBをMacで使った際にできた ''._'' から始まるデータ...
-例)ディレクトリ temp 内のファイルやディレクトリ含めて削除
$ rm -rf temp
ご注意:ReMoveにワイルドカード(''*'' や ''???'')を使う...
~
***diff
ファイルの比較
$ diff -q a.txt b.txt
~
***echo
画面(標準出力)に文字列や数値、変数を表示する
-そのまま表示
$ echo Hello!
Hello!
-画面に書いた文字をそのままテキストファイルへ ← 意外に便利
$ echo Hello! > hello.txt
→ カレントディレクトリに hello.txt ができます。
-変数の値を表示
$ a=1200
$ echo $a
// 1200
-環境変数 $PATH を表示 ← コマンドが通る場所を確認(頻繁に...
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
参考:パスは:で複数接続されています。左の方が優先的に採...
~
***vi / vim
標準エディタを起動。簡単なファイル作成、編集に便利
> 詳細はこちらのページ → [[Vim]]
~
~
**アカウント操作
***useradd [-options] username
ユーザーの作成
-例)ユーザーを作成
$ useradd testuser
-例)ユーザーを作成(ホームディレクトリも同時作成)
$ useradd -m testuser
~
***passwd [username]
-例)testuser のパスワードを設定
$ passwd testuser
~
***userdel [-r] [username]
-例) testuser を削除
$ userdel testuser
-例)testuser を削除(ホームディレクトリも削除)
$ userdel -r testuser
~
''参考'':ユーザー一覧を確認するには
-catコマンドで/etc/passwdを見るとユーザーの一覧を表示でき...
$ cat /etc/passwd
-ユーザー名のみを抽出して見るには・・
$cat /etc/passwd|sed -e 's/:.*//g'
~
~
**権限操作
***chmod [-options] mode file...
ファイルのアクセス権限を変更 ( change file modes or Acces...
-例)File01.txt のアクセス権を 755 に変更
$ chmod 755 File01.txt
-例)ディレクトリ work のアクセス権を 再帰的に 777 に変更
$ chmod -R 777 work
管理者権限で実行する必要があるケースでは以下
$ sudo chmod -R 777 work
Password: ← 聞かれるので入力します。
注)ファイルのアクセス権限についてはこちら > [[FilePerm...
~
***chown owner[:group] file or directory
ファイルやディレクトリの所有者を変更する
-例)dataフォルダの所有者を sato に変更する
$ chown sato data
-例)dataフォルダの所有者を sato にグループを member にする
$ chown sato:member data
-ディレクトリごと権限を変更したい場合は、chmodと同様に [-...
~
~
**検索
***which [-options] command-name
指定されたコマンドを、環境変数PATHに設定されているディレ...
-例)vi(エディタ)の場所を探す
$ which vi
/usr/bin/vi
~
***locate
名前のみを検索対象として高速で検索
$ locate 検索キーワード
-例)拡張子 csv のファイルを探す
$ locate .csv
''付記''
minimalインストールの場合 locateコマンドはインストールさ...
# yum install mlocate
mlocate.dbが生成されていないとすぐには使えないので、updat...
# updatedb
~
***find [-options] name
ファイルを検索します ( find )
-例)カレントディレクトリ直下で、ファイル名が abc* のもの...
$ find -name abc*
&small(上記の[ * ] は、この部分は何でもいい・・という意味...
-例)拡張子 . htmlのファイルをファイル詳細付きで検索する
$ find *.html -ls
~
***grep
ファイル中の文字列を検索します。検索パターンとして、正規...
-例)拡張子がtxtのファイルから sample を検索
$ grep "sample" *.txt
-例)index.htmlから <P>または<p>のある行数を表示
$ grep -ci "<p>" index.html
-付記:正規表現について
--[[正規表現の概説>RegularExpression]]
--正規表現チェッカー:http://okumocchi.jp/php/re.php
~
~
**ネットワーク関連
***ifconfig(Windows ではipconfig)
ipアドレス他、当該機器のネットワーク設定を表示する。
$ ifconfig
~
***ip
ネットワークデバイスやルーティング等の表示と変更を行う。i...
-例)デバイスの設定を一覧表示する
$ ip addr show
$ ip a ← addrをaと省略表記、showサブコマンドを省略
-指定したデバイスの設定を一覧表示する
$ ip addr show dev デバイス名(画面1)
~
***ping [-qr] [-c count] [-i wait] [-s packetsize] host
指定されたホストと交信が可能かどうかを確認します。リモー...
-例)www.example.com にパケットを送る
$ ping www.example.com
Macの場合、送り続けるので、強制停止の必要があります。以下...
[CTRL] + [C]
-例)www.example.com に5回パケットを送る
$ ping -c 5 www.example.com
~
***dig [@server] domain [query-type] [query-class] [+-][q...
ドメインの情報をDNSサーバーに問い合わせて表示する。
-例)example.com を調べる
$ dig example.com
-例)アドレスから逆引きで調べる
$ dig -x 216.239.38.10
~
***nslookup [option] [Domain name or ip] [DNS server]
ドメインの情報をDNSサーバーに問い合わせて表示します。dig...
&small( nslookupは将来的にサポートされなくなる可能性あり...
-例)ドメイン名からIPアドレスを調べる
$ nslookup www.yahoo.co.jp
対話型モード(>)から抜けるには
> exit
~
***netstat
接続情報(IP,ポート)やルート情報を表示
$ netstat
~
***tracert
あるホストから別のホストまでのネットワーク経路をリスト表...
$ traceroute6 www.example.com
~
***whois
ドメインの所有者などをはじめとするドメイン情報を表示
-例)ドメイン名からドメイン情報を表示
$ whois google.co.jp
-例)IPアドレスからドメイン情報を探し出して表示
$ whois 133.17.5.5
~
***nmap
空いているポートを確認(セキュリティー状態の確認)
$ nmap localhost
デフォルトでは入っていない場合はインストール(以下)
$ sudo yum -y install nmap
$ nmap -V (バージョン確認)
~
~
**システム、サービス等
***コマンドのバージョン確認
コマンド名 -V(--version)
実行型コマンド(ソフトウエア)のバージョンを表示します。...
$ httpd -v
$ php -v
$ mysql --version
$ python --version
~
***clear
ターミナル画面をクリアし、表示された文字を全て消去します。
~
***exit / logout
ターミナルからログアウトします。
[ プロセスが完了しました ] となって、以後コマンドは打てな...
機能停止したウインドウは x で閉じましょう。
~
***export
環境変数やシェル変数を設定する
-環境変数 $PATH を書き換える
たとえば /usr/[UserName]/sample/bin へパスを通したい場合、
現在の $PATHに追加のパスに:を使って接続します。
$ PATH=$PATH:/usr/[UserName]/sample/bin
$ export PATH
参考:パスは:で複数接続されています。左の方が優先的に採...
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
-参考:.bash_profile を編集してXAMPPにパスを通す
Mac + xampp + ターミナルでmysqlにログインする場合などに必...
$ cd ~
$ vi .bash_profile(atom にパスが通っている場合は $ atom...
vi エディタで以下を追記
export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
~
***man [command]
コマンドの使用方法を表示します(Manual)
-例)ls コマンドの使い方を調べる
$ man ls
説明の途中で''プロンプトに戻りたいときは [Q] をタイプ''し...
~
***su [-] [UserName]
ユーザの切り替え(Switch User)
-例)操作の権限を管理者権限に上げる(rootにあがる)
$ su
password: ← パスワードの入力が求められます。
# ← rootユーザ(管理者)になるとプロンプトが # になりま...
ユーザー名を指定せずにsuコマンドを実行するとスーパーユー...
&color(red){''注意''};
Mac の初期状態では誤操作防止のためこのコマンドは使えませ...
[[Google:Mac でルートユーザを有効にする方法]]
~
***sudo [ option ]
スーパーユーザー(root)に成り代わって、コマンドを実行(S...
-例)管理者権限でソフトをインストール
$ sudo yum install ・・・
&color(red){''注意''};
Mac のTerminal にはこのコマンドは使えません。Macに標準搭...
$ sudo apachectl start ← 管理者PWを入力後に Apache が起...
ブラウザを起動して、URLに http://localhost と入力すると、...
$ sudo apachectl stop ← 停止します。
~
***systemctl
-コマンド群
--サービス起動 systemctl start ${Unit}
--サービス停止 systemctl stop ${Unit}
--サービス再起動 systemctl restart ${Unit}
--サービスリロード systemctl reload ${Unit}
--サービスステータス表示 systemctl status ${Unit}
--サービス自動起動有効 systemctl enable ${Unit}
--サービス自動起動無効 systemctl disable ${Unit}
--サービス自動起動設定確認 systemctl is-enabled ${Unit}
--サービス一覧 systemctl list-unit-files --type=service
--設定ファイルの再読込 systemctl daemon-reload
-例)Apacheサーバーの起動/終了/再起動
$ sudo systemctl start httpd
$ sudo systemctl stop httpd
$ sudo systemctl restart httpd
-補足)Mac標準のWebサーバーの起動/終了/再起動
管理者権限が必要なため、sudo に続けてタイプ。PW入力が必要...
$ sudo apachectl start
$ sudo apachectl stop
$ sudo apachectl restart
~
***ssh
リモートコンピュータへの接続
$ ssh [ ユーザー名 ] @ [ 接続先IPアドレス]
例)$ ssh hanako@133.17.XXX.XXX
> 詳細は [[SSH]] のページをご覧下さい。
~
***yum
yumは Yellowdog Updater Modifiedの略で、ディストリビュー...
注)Mac のTermnal では yum は使えません(後述)
-リポジトリにアップデートがないかチェック
# yum check-update
-リポジトリのアップデート
# yum update
-インストールされたリポジトリと有効・無効の状態を確認(例...
# yum repolist all | grep mysql
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Co...
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Co...
mysql-cluster-8.0-community/x86_64 MySQL Cluster 8.0 Co...
mysql-cluster-8.0-community-source MySQL Cluster 8.0 Co...
mysql-connectors-community/x86_64 MySQL Connectors Comm...
mysql-connectors-community-source MySQL Connectors Comm...
mysql-tools-community/x86_64 MySQL Tools Community 有...
mysql-tools-community-source MySQL Tools Community - So...
mysql-tools-preview/x86_64 MySQL Tools Preview 無効
mysql-tools-preview-source MySQL Tools Preview - Source...
mysql57-community/x86_64 MySQL 5.7 Community Server 無効
mysql57-community-source MySQL 5.7 Community Server - S...
mysql80-community/x86_64 MySQL 8.0 Community Server 有...
mysql80-community-source MySQL 8.0 Community Server - S...
有効の表記のあるものが採用されます。
-リポジトリからパッケージをインストール(依存関係自動解決)
# yum install <pkg>
-リポジトリからパッケージを検索
# yum search <pkg>
-インストールされているパッケージを削除
# yum remove <pkg>
-インストールされているパッケージの情報を表示
# yum info <pkg>
-インストールされているパッケージ一覧を表示
# yum list installed
-補足1:EPELリポジトリの追加
EPELはRHEL 向けの高品質アドオンパッケージ群でFedora プロ...
# yum install epel-release
# yum update (インストール後はアップデートします)
-補足2:リポジトリ選択の重要性
リポジトリを指定せずにインストールしようとすると、デフォ...
~
***参考:brew
''Macには、yum はありません''
yumは、Linuxのディストリビューション CentOS等で使われてい...
//Ubuntuでは apt-get
Homebrew を利用できるようにするには、以下の手順です。
-以下のサイトの先頭にあるスクリプトをターミナルから入力
https://brew.sh/index_ja.html
-以下のコマンドで、バージョンが表示されればOK
$ brew -v
Homebrew 1.8.6
~
~
**システム監視
***top
OSで利用しているプロセスの数や状態、またOS全体のシステム...
# top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIM...
%CPU、%MEMの値が異常に高いプロセスがあれば、それがリソー...
~
***vmstat
システム全体の負荷を一覧。停止する場合は [CTRL] + [C] で...
# vmstat 2 ・・・ 2 は「2秒ごと」を意味します。
procs -----------memory---------- ---swap-- -----io--...
r b swpd free buff cache si so ...
・・・ここに数字列・・・・
-procs
--r :実行中または実行待ちのプロセス数
--b:IO待ちのプロセス数( r+b でロードアベレージに等しく...
-memory
--swpd:スワップされたメモリ
--free:空きメモリ(これは小さくてもいいですが、free + bu...
--buff:バッファキャッシュ
--cache :ページキャッシュ
-swap
--si:スワップイン
--so:スワップアウト
-io
--bi:ブロックデバイスからの読み込み
--bo :ブロックデバイスへの書き込み
-system
--in:1秒間の割り込み回数
--cs :1秒間のコンテキストスイッチ回数
-cpu
--us:ユーザーCPU時間
--sy:システムCPU時間(カーネルが使用したCPU使用率)
--id:アイドル時間
--wa :IO待ち時間
--st:仮想マシンに取られた時間
~
***free
空きメモリーの確認
# free
~
***df
ファイルシステム(パーティション)ごとのディスク容量を確...
$ df -h
~
~
**Git 関連コマンド
Macの場合 Git自体は標準でインストール済みですが、ターミナ...
-リポジトリの作成およびメンテナンス
git init:リポジトリを作成する
git clone:既存のリポジトリの複製を作る
git fsck:リポジトリの正当性チェックを行う
git gc:リポジトリ内の不要なオブジェクトを削除し、最適化...
-作業ツリーやブランチの操作・管理
git status:変更が加えられたファイルを表示する
git diff:ファイルに加えられた変更点をdiff形式で表示する
git add:コミットするファイルを指定する(ステージへの移動)
git commit:変更点をコミットする
git log:コミットログを閲覧する
git reset:直前のコミットを取り消す
git revert:作業ツリーを指定したコミット時点の状態にまで...
git branch :ブランチ情報の表示およびブランチの作成
git checkout:ブランチの切り替え
git show-branch:ブランチの作成/変更/マージ履歴を表示
git merge:ローカルブランチのマージを行う
git tag:コミットにタグを付ける
git stash:現在の作業ツリーの状態を一時的に保管する
git rebase:ブランチの派生元(上流)を変更する
-他のリポジトリとの連携
git pull:ほかのリポジトリの変更点をローカルリポジトリに...
git push :公開リポジトリに自分のリポジトリの内容を送信する
~
~
**その他
***デバイスはファイルである
UNIX 系OSではメモリーも含めてあらゆるデバイスはファイルと...
例)デバイスを直に操作してサウンドを鳴らすには…
Linux OSS ではサウンドデバイスは /dev/dsp または /dev/audio
ここに何かを流し込めば、何らかの音が出ます。つまり /dev/d...
$ cat test.dat > /dev/dsp
中断は、CTRL+C
~
~
**応用例
***フォルダ内のファイル一覧をテキストファイルとして保存
-一覧を作成したいフォルダ内(ディレクトリ内)に入ります。
-以下のコマンドで fileList.txt ができます。
$ ls -l > fileList.txt ( -l は ハイフン・エルです)
-以下のようにすると、フォルダ内のフォルダの中まで再帰的に...
$ ls -lR > fileList.txt ( -lR は ハイフン・エル・ア...
~
***ファイル拡張子の一括変換
以下の例は、カレントディレクトリ内にある、大文字の拡張子J...
3行分のループ処理になっていて、3行を順に入力していきま...
for fname in *.JPG;do
この時点で、対話型入力モードになります(プロンプトが > ...
mv $fname ${fname%.JPG}.jpg
move、この場合は、名称変更の操作です。ルール通りに・・
done
doループの終端です。
なお、ループから抜け出せなくなった場合(>の表示から抜け...
~
***フォルダ内のファイルを一括で連番ファイル名に変換
以下、フォルダ内にあるすべての png 画像を連番形式で img_x...
ls *.png | awk '{ printf "mv %s img_%03d.png\n", $0, NR ...
~
***ファイルの比較 ( compare files line by line > differen...
diff [-options] file1 file2
-例)file1 と file2 の比較を行う > 比較結果が画面に表示...
$ diff file1 file2
-例)file.txt(旧) と file.new.txt(新) の差分ファイルを作る
$ diff -u file.txt file.new.txt > file.patch
&small([ -u ] は unified diff 形式でパッチファイルを作る...
-例)folder(旧) と folder_new(新) 、2フォルダ間の差分フ...
$ diff -u folder folder_new > folder.diff
差分ファイル folder.diffs を作る場合は、一般に2つのフォ...
--- folder/index.html 2017-09-08 19:06:46.000000000 +0900
+++ folder_new/index.html 2017-09-08 19:06:46.000000000...
~
***ファイルにパッチをあてる( patch )
patch [ -options ] file patchfile
-例)file を patchfile で修正する
$ patch -u file patchfile
&small([ -u ] は unified diff形式のパッチファイルをあてる...
-例)pachfile 内に書かれた「元ファイル」を修正する
$ patch -u < patchfile
パッチファイルの先頭行「--- ファイル名」の部分に適用元の...
-例)ディレクトリ単位でパッチをあてる
$ patch -u -p1 < folder.diffs
''-p1についての補足''
フォルダ間の差分ファイルの作成では、2つのフォルダが直下...
詳細は [[PatchFile]] のページをご覧下さい。
~
~
**Mac特有の操作
必要に応じて、随時追記します。
~
***隠しファイルの表示
ユーザーに見える必要のないシステムファイル等は通常、「隠...
&small(ふつうに自分のファイルを保存する場合も同じです。フ...
MacOSのバージョンによっては、以下の方法で、その表示・非表...
[COMMAND] + [SHIFT] + [ . ]
ただ、新しいOSでは、これができなくなっているようです。上...
&color(red){以下、それなりに危険な操作なので慎重に。Fin...
~
-''隠しファイルを表示するには''
--1) 設定ファイルの当該項目を true に書き換えます。
$ defaults write com.apple.finder AppleShowAllFiles true
--2) Finder を再起動します。← 一瞬デスクトップが消えます。
$ killall Finder
-''元に戻す場合は''
--1) 設定ファイルの当該項目を false に書き換えます。
$ defaults write com.apple.finder AppleShowAllFiles false
--2) Finder を再起動します。
$ killall Finder
~
~
~
終了行:
*Terminal
端末エミュレータ
~
**はじめに
ターミナルとは、空港や駅などの輸送路の終端を意味する言葉...
最大の特徴は CUI(Character-based User Interface)である...
ちなみに、MacOSはUNIXベースの OS なので、UNIX(Linux)と...
-より詳細なPCの管理や応用的な開発作業では、この知識が必要...
-本格的なサーバー管理には遠隔操作([[SSH]]接続)が必要な...
''[ 注意事項 ]''
-&color(red){ターミナルからのコマンド操作は、自由度が高い...
-&color(red){このページに記載のコマンドには、MacOSでは使...
-&color(red){MacOS Catalina 以降、Terminal のデフォルトシ...
//&color(red){&small(PATHの情報は、bash の場合は .bash_pr...
//&color(red){&small(参考:Mojave からCatalina にアップデ...
~
***CONTENTS
#contents2_1
~
~
**ターミナルの概要
***起動方法(Macの場合)
MacOSメニュー>移動>ユーティリティー>ターミナル
MacOSのターミナルエミュレータの正式名称は、Terminal.app ...
頻繁に使用するつもりであれば、起動後に以下の操作をしまし...
ドック上のアイコンを右クリック>オプション>Dockに追加
~
***どうやって使うの?
ターミナルはCUI(Character User Interface)です。キーボー...
パソコン名:カレントディレクトリ 利用者名 $
例)MyComputer:~ UserName$
この ''$ マークの右側に 命令文字列を入力+[ENTER] '' と...
簡単に体感できる事例として、カレンダーを表示してみましょ...
$ cal
当該月のカレンダーが表示されます。20XX年の1年分見たい場...
$ cal 20XX
ということで、使い方はこんな感じです。
~
***何が便利なの?
-GUI(Graphical User Interface)ではできないことが可能に...
ターミナルを使うと、画面上のメニューには用意されていない...
$ ls -a
このとき、通常は見えないファイル(先頭に . のあるファイル...
-作業の種類によっては、GUI操作よりも効率的です。
ファイル名を一定のルールで一括書き換えするといった作業は...
~
***カレントディレクトリ(作業フォルダ)について
カレントディレクトリという言葉は、ターミナルを利用するの...
例えば、ユーザー yamada さんがMacターミナルを立ち上げたと...
MyComputer:~ yamada$
このプロンプト上の文字列の意味は、以下のとおりです。
PC名:カレントディレクトリ名 ユーザ名$
上の例では、カレントディレクトリの部分が [ ~ ] となってい...
MyComputer:~ yamada$ ls
Applications Downloads Movies Public Desktop
Music Documents Library Pictures
また例えば ''cd(ディレクトリの移動)''コマンドで Desktop...
プロンプト自体が変わって、以下のようになります。
MyComputer:~ yamada$ cd Desktop
MyComputer:Desktop yamada$
プロンプトは現在の場所(カレントディレクトリー)として、y...
MyComputer:Desktop yamada$ ls
SampleSite Document.pdf Test.txt・・・・
~
***フォルダをターミナルで開くには(GUI操作)
ターミナルを通常起動した場合、デフォルトのカレントディレ...
$ cd /Users/links/Documents/SampleProject
その場合、そもそも書類フォルダがどこにあるのか、また書類...
1) Dockにターミナルのアイコンを追加しておきます。
2) ターミナルで開きたいフォルダのアイコンをそこへ Drag&D...
以上で、当該フォルダをカレントディレクトリとして利用でき...
例えば、「書類フォルダ」の中の SampleProject フォルダ を...
SampleProjectフォルダをDock上のターミナルアイコンへ Drag...
これで、ターミナル上では、以下のような表示となり、SampleP...
MyComputer:SampleProject yamada$
~
~
**コマンド操作について
Command(コマンド)の一般的な意味は、命令(する)、指揮(する)...
みなさんが主に使うMac OSはUNIXベースのOSで、ターミナルを...
''この技術は「一生モノ」なので、IT系の人は覚えて損はあり...
コマンドには、システムの特定のディレクトリに収められてい...
-''一般のコマンド''
/binや /usr/bin などのディレクトリに実行型ファイルとして...
-''組み込みコマンド''
シェル(コマンドインターフェイス)の起動時にメモリに読み...
-コマンドのタイプは以下のように type コマンドで調べること...
$ type cd
cd is a shell builtin
これは、 cd コマンドが シェル組み込みコマンドである とい...
以下、よく用いられるコマンドを紹介します(参考程度の内容...
詳しいサイトは多数あります > [[Google: UNIX コマンド一...
''ご注意''
以下のサンプルコマンドの記載で、[ $ ] はターミナルのプロ...
試す場合は [ $ ] は含めず、その右側部分のみを利用して下さ...
~
~
**ディレクトリ操作
***ls [-options]
ディレクトリ内のファイルを一覧表示します ( List Directory...
-例)隠しファイルまで含んですべての一覧を表示( -a は all...
$ ls -a
-例)ディレクトリ内のファイルをサブフォルダまで再帰的にリ...
$ ls -Rl
-例)それをさらにテキストファイル( file_list.txt )とし...
$ ls -Rl > file_list.txt
~
***pwd
Print working directory. 自分が今いる場所、つまりカレント...
$pwd
~
***cd
Change Directory. ディレクトリの移動。これは頻繁に使いま...
-例)カレントディレクトリ内の Desktop フォルダに入る
$ cd Desktop/
-例)一つ上の親ディレクトリに戻る
$ cd ..
-例)ルート(MacintoshHD 直下 / )に行く
$ cd /
-例)自分のホーム( /user/あなたのユーザ名 )に行く
$ cd ~/
~
***mkdir [-options] [-p]
Make Directories. ディレクトリを作ります。
-例)ディレクトリ temp を作成
$ mkdir -m 777 temp
~
***rmdir [-options]
ReMove DIRectory. ディレクトリーを削除します。
-例)ディレクトリ tempを削除する
$ rmdir temp
この命令は、ディレクトリー内が空の場合にのみ有効です。
中身がある場合は、[ ファイル操作] に記載の rm -rf を使う...
~
***tar
Tape Archieves. 複数のファイルを1つのアーカイブファイル...
-例)アーカイブ
$ tar -cvf xxxx.tar アーカイブ対象ディレクトリ
-例) 展開
$ tar -xvf xxxx.tar
-''例)圧縮してアーカイブ''
$ tar -zcvf xxxx.tar.gz 圧縮アーカイブ対象ディレクトリ
-''例)解凍して展開''
$ tar -zxvf xxxx.tar.gz
-応用例)日付をつけてアーカイブ
tar -cvf backup_$(date +%Y%m%d).tar.gz 対象ディレクトリ名
-tarでのアーカイブファイルの拡張子には .tar が使われます...
-オプションの意味
--c(--create):アーカイブを作成
--x(--extract):ファイルを解凍し展開・復元を行う
--v(--verbose)アーカイブ結果を表示する
--f(--file=ARCHIVE):アーカイブファイル名を指定する
--z(--gzip):gzip形式で圧縮する
-tarコマンドはオプションにハイフンをつけなくても動く珍し...
$ tar cvf hoge.tar hoge
$tar -cvf hoge.tar hoge
これは歴史的な経緯で、コマンドラインオプションに [ - ]を...
~
***zip / unzip
zip形式で圧縮します。
-例)ファイルの圧縮
$ zip xxxx.zip test.txt
-例)複数ファイルの圧縮
$ zip xxxx.zip test1.txt test2.txt・・
$ zip xxxx.zip test*.txt
-例)ディレクトリの圧縮(testという名前のディレクトリを想...
zip -r xxxx.zip test
$ zip -r xxxx.zip
-例)解凍する場合・・
$unzip xxxx.zip
~
~
**ファイル操作
***cat
ファイルの内容を標準出力に出力する。標準出力というのはタ...
-例)file1 の内容を見る
$ cat file1
-例)file1とfile2を結合してfile3 に出力する
$ cat file1 file2 > file3
-例)OSのバージョンを確認する(CentOSの場合)
$ cat /etc/redhat-release
ちなみに MacOS の場合は以下
$ sw_vers
-例)カーネルのバージョンを確認する
$ cat /proc/version
~
***open [-options]
ファイルを開く、あるいは、アプリケーションを起動します。...
-a:Opens with the specified application.
-t:Opens with default text editor.
-n, --new:Open a new instance of the application
-ファイルを指定して開く(関連付けされたアプリケーションで...
$ open test.png ← おそらくプレビューが起動
$ open http://www.google.com ← デフォルトブラウザが起動
$ open ~/.bash_profile ← デフォルトエディタが起動
注).bash_profile の意味が不明な場合は試さないで下さい...
-アプリケーションを起動: -a オプション
$ open -a Firefox
$ open -a Safari
$ open -a "/Applications/Google Chrome.app"
-アプリケーションとファイル名を指定して起動
$ open -a Atom sample.txt
~
***cp [-options] source dest
ファイルやディレクトリーをコピーする ( copy )
-例)file1を/tmp/というディレクトリの中にコピーする
$ cp file1 /tmp/
~
***mv [-options] source dest
ファイルやディレクトリを移動 ( move )
-例)file1ファイルをfile2に名前を変更する
$ mv file1 file2
~
***rm [-options] name...
ファイル、ディレクトリーの削除 ( ReMove )
-例)カレントディレクトリ内の拡張子 .txt のファイルを削除...
$ rm *.txt
-例)カレントディレクトリにある abc* に該当するファイルを...
$ rm abc*
&small(USBをMacで使った際にできた ''._'' から始まるデータ...
-例)ディレクトリ temp 内のファイルやディレクトリ含めて削除
$ rm -rf temp
ご注意:ReMoveにワイルドカード(''*'' や ''???'')を使う...
~
***diff
ファイルの比較
$ diff -q a.txt b.txt
~
***echo
画面(標準出力)に文字列や数値、変数を表示する
-そのまま表示
$ echo Hello!
Hello!
-画面に書いた文字をそのままテキストファイルへ ← 意外に便利
$ echo Hello! > hello.txt
→ カレントディレクトリに hello.txt ができます。
-変数の値を表示
$ a=1200
$ echo $a
// 1200
-環境変数 $PATH を表示 ← コマンドが通る場所を確認(頻繁に...
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
参考:パスは:で複数接続されています。左の方が優先的に採...
~
***vi / vim
標準エディタを起動。簡単なファイル作成、編集に便利
> 詳細はこちらのページ → [[Vim]]
~
~
**アカウント操作
***useradd [-options] username
ユーザーの作成
-例)ユーザーを作成
$ useradd testuser
-例)ユーザーを作成(ホームディレクトリも同時作成)
$ useradd -m testuser
~
***passwd [username]
-例)testuser のパスワードを設定
$ passwd testuser
~
***userdel [-r] [username]
-例) testuser を削除
$ userdel testuser
-例)testuser を削除(ホームディレクトリも削除)
$ userdel -r testuser
~
''参考'':ユーザー一覧を確認するには
-catコマンドで/etc/passwdを見るとユーザーの一覧を表示でき...
$ cat /etc/passwd
-ユーザー名のみを抽出して見るには・・
$cat /etc/passwd|sed -e 's/:.*//g'
~
~
**権限操作
***chmod [-options] mode file...
ファイルのアクセス権限を変更 ( change file modes or Acces...
-例)File01.txt のアクセス権を 755 に変更
$ chmod 755 File01.txt
-例)ディレクトリ work のアクセス権を 再帰的に 777 に変更
$ chmod -R 777 work
管理者権限で実行する必要があるケースでは以下
$ sudo chmod -R 777 work
Password: ← 聞かれるので入力します。
注)ファイルのアクセス権限についてはこちら > [[FilePerm...
~
***chown owner[:group] file or directory
ファイルやディレクトリの所有者を変更する
-例)dataフォルダの所有者を sato に変更する
$ chown sato data
-例)dataフォルダの所有者を sato にグループを member にする
$ chown sato:member data
-ディレクトリごと権限を変更したい場合は、chmodと同様に [-...
~
~
**検索
***which [-options] command-name
指定されたコマンドを、環境変数PATHに設定されているディレ...
-例)vi(エディタ)の場所を探す
$ which vi
/usr/bin/vi
~
***locate
名前のみを検索対象として高速で検索
$ locate 検索キーワード
-例)拡張子 csv のファイルを探す
$ locate .csv
''付記''
minimalインストールの場合 locateコマンドはインストールさ...
# yum install mlocate
mlocate.dbが生成されていないとすぐには使えないので、updat...
# updatedb
~
***find [-options] name
ファイルを検索します ( find )
-例)カレントディレクトリ直下で、ファイル名が abc* のもの...
$ find -name abc*
&small(上記の[ * ] は、この部分は何でもいい・・という意味...
-例)拡張子 . htmlのファイルをファイル詳細付きで検索する
$ find *.html -ls
~
***grep
ファイル中の文字列を検索します。検索パターンとして、正規...
-例)拡張子がtxtのファイルから sample を検索
$ grep "sample" *.txt
-例)index.htmlから <P>または<p>のある行数を表示
$ grep -ci "<p>" index.html
-付記:正規表現について
--[[正規表現の概説>RegularExpression]]
--正規表現チェッカー:http://okumocchi.jp/php/re.php
~
~
**ネットワーク関連
***ifconfig(Windows ではipconfig)
ipアドレス他、当該機器のネットワーク設定を表示する。
$ ifconfig
~
***ip
ネットワークデバイスやルーティング等の表示と変更を行う。i...
-例)デバイスの設定を一覧表示する
$ ip addr show
$ ip a ← addrをaと省略表記、showサブコマンドを省略
-指定したデバイスの設定を一覧表示する
$ ip addr show dev デバイス名(画面1)
~
***ping [-qr] [-c count] [-i wait] [-s packetsize] host
指定されたホストと交信が可能かどうかを確認します。リモー...
-例)www.example.com にパケットを送る
$ ping www.example.com
Macの場合、送り続けるので、強制停止の必要があります。以下...
[CTRL] + [C]
-例)www.example.com に5回パケットを送る
$ ping -c 5 www.example.com
~
***dig [@server] domain [query-type] [query-class] [+-][q...
ドメインの情報をDNSサーバーに問い合わせて表示する。
-例)example.com を調べる
$ dig example.com
-例)アドレスから逆引きで調べる
$ dig -x 216.239.38.10
~
***nslookup [option] [Domain name or ip] [DNS server]
ドメインの情報をDNSサーバーに問い合わせて表示します。dig...
&small( nslookupは将来的にサポートされなくなる可能性あり...
-例)ドメイン名からIPアドレスを調べる
$ nslookup www.yahoo.co.jp
対話型モード(>)から抜けるには
> exit
~
***netstat
接続情報(IP,ポート)やルート情報を表示
$ netstat
~
***tracert
あるホストから別のホストまでのネットワーク経路をリスト表...
$ traceroute6 www.example.com
~
***whois
ドメインの所有者などをはじめとするドメイン情報を表示
-例)ドメイン名からドメイン情報を表示
$ whois google.co.jp
-例)IPアドレスからドメイン情報を探し出して表示
$ whois 133.17.5.5
~
***nmap
空いているポートを確認(セキュリティー状態の確認)
$ nmap localhost
デフォルトでは入っていない場合はインストール(以下)
$ sudo yum -y install nmap
$ nmap -V (バージョン確認)
~
~
**システム、サービス等
***コマンドのバージョン確認
コマンド名 -V(--version)
実行型コマンド(ソフトウエア)のバージョンを表示します。...
$ httpd -v
$ php -v
$ mysql --version
$ python --version
~
***clear
ターミナル画面をクリアし、表示された文字を全て消去します。
~
***exit / logout
ターミナルからログアウトします。
[ プロセスが完了しました ] となって、以後コマンドは打てな...
機能停止したウインドウは x で閉じましょう。
~
***export
環境変数やシェル変数を設定する
-環境変数 $PATH を書き換える
たとえば /usr/[UserName]/sample/bin へパスを通したい場合、
現在の $PATHに追加のパスに:を使って接続します。
$ PATH=$PATH:/usr/[UserName]/sample/bin
$ export PATH
参考:パスは:で複数接続されています。左の方が優先的に採...
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
-参考:.bash_profile を編集してXAMPPにパスを通す
Mac + xampp + ターミナルでmysqlにログインする場合などに必...
$ cd ~
$ vi .bash_profile(atom にパスが通っている場合は $ atom...
vi エディタで以下を追記
export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
~
***man [command]
コマンドの使用方法を表示します(Manual)
-例)ls コマンドの使い方を調べる
$ man ls
説明の途中で''プロンプトに戻りたいときは [Q] をタイプ''し...
~
***su [-] [UserName]
ユーザの切り替え(Switch User)
-例)操作の権限を管理者権限に上げる(rootにあがる)
$ su
password: ← パスワードの入力が求められます。
# ← rootユーザ(管理者)になるとプロンプトが # になりま...
ユーザー名を指定せずにsuコマンドを実行するとスーパーユー...
&color(red){''注意''};
Mac の初期状態では誤操作防止のためこのコマンドは使えませ...
[[Google:Mac でルートユーザを有効にする方法]]
~
***sudo [ option ]
スーパーユーザー(root)に成り代わって、コマンドを実行(S...
-例)管理者権限でソフトをインストール
$ sudo yum install ・・・
&color(red){''注意''};
Mac のTerminal にはこのコマンドは使えません。Macに標準搭...
$ sudo apachectl start ← 管理者PWを入力後に Apache が起...
ブラウザを起動して、URLに http://localhost と入力すると、...
$ sudo apachectl stop ← 停止します。
~
***systemctl
-コマンド群
--サービス起動 systemctl start ${Unit}
--サービス停止 systemctl stop ${Unit}
--サービス再起動 systemctl restart ${Unit}
--サービスリロード systemctl reload ${Unit}
--サービスステータス表示 systemctl status ${Unit}
--サービス自動起動有効 systemctl enable ${Unit}
--サービス自動起動無効 systemctl disable ${Unit}
--サービス自動起動設定確認 systemctl is-enabled ${Unit}
--サービス一覧 systemctl list-unit-files --type=service
--設定ファイルの再読込 systemctl daemon-reload
-例)Apacheサーバーの起動/終了/再起動
$ sudo systemctl start httpd
$ sudo systemctl stop httpd
$ sudo systemctl restart httpd
-補足)Mac標準のWebサーバーの起動/終了/再起動
管理者権限が必要なため、sudo に続けてタイプ。PW入力が必要...
$ sudo apachectl start
$ sudo apachectl stop
$ sudo apachectl restart
~
***ssh
リモートコンピュータへの接続
$ ssh [ ユーザー名 ] @ [ 接続先IPアドレス]
例)$ ssh hanako@133.17.XXX.XXX
> 詳細は [[SSH]] のページをご覧下さい。
~
***yum
yumは Yellowdog Updater Modifiedの略で、ディストリビュー...
注)Mac のTermnal では yum は使えません(後述)
-リポジトリにアップデートがないかチェック
# yum check-update
-リポジトリのアップデート
# yum update
-インストールされたリポジトリと有効・無効の状態を確認(例...
# yum repolist all | grep mysql
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Co...
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Co...
mysql-cluster-8.0-community/x86_64 MySQL Cluster 8.0 Co...
mysql-cluster-8.0-community-source MySQL Cluster 8.0 Co...
mysql-connectors-community/x86_64 MySQL Connectors Comm...
mysql-connectors-community-source MySQL Connectors Comm...
mysql-tools-community/x86_64 MySQL Tools Community 有...
mysql-tools-community-source MySQL Tools Community - So...
mysql-tools-preview/x86_64 MySQL Tools Preview 無効
mysql-tools-preview-source MySQL Tools Preview - Source...
mysql57-community/x86_64 MySQL 5.7 Community Server 無効
mysql57-community-source MySQL 5.7 Community Server - S...
mysql80-community/x86_64 MySQL 8.0 Community Server 有...
mysql80-community-source MySQL 8.0 Community Server - S...
有効の表記のあるものが採用されます。
-リポジトリからパッケージをインストール(依存関係自動解決)
# yum install <pkg>
-リポジトリからパッケージを検索
# yum search <pkg>
-インストールされているパッケージを削除
# yum remove <pkg>
-インストールされているパッケージの情報を表示
# yum info <pkg>
-インストールされているパッケージ一覧を表示
# yum list installed
-補足1:EPELリポジトリの追加
EPELはRHEL 向けの高品質アドオンパッケージ群でFedora プロ...
# yum install epel-release
# yum update (インストール後はアップデートします)
-補足2:リポジトリ選択の重要性
リポジトリを指定せずにインストールしようとすると、デフォ...
~
***参考:brew
''Macには、yum はありません''
yumは、Linuxのディストリビューション CentOS等で使われてい...
//Ubuntuでは apt-get
Homebrew を利用できるようにするには、以下の手順です。
-以下のサイトの先頭にあるスクリプトをターミナルから入力
https://brew.sh/index_ja.html
-以下のコマンドで、バージョンが表示されればOK
$ brew -v
Homebrew 1.8.6
~
~
**システム監視
***top
OSで利用しているプロセスの数や状態、またOS全体のシステム...
# top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIM...
%CPU、%MEMの値が異常に高いプロセスがあれば、それがリソー...
~
***vmstat
システム全体の負荷を一覧。停止する場合は [CTRL] + [C] で...
# vmstat 2 ・・・ 2 は「2秒ごと」を意味します。
procs -----------memory---------- ---swap-- -----io--...
r b swpd free buff cache si so ...
・・・ここに数字列・・・・
-procs
--r :実行中または実行待ちのプロセス数
--b:IO待ちのプロセス数( r+b でロードアベレージに等しく...
-memory
--swpd:スワップされたメモリ
--free:空きメモリ(これは小さくてもいいですが、free + bu...
--buff:バッファキャッシュ
--cache :ページキャッシュ
-swap
--si:スワップイン
--so:スワップアウト
-io
--bi:ブロックデバイスからの読み込み
--bo :ブロックデバイスへの書き込み
-system
--in:1秒間の割り込み回数
--cs :1秒間のコンテキストスイッチ回数
-cpu
--us:ユーザーCPU時間
--sy:システムCPU時間(カーネルが使用したCPU使用率)
--id:アイドル時間
--wa :IO待ち時間
--st:仮想マシンに取られた時間
~
***free
空きメモリーの確認
# free
~
***df
ファイルシステム(パーティション)ごとのディスク容量を確...
$ df -h
~
~
**Git 関連コマンド
Macの場合 Git自体は標準でインストール済みですが、ターミナ...
-リポジトリの作成およびメンテナンス
git init:リポジトリを作成する
git clone:既存のリポジトリの複製を作る
git fsck:リポジトリの正当性チェックを行う
git gc:リポジトリ内の不要なオブジェクトを削除し、最適化...
-作業ツリーやブランチの操作・管理
git status:変更が加えられたファイルを表示する
git diff:ファイルに加えられた変更点をdiff形式で表示する
git add:コミットするファイルを指定する(ステージへの移動)
git commit:変更点をコミットする
git log:コミットログを閲覧する
git reset:直前のコミットを取り消す
git revert:作業ツリーを指定したコミット時点の状態にまで...
git branch :ブランチ情報の表示およびブランチの作成
git checkout:ブランチの切り替え
git show-branch:ブランチの作成/変更/マージ履歴を表示
git merge:ローカルブランチのマージを行う
git tag:コミットにタグを付ける
git stash:現在の作業ツリーの状態を一時的に保管する
git rebase:ブランチの派生元(上流)を変更する
-他のリポジトリとの連携
git pull:ほかのリポジトリの変更点をローカルリポジトリに...
git push :公開リポジトリに自分のリポジトリの内容を送信する
~
~
**その他
***デバイスはファイルである
UNIX 系OSではメモリーも含めてあらゆるデバイスはファイルと...
例)デバイスを直に操作してサウンドを鳴らすには…
Linux OSS ではサウンドデバイスは /dev/dsp または /dev/audio
ここに何かを流し込めば、何らかの音が出ます。つまり /dev/d...
$ cat test.dat > /dev/dsp
中断は、CTRL+C
~
~
**応用例
***フォルダ内のファイル一覧をテキストファイルとして保存
-一覧を作成したいフォルダ内(ディレクトリ内)に入ります。
-以下のコマンドで fileList.txt ができます。
$ ls -l > fileList.txt ( -l は ハイフン・エルです)
-以下のようにすると、フォルダ内のフォルダの中まで再帰的に...
$ ls -lR > fileList.txt ( -lR は ハイフン・エル・ア...
~
***ファイル拡張子の一括変換
以下の例は、カレントディレクトリ内にある、大文字の拡張子J...
3行分のループ処理になっていて、3行を順に入力していきま...
for fname in *.JPG;do
この時点で、対話型入力モードになります(プロンプトが > ...
mv $fname ${fname%.JPG}.jpg
move、この場合は、名称変更の操作です。ルール通りに・・
done
doループの終端です。
なお、ループから抜け出せなくなった場合(>の表示から抜け...
~
***フォルダ内のファイルを一括で連番ファイル名に変換
以下、フォルダ内にあるすべての png 画像を連番形式で img_x...
ls *.png | awk '{ printf "mv %s img_%03d.png\n", $0, NR ...
~
***ファイルの比較 ( compare files line by line > differen...
diff [-options] file1 file2
-例)file1 と file2 の比較を行う > 比較結果が画面に表示...
$ diff file1 file2
-例)file.txt(旧) と file.new.txt(新) の差分ファイルを作る
$ diff -u file.txt file.new.txt > file.patch
&small([ -u ] は unified diff 形式でパッチファイルを作る...
-例)folder(旧) と folder_new(新) 、2フォルダ間の差分フ...
$ diff -u folder folder_new > folder.diff
差分ファイル folder.diffs を作る場合は、一般に2つのフォ...
--- folder/index.html 2017-09-08 19:06:46.000000000 +0900
+++ folder_new/index.html 2017-09-08 19:06:46.000000000...
~
***ファイルにパッチをあてる( patch )
patch [ -options ] file patchfile
-例)file を patchfile で修正する
$ patch -u file patchfile
&small([ -u ] は unified diff形式のパッチファイルをあてる...
-例)pachfile 内に書かれた「元ファイル」を修正する
$ patch -u < patchfile
パッチファイルの先頭行「--- ファイル名」の部分に適用元の...
-例)ディレクトリ単位でパッチをあてる
$ patch -u -p1 < folder.diffs
''-p1についての補足''
フォルダ間の差分ファイルの作成では、2つのフォルダが直下...
詳細は [[PatchFile]] のページをご覧下さい。
~
~
**Mac特有の操作
必要に応じて、随時追記します。
~
***隠しファイルの表示
ユーザーに見える必要のないシステムファイル等は通常、「隠...
&small(ふつうに自分のファイルを保存する場合も同じです。フ...
MacOSのバージョンによっては、以下の方法で、その表示・非表...
[COMMAND] + [SHIFT] + [ . ]
ただ、新しいOSでは、これができなくなっているようです。上...
&color(red){以下、それなりに危険な操作なので慎重に。Fin...
~
-''隠しファイルを表示するには''
--1) 設定ファイルの当該項目を true に書き換えます。
$ defaults write com.apple.finder AppleShowAllFiles true
--2) Finder を再起動します。← 一瞬デスクトップが消えます。
$ killall Finder
-''元に戻す場合は''
--1) 設定ファイルの当該項目を false に書き換えます。
$ defaults write com.apple.finder AppleShowAllFiles false
--2) Finder を再起動します。
$ killall Finder
~
~
~
ページ名: