試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

シェル

テキストファイルの特定の行範囲をコマンドで取り出す

「ファイルの先頭や末尾を取り出すコマンド(headとtail)について(テスト用データの準備とheadコマンド)」と「ファイルの先頭や末尾を取り出すコマンド(headとtail)について(tailコマンドとファイル末尾追跡)」で扱った2つのコマンドを組み合わせて用いると、…

Bシェルのシェルスクリプトの中で標準入力全体を扱う

Bシェル(bashやdash,zsh)のシェルスクリプトの中で 変数IFSを空文字列にする readコマンド(関連記事)をループで実行し、ループの中では読み込んだ変数の内容をechoでそのまま出力 ループ末尾の「done」の後ろに「| [コマンド行]」を(必要な分だけ)付ける と…

freedesktop.org準拠のデスクトップ環境における幾つかの日本語ディレクトリを端末シェルで扱いやすくする(方法4の続き)

「freedesktop.org準拠のデスクトップ環境における幾つかの日本語ディレクトリを端末シェルで扱いやすくする(方法4)」の続きとして、GUI環境での特殊ディレクトリの表示のされ方に関係した内容を扱う。以下は見出し「方法4:カスタム設定」における続きとなる…

freedesktop.org準拠のデスクトップ環境における幾つかの日本語ディレクトリを端末シェルで扱いやすくする(方法4)

「freedesktop.org準拠のデスクトップ環境における幾つかの日本語ディレクトリを端末シェルで扱いやすくする(方法1-方法3)」の続き。 方法4:カスタム設定 個人的には「freedesktop.org準拠のデスクトップ環境における幾つかの日本語ディレクトリを端末シェル…

freedesktop.org準拠のデスクトップ環境における幾つかの日本語ディレクトリを端末シェルで扱いやすくする(方法1-方法3)

日本語ロケールでは、freedesktop.org準拠のデスクトップ環境でホームディレクトリの下に デスクトップ ピクチャ ビデオ ダウンロード テンプレート 公開 ドキュメント ミュージック といった日本語の名前のディレクトリ群が自動的に作られるが、端末を使う…

端末のシェル(bash,dash,zsh,csh系)におけるwaitコマンドについて

端末のシェル(bashなど)にはwaitというコマンドがある。 機能 用途 機能waitは現在操作しているシェルにおけるバックグラウンドのジョブが終了するまで待機するコマンドで、シェルの内部コマンドとなっている(シェルの系統によっては挙動が異なる)。 bash,da…

GDM使用時にlibnotifyのnotify-sendがcronから動作しない件とその対処(バージョン2.30系時点)

以前はGDMからグラフィカルログインしたときにも環境変数DISPLAYの指定のみでcronからlibnotifyのnotify-sendコマンドによる通知が行えていたのだが、その後のバージョン(2.30系時点)ではうまく通知が表示されず、X Window System上で動作する他のGUIプログ…

特定のユーザアカウントについてテキストログイン時に行える操作を制限する

一般的なユーザアカウントでは、テキストログインをしたときにシェル(GNU/Linuxでは多くの場合bash)が起動し、そのユーザの権限で任意のコマンドを実行できるようになる。 もし、運用上の事情により特定のユーザに限られた操作だけができるようにしたいとい…

キーボードからの入力を受け付ける対話型プログラムへのデータ入力を自動化(非対話化)する

「yesコマンドの使い方」で扱ったように、処理を進めるためにキーボードで何かを入力してEnterを押す必要があるプログラムに対する入力作業を自動化するのにはyesコマンドが役に立つが、入力する内容が必ずしも全て同じ(全てyesもしくは全てno)とは言えない…

シェルスクリプトでユーザからの入力を受け付け、複数の階層を持ったメニューを作る

readコマンドでユーザからの入力を受け付けてcase構文を用いてその内容を処理するという流れをシェルスクリプトの中で用いることで、ユーザからの入力を処理できる。 下は例。 #! /bin/sh show_mainmenu() { while true; do cat <

