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

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

シェル

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

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

端末のシェル(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 <

端末の中で仮想端末を管理する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上の多くの端末エミュレ…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

コマンド行シェルで作業ディレクトリを戻る作業について

cdコマンドではディレクトリを1つだけ戻れる cdコマンドによる作業ディレクトリの移動は、1つ前にいたディレクトリに限って $ cd -で戻ることができる。ただし、更に1つ前に戻ろうとしてもうまくいかず、逆に進んでしまう。 [~]$ cd /usr/src/linux/ [/usr/s…

GUIファイルマネージャから選択したファイルを分割する

「GUIファイルマネージャから選択した複数のファイルを結合する」の逆で、Thunar(Xfce4)やNautilus(GNOME・Nautilus-actions使用)で、選択したファイルを複数に分割するスクリプトとそのアクション設定を扱う。 今回作成したスクリプトでは、分割後のファイ…

GUIファイルマネージャから選択した複数のファイルを結合する

Thunar(Xfce4)やNautilus(GNOME・Nautilus-actions使用)で複数のファイルをGUIで結合するためのスクリプトと、そのアクション設定をここで扱う。 (2008/9/2)逆に、分割を行うスクリプトとアクション設定は「GUIファイルマネージャから選択したファイルを分割…

256colorlib.shをスクリプトから生成して動作を高速化・更にzshのプロンプトの色変更にも使用できるようにする

「256色拡張の端末で色変更を比較的簡単に行うための変数を定義するスクリプトを作成」で作成した256colorlib.shはループの中で計算やフォーマット付け、代入などの作業を行っていたため、処理に時間がかかっていた。 シェルの初期化ファイルで実行しておい…

256色拡張の端末で色変更を比較的簡単に行うための変数を定義するスクリプトを作成

16色の端末では、色ごとに COLOR_DEFAULT='\e[0m' COLOR_BLACK='\e[1;30m' COLOR_RED='\e[1;31m' ... のように変数を定義して echo ${COLOR_RED}red${COLOR_DEFAULT} のように書くことで、色の変更を分かりやすく記述することができる。 256色拡張でも要領は…

bashとzshでの配列の添え字と判別について

zshというシェルはbash互換の部分が多いのだが、配列の要素を個別に参照するときの番号(添え字)が異なることが分かった。 zshの配列は1番から ARRAY=("aaa" "bbb" "ccc" "ddd" "eee") printf "0:%s 1:%s 2:%s 3:%s 4:%s 5:%s\n" ${ARRAY[0]} ${ARRAY[1]} ${A…

Hotwire 0.721の覚え書き

グラフィカルなシェル環境Hotwireのバージョン0.721が出ている。Hotwireに関する関連記事は以下。 Hotwireの基本的な部分の覚え書き - 0.620 Hotwireの内部コマンドを試す(独自コマンド編) - 0.620 Hotwire 0.710のHotwirePipeの覚え書き - 0.710 ebuild htt…

Hotwire 0.710のHotwirePipeの覚え書き

Hotwire独自シェルのHotwirePipeには、バージョン0.620と比べて色々な変化があるのだが、ここでは、追加/変更されたコマンドについてを扱う。 shからsysへ システムの外部コマンドを呼び出すshコマンドはsysに変わっている。 edit/ed 外部テキストエディタを…