<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Askaaaa</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Askaaaa"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Askaaaa"/>
	<updated>2026-05-06T01:30:53Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%B7%E3%82%A7%E3%83%AB&amp;diff=27940</id>
		<title>コマンドラインシェル</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%B7%E3%82%A7%E3%83%AB&amp;diff=27940"/>
		<updated>2022-10-21T20:12:59Z</updated>

		<summary type="html">&lt;p&gt;Askaaaa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:コマンドラインシェル]]&lt;br /&gt;
[[Category:ソフトウェア一覧]]&lt;br /&gt;
[[en:Command-line shell]]&lt;br /&gt;
[[pt:Command-line shell]]&lt;br /&gt;
[[ru:Command-line shell]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|ドットファイル}}&lt;br /&gt;
{{Related|Core Utilities}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[[Wikipedia:ja:Unixシェル|Wikipedia]] より:&lt;br /&gt;
: &#039;&#039;Unix シェルは、UNIX オペレーティングシステムおよび Unix 系システムの従来からのユーザインタフェースを提供するコマンドラインインタプリタまたはシェルである。コマンドラインインタプリタに文字列の形でコマンドを入力することでコンピュータを直接操作したり、そのようなコマンドを並べたスクリプトを書いて実行させたりするのに使われる。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== シェル一覧 ==&lt;br /&gt;
&lt;br /&gt;
[http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html POSIX] に(多かれ少なかれ)準拠しているシェルは [[#POSIX準拠]] に、異なる構文を持つシェルは [[#代替シェル]] にリストアップされています。&lt;br /&gt;
&lt;br /&gt;
=== POSIX準拠 ===&lt;br /&gt;
&lt;br /&gt;
これらのシェルはすべて {{ic|/usr/bin/sh}} からリンクできます。[[Bash]]、 {{AUR|mksh}}、 [[zsh]]、 を {{ic|sh}} という名前で呼び出すと、自動的に POSIX に準拠するようになります。&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Bash]]|Bash は Bourne シェルを拡張したもので、コマンドライン履歴と補完、インデックス付き連想配列、整数演算、プロセス置換、ヒア文字列、正規表現マッチング、およびブレース展開などの機能を備えています。|https://www.gnu.org/software/bash/|{{Pkg|bash}}}}&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Dash|DASH]]|可能な限り小さくなるように作られた POSIX 互換の {{ic|/bin/sh}} の実装です。なるべく速度を犠牲にしないように作られています。実際に、ほとんどの処理で Bash (GNU Bourne-Again SHell) よりも高速に動きます。|http://gondor.apana.org.au/~herbert/dash/|{{Pkg|dash}}}}&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Ksh|Korn shell]]|KornShell 言語は AT&amp;amp;T ベル研究所の David G. Korn によって設計・開発されました。様々なコンピューター・ワークステーションから UNIX などのシステムにアクセスすることができるインタラクティブなコマンド言語です。また、KornShell 言語はアプリケーションを書くのに使える完全でパワフルな高級プログラミング言語でもあり、多くの場合、他の高級言語よりも簡単で高速です。このため特にプロトタイピングに適しています。他に広く使われているシェルとして、AT&amp;amp;T ベル研究所の Steven Bourne によって開発された Bourne シェルと、カリフォルニア大学の Bill Joy によって開発された C シェルという2つのシェルがあります。ksh はその2つのシェルの一番良い所を取り、新しい機能を数多く追加しました。そのため、システムとの対話とプログラミングの両方で ksh はあなたの作業の生産性と質を高めることができます。ksh のプログラムは簡単に書くことができ、C などの低級言語で書かれたプログラムよりも簡潔で読みやすいものになります。|http://www.kornshell.com|[[Ksh#インストール|記事]]を参照}}&lt;br /&gt;
&lt;br /&gt;
* {{App|[[OSH]] (Oil Shell)|Oil Shell は Bash 互換の UNIX コマンドラインシェルです。OSH は GNU/Linux を含むほとんどの UNIX ライクなオペレーティングシステムで実行できます。Python (v2.7) で記述されていますが、ネイティブの実行可能ファイルが付属しています。OSH によって認識される Bash の方言は OSH 言語と呼ばれます。|https://www.oilshell.org|{{AUR|osh}}}}&lt;br /&gt;
&lt;br /&gt;
* {{App|Yash|C99 (ISO/IEC 9899:1999) で書かれた POSIX に準拠したコマンドラインシェルです。Yash は世界で最も POSIX に準拠したシェルであることを意図しており、日常的な対話やスクリプトによる使用のための機能をサポートしています。|https://yash.osdn.jp|{{AUR|yash}}}}&lt;br /&gt;
{{Warning|Yashは{{ic|/etc/profile}}を読み込みません。{{ic|/bin/sh}}をyashへのシンボリックリンクにした場合、起動時に問題が発生します。}}&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Zsh]]|インタラクティブな利用のために作られたシェルですが、パワフルなスクリプト言語でもあります。Bash, ksh, tcsh の便利な機能の多くが Zsh に組み入れられており、オリジナルの機能も多数追加されています。[http://zsh.sourceforge.net/Intro/intro_toc.html 入門ドキュメント] に Zsh のユニークな機能の説明があります。|http://www.zsh.org/|{{Pkg|zsh}}}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|POSIX と Bash スクリプトは {{Pkg|shellcheck}} を使ってリント (構文チェックやコード解析) できます。}}&lt;br /&gt;
&lt;br /&gt;
=== 代替シェル ===&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:ja:C Shell|C shell]]|対話式のログインシェルとしてもシェル言語コマンドプロセッサとしても使うことが出来るコマンド言語インタプリタ。コマンドラインエディタ、プログラマブルな単語補完、スペル訂正、履歴機構、ジョブ操作、C ライクな構文を持っています。|http://www.tcsh.org|{{Pkg|tcsh}}}}&lt;br /&gt;
&lt;br /&gt;
* {{App|Elvish|近代的かつ表現豊かなシェルで、内部構造の値をパイプラインで渡すことができます。この機能によって複雑なテキスト処理のコードを書かなくてすみます。表現的なプログラミング言語を備えており、例外・名前空間・匿名関数などが使えます。タイピング中に構文をチェックする強力な readline を装備しており、デフォルトでシンタックスハイライトが効きます。|https://elvish.io|{{AUR|elvish}}}}&lt;br /&gt;
&lt;br /&gt;
* {{App|[[fish]]|スマートでユーザーフレンドリなコマンドラインシェル。OS X や Linux などに対応。Fish にはフルカラーのコマンドライン・シンタックスハイライトがあり、コマンドとその引数、既存のファイルや履歴のハイライトそして補完をすることができます。履歴やコマンドの補完候補の表示もサポート。Fish はシステムの man ページを解析してコマンドの正しい引数を調べることにより、コマンドのハイライトと補完を可能にしています。Alt-Up を使うことで最後に実行したコマンドの変更を簡単に行うことが出来ます。fish デーモン (fishd) は fish の全てのインスタンス間で、履歴や環境変数を同期します。|http://fishshell.com/|{{Pkg|fish}}}}&lt;br /&gt;
&lt;br /&gt;
* {{App|ion|Ion は、シンプルかつ強力な構文を特徴とする、最新のシステムシェルです。シェル全体の品質と安全性を大幅に向上させ、ShellShock のような脆弱性の可能性を排除し、開発を容易にするために、すべて Rust で書かれています。また、Ion の機能を活用した場合、Dash を超えるレベルのパフォーマンスを発揮します。主に RedoxOS と並行して開発されていますが、他の *nix プラットフォームでも十分な性能を発揮します。詳しくは [https://doc.redox-os.org/ion-manual/html/introduction.html マニュアル] を参照して下さい。 |https://gitlab.redox-os.org/redox-os/ion/|{{AUR|ion-git}}}}&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Nash]]|Plan 9 の rc の影響を受けているシステムシェル。オペレーティングシステム (Linux や Plan 9) の名前空間を活用して読みやすく安全なスクリプトを簡単に作成できます。|https://github.com/NeowayLabs/nash|{{AUR|nash-git}}}}&lt;br /&gt;
&lt;br /&gt;
* {{App|Oh|Go で書かれた Unix シェル。他の Unix シェルと同じような精神を持っていますが細かい所は異なっています。Oh はシェルの対話機能を犠牲にすることなくシェルのプログラミング言語機能を拡張しています。|https://github.com/michaelmacinnis/oh|{{AUR|oh-git}}}}&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:ja:Windows PowerShell|Powershell]]|PowerShell は元は Windows 専用に作られた、オブジェクト指向言語でありインタラクティブなコマンドラインシェルです。後になって、オープンソース化されて macOS や Linux に移植されました。|https://github.com/PowerShell/PowerShell|{{AUR|powershell}}}}&lt;br /&gt;
&lt;br /&gt;
* {{App|[[Wikipedia:rc|rc]]|Plan 9 のコマンドインタプリタで UNIX の Bourne シェルと同じような機能を提供します。細かい追加がなされ構文はもっと一般的になっています。|http://plan9.bell-labs.com/sys/doc/rc.html|{{Pkg|9base}}}}&lt;br /&gt;
&lt;br /&gt;
* {{App|xonsh|python インタプリタがベースの後方互換なシェル。|http://xon.sh/|{{Pkg|xonsh}}}}&lt;br /&gt;
&lt;br /&gt;
== デフォルトシェルを変更する ==&lt;br /&gt;
&lt;br /&gt;
上記のシェルをインストールした後、実行ファイルを起動すると、今使っているシェルの中でインストールしたシェルが起動します。ログイン時にインストールしたシェルが起動するようにしたい場合、デフォルトシェルを変更する必要があります。&lt;br /&gt;
&lt;br /&gt;
インストールされているシェルを確認するには、次を実行:&lt;br /&gt;
 $ chsh -l&lt;br /&gt;
&lt;br /&gt;
デフォルトシェルを設定するには次を実行 ({{ic|chsh -l}} で確認できる、フルパスを指定するようにしてください):&lt;br /&gt;
 $ chsh -s &#039;&#039;full-path-to-shell&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[systemd-homed]] を使用している場合は、次のように実行します:&lt;br /&gt;
 $ homectl update --shell=&#039;&#039;full-path-to-shell&#039;&#039; &#039;&#039;user&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ここで、&#039;&#039;full-path-to-shell&#039;&#039; は {{ic|chsh -l}} で与えられたフルパスです。&lt;br /&gt;
&lt;br /&gt;
上記コマンドを実行してからログアウト・ログインすると、指定したシェルが開くはずです。&lt;br /&gt;
&lt;br /&gt;
{{Tip|chsh は参照として {{ic|/etc/shells}} を使用します。最近インストールしたシェルがリストにない場合は、このファイルに手動で追加できます。}}&lt;br /&gt;
&lt;br /&gt;
== シェルのアンインストール ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|以下の手順を踏まないと、ユーザがシェルにアクセスできなくなる可能性があります}}&lt;br /&gt;
&lt;br /&gt;
シェルのパッケージを削除する前に、[[コマンドラインシェル#デフォルトシェルを変更する|デフォルトのシェルを変更する]] 必要があります。&lt;br /&gt;
&lt;br /&gt;
または、[[ユーザーとグループ#ユーザーデータベース|ユーザデータベース]] を変更します。&lt;br /&gt;
&lt;br /&gt;
ログインシェルとして &#039;&#039;zsh&#039;&#039; が設定されている全てのユーザー (必要であれば root も含む) にこれを使用します。完了したら、パッケージを削除することができます。&lt;br /&gt;
&lt;br /&gt;
== ログインシェル ==&lt;br /&gt;
&lt;br /&gt;
ログインシェルは呼び出しモードで、シェルはシステム全体の {{ic|/etc/profile}} またはユーザー専用の {{ic|~/.profile}} や他のシェル固有のファイルなど、一度だけの初期化を目的としたファイルを読み込みます。これらのファイルは初期環境を設定し、シェル(他の非ログインシェルやグラフィカルプログラムを含む)から起動される他のすべてのプロセスに継承されます。例えば、ユーザがコンソールや [[SSH]] 経由でログインしたとき、{{ic|--login}} パラメータを使って [[sudo]] や [[su]] でユーザを変更したとき、ユーザが手動でログインシェルを起動したとき {{ic|bash --login}}) などです。&lt;br /&gt;
&lt;br /&gt;
さまざまな初期化ファイルの概要については、[[#設定ファイル]] とその中のリンクを参照してください。ログインシェルの詳細については、Stackexchange の [https://unix.stackexchange.com/q/38175 Difference between Login Shell and Non-Login Shell?] や [https://unix.stackexchange.com/q/324359 Why a &amp;quot;login&amp;quot; shell over a &amp;quot;non-login&amp;quot; shell?] を参照してください。&lt;br /&gt;
&lt;br /&gt;
== 設定ファイル ==&lt;br /&gt;
&lt;br /&gt;
ログイン時にコンソールでプログラムを自動起動させたい場合、シェルのスタートアップファイル・ディレクトリを使用することができます。シェルのドキュメントや ArchWiki の記事を見てください (例: [[Bash#設定ファイル]]や [[Zsh#設定ファイル]])。&lt;br /&gt;
&lt;br /&gt;
様々なシェルの設定ファイルの比較は [[Wikipedia:Unix shell#Configuration files]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
=== /etc/profile ===&lt;br /&gt;
&lt;br /&gt;
ログイン時に Bourne 互換のシェルは {{ic|/etc/profile}} を読み込み、それから {{ic|/etc/profile.d/}} の {{ic|*.sh}} ファイルを全て読み込みます。これらのスクリプトはインタプリタのディレクティブを必要とせず、実行可能属性を付与する必要もありません。環境やアプリケーション個別の設定を定義するのに使用します。&lt;br /&gt;
&lt;br /&gt;
=== 標準化 ===&lt;br /&gt;
&lt;br /&gt;
(いくつかの)シェルの設定ファイルを同じ命名規則に従うようにしたり、シェル間で共通の設定をサポートする事ができます。&lt;br /&gt;
&lt;br /&gt;
[https://blog.flowblok.id.au/2013-02/shell-startup-scripts.html the article about this] や [https://bitbucket.org/flowblok/shell-startup related repository] を参照してください。&lt;br /&gt;
&lt;br /&gt;
== 入出力 ==&lt;br /&gt;
&lt;br /&gt;
[https://mywiki.wooledge.org/BashGuide/InputAndOutput GregsWiki] と [http://www.tldp.org/LDP/abs/html/io-redirection.html I/O Redirection] を参照。&lt;br /&gt;
&lt;br /&gt;
* リダイレクトは、コマンドが実行される前にファイルを切りすてます:{{bc|&#039;&#039;command&#039;&#039; &#039;&#039;file&#039;&#039; &amp;gt; &#039;&#039;file&#039;&#039;}} したがって、期待通りには動作しません。一部のコマンド(例えば[[sed]])は、ファイルをその場で編集するオプションを提供しますが、多くの場合は提供されません。このような場合は、{{Pkg|moreutils}} パッケージの {{man|1|sponge}} コマンドを使用します。&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;cat&#039;&#039; はシェルに組み込まれていないため、多くの場合、スクリプトやパフォーマンスを重視する場合は [[Wikipedia:ja:リダイレクト_(CLI)|リダイレクト]] を使った方が便利です。実際、{{ic|&amp;lt; &#039;&#039;file&#039;&#039;}} は {{ic|cat &#039;&#039;file&#039;&#039;}} と同じです。&lt;br /&gt;
&lt;br /&gt;
* POSIX準拠のシェルは [http://tldp.org/LDP/abs/html/here-docs.html ヒアドキュメント] をサポートしています:&lt;br /&gt;
&lt;br /&gt;
{{bc|$ cat &amp;lt;&amp;lt; EOF&lt;br /&gt;
one&lt;br /&gt;
two&lt;br /&gt;
three&lt;br /&gt;
EOF&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* シェル[[Wikipedia:ja:パイプ (コンピュータ)|パイプライン]]は、デフォルトでは stdout で動作します。{{man|3|stderr}} で動作させるには、{{ic|&#039;&#039;command&#039;&#039; 2&amp;gt;&amp;amp;1 {{!}}&#039;&#039;othercommand&#039;&#039;}} のように &#039;&#039;strerr&#039;&#039; から &#039;&#039;strout&#039;&#039; に リダイレクトします。Bash 4 の場合は、{{ic|&#039;&#039;command&#039;&#039; {{!}}&amp;amp; &#039;&#039;othercommand&#039;&#039;}} となります。&lt;br /&gt;
&lt;br /&gt;
* 多くの GNU [[Core Utilities]] はファイルを引数として受けとる事を思いだしてください。例えば、{{ic|grep &#039;&#039;pattern&#039;&#039; &amp;lt; &#039;&#039;file&#039;&#039;}} は {{ic|grep &#039;&#039;pattern&#039;&#039; &#039;&#039;file&#039;&#039;}} と置きかえられます。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* IBM developerWorks の [https://www.ibm.com/developerworks/jp/linux/library/l-linux-shells/ Linux におけるシェルの進化]&lt;br /&gt;
* [https://terminal.sexy/ terminal.sexy] — ターミナルカラースキームデザイナ&lt;br /&gt;
* [http://hyperpolyglot.org/unix-shells Hyperpolyglot] — シェル構文の比較&lt;br /&gt;
* [http://docstore.mik.ua/orelly/unix/upt/index.htm UNIX Power Tools] — 一般的なコマンドラインツールの使用方法&lt;br /&gt;
* [https://www.commandlinefu.com/commands/browse commandlinefu.com] — コマンドラインスニペットの共有&lt;br /&gt;
* [[アプリケーション一覧/ユーティリティ#ターミナルエミュレータ]]&lt;/div&gt;</summary>
		<author><name>Askaaaa</name></author>
	</entry>
</feed>