bash/zshにおける「[」(test)コマンドと複合コマンド「[[」との違いについて

bash/zshにおいて[[コマンドは[(test)コマンドと基本的には*1同じように使えるが、微妙な違いがある。 文字列比較における右辺のパターン(glob)指定 1つのコマンドの括りに複数の条件を指定する記述 文字列比較における右辺のパターン(glob)指定複合コマンド…

端末の中で仮想端末を管理するtmux(GNU screenの代替)について(全体の設定例)

「端末の中で仮想端末を管理する tmux(GNU screenの代替)について(ステータス行のカスタマイズと特殊な記法について)」に続く内容として、ここでは、これまでのtmuxについての設定に関するメモ(最後の関連記事を参照)を踏まえた上でのtmuxの設定例を扱う。 …

端末の中で仮想端末を管理するtmux(GNU screenの代替)について(ステータス行のカスタマイズと特殊な記法について)

「端末の中で仮想端末を管理する tmux(GNU screenの代替)について(カスタマイズ時の記述と幾つかの設定項目について)」に続く内容として、ここではtmuxのステータス行の表示に関するカスタマイズについてのメモを扱い、設定例は後日の別記事に貼り付ける。(2…

端末の中で仮想端末を管理するtmux(GNU screenの代替)について(カスタマイズ時の記述と幾つかの設定項目について)

「端末の中で仮想端末を管理する tmux(GNU screenの代替)について(ペイン分割とその管理)」に続く内容として、ここから数回に分けてtmuxのカスタマイズに関してを扱う(次の内容までに日付は空ける)が、ここでは設定の記述の形と幾つかの設定項目についてを扱…

端末の中で仮想端末を管理するtmux(GNU screenの代替)について(ペイン分割とその管理)

本記事は「端末の中で仮想端末を管理する tmux(GNU screenの代替)について(コピペとバッファに関する操作・バッファ数上限と後方スクロール行数の変更)」に続く内容となる。 GNU screenにもウィンドウを分割する機能があるが、tmuxの分割機能は上下/左右のど…

端末の中で仮想端末を管理するtmux(GNU screenの代替)について(コピペとバッファに関する操作・バッファ数上限と後方スクロール行数の変更)

「端末の中で仮想端末を管理するtmux(GNU screenの代替)について(概要・実行・操作)」に続く内容として、ここではtmuxにおけるコピペ/後方スクロールについてを扱う。 コピーモード 操作 複数のバッファを管理する バッファ上限数と後方にさかのぼれる行数の…

端末の中で仮想端末を管理するtmux(GNU screenの代替)について(概要・実行・操作)

tmux(http://tmux.sourceforge.net/)は端末の中で仮想端末を作成して管理するソフトウェアで、GNU screenの代替を目指している。OpenBSDのベースシステムの一部でBSDライセンス。 仮想端末を作って切り替えるだけならX Window System上の多くの端末エミュレ…

bash,dash,zshのreadコマンドと「while read line」のような行ごとの読み込み処理について

bash,dash,zshの全てのシェルで利用可能なreadコマンドと「while read ...」のループについてを扱う。 本記事内の使用例は3つのシェルの内で最も低機能かつ高速なdashにおいて動作確認済みで、いずれのシェルにおいても動作する。 readコマンド キーボードか…

任意の複数行テキストをコマンドでファイルに書き出す

シェル上でヒアドキュメント(Here document)という方法を用いると複数行の文字列を標準入力として受け取ることができる。 「<<」の後ろの文字列の内容の行を渡すまでの間に入力した内容が標準入力となる。終端を示す文字列として「EOF」*1がよく用いられるが…

端末シェル操作の基本的な流れについて(後半)

「端末シェル操作の基本的な流れについて(前半)」の続き。 シェルから抜ける ログアウト時におけるサスペンド/バックグラウンド状態のジョブの挙動について 履歴について シェルから抜けるシェルから抜けるには、プロンプトが出ていてかつ入力文字列のないと…

端末シェル操作の基本的な流れについて(前半)

端末上のシェルにおける操作の最も基本的な部分についてまだ扱っていなかったので、ここにまとめておく。 ログイン直後 コマンドの入力 コマンド行入力時の操作 コマンドの書式 コマンドの実行 ログイン直後X Window System上の端末エミュレータを開くか素の…

リダイレクトとパイプのパターン集(後半)

「リダイレクトとパイプのパターン集(前半)」の続き。 標準エラー出力のデータをファイルに書き出す 標準エラー出力はそのファイル記述子値(2)を用いて $ [コマンド...] 2> [ファイル]のように書き出す。標準出力と同時に同じファイルに書き出すには $ [コマ…

リダイレクトとパイプのパターン集(前半)

標準出力のデータをファイルから読み込む patchコマンドなど、ファイルを標準入力として受け付けるものは $ [コマンド...] < [ファイル]のようにして実行するが、このようなパターンではなく、入力ファイルの場所を引数で指定する形のコマンドで標準入力から…

bash,dash,zshにおける演算と外部コマンドの出力について

ここではbash,dash,zshのシェルにおいて演算結果と外部コマンドの出力の展開についてを扱う。どちらもその記述を行った部分について「展開」されるだけなので、それをそのまま(出力の全体もしくは一部として)表示してもシェル上の変数に代入してもよい。 演…

シェル上のプロセスの動作状態(フォアグラウンド/バックグラウンド/サスペンド)とその制御について(後半)

「シェル上のプロセスの動作状態(フォアグラウンド/バックグラウンド/サスペンド)とその制御について(前半)」の続き。 プロセスをバックグラウンド状態で起動する シェルからのプロセスの起動(コマンドの実行)において、コマンド行の最後に「&」を付けると、…

シェル上のプロセスの動作状態(フォアグラウンド/バックグラウンド/サスペンド)とその制御について(前半)

動作状態 端末のシェルから起動されたプロセスには以下の動作状態がある。 フォアグラウンド(最前面で実行) バックグラウンド(背後で実行) サスペンド(一時停止) 以下、それぞれについて記述する。 フォアグラウンド 普通に起動されたプロセスはそのままそこ…

端末上でディレクトリ内のファイルやディレクトリを一覧する作業について

ここでは端末の環境におけるディレクトリ内のファイルやディレクトリの一覧を取得する作業についてを扱う。 ls系コマンド シェルの補完を用いる 端末上で動作するファイルマネージャを用いる ls系コマンドディレクトリ内のファイルやディレクトリの一覧はls,…

netcatについて(概要とクライアント用途例、ポートスキャン例)

netcatとその種類 netcatは クライアント: 外部もしくは内部マシンの任意のポートに接続して任意の通信を行う サーバ: 手元(ローカル)のマシンの任意のポートを待ち受ける の両方の機能を持った通信*1ソフトウェア。待ち受けているポートを探し出すポートス…

installコマンドと一部オプションについての覚え書き

installコマンドはファイルをコピーするという意味ではcpと同様だが、インストール作業に特化している。 各種オプションについて -Dオプションについて 複数ファイルコピー時には-Dオプションは使えない 各種オプションについて下に書いているものはオプショ…

一般ユーザでrpmbuildを行うための準備とエイリアスメモ

一般ユーザでRPMパッケージを作成するための設定 rpmbuildコマンドのオプション指定をエイリアスで分かりやすく 一般ユーザでRPMパッケージを作成するための設定通常、RPMパッケージをビルドする際には、 [/usr/src/rpm] -+- [SPECS] .specファイル +- [SOUR…