draemonash2のメモ書き
#
$
%
>
?
:任意の一文字*
:0個以上の任意の文字列'
:全て文字列としてみなす"
:文字列とみなすが、変数の場合は変数の中身を展開種別
コマンド(*1) | 画面(*2) | ファイル(*2) | 出力形式 |
---|---|---|---|
command > out.log |
E | O | 新規 |
command 2> out.log |
O | E | 新規 |
command > out.log 2>&1 |
- | O/E | 新規 |
command &> out.log |
- | O/E | 新規 |
command &>> out.log |
- | O/E | 追記 |
command >> out.log 2>&1 |
- | O/E | 追記 |
command 1> stdout.log 2> stderr.log |
- | O/E(*3) | 新規 |
command \| tee -a out.log |
O/? | O | 新規 |
command \|& tee -a out.log |
O/E | O/E | 新規 |
command &> /dev/null |
- | - | -(*4) |
apt update
を実行する
sudo apt-get update
sudo apt install <command>
sudo vim /etc/passwd
を実行
alias endo='export HOME=/home/dir'
alias endo='export HOME=/home/dir'
alias he='export HOME=/home/draemon_ash3/;cd ~;source ./.bashrc;pwd;'
.
: どのシェルでも使える(POSIXで定義されている)source
: bash でしか使わない./test.sh
:新たな子プロセスを生成して実行するbash test.sh
:新たな子プロセスを生成して実行するsource test.sh
:現在のシェルで実行するpwd
:カレント作業ディレクトリ$PWD
:カレント作業ディレクトリcd $(dirname ${0}) && pwd
:スクリプト格納ディレクトリgit diff/status
grep
grep -R
pcpu(%cpu)
…プロセスのcpu 使用率pmem(%mem)
…メモリ使用率args(cmd,command)
…文字列の引き数がついたコマンドpid
…プロセスIDppid
…親プロセスのIDuid(euid)
…実行ユーザのIDgid(egid)
…実行グループのIDuser(euser,uname)
…実行ユーザgroup(egroup)
…実行グループrss(rssize,rsz)
… 物理メモリ使用量lstart
…プロセスの起動時刻言語_国.文字コード
\e[太さ;色番号m
、元に戻すには \e[m
を、\[ ... \]
で挟んで指定します。特殊文字は以下の通り。
特殊文字 | 説明 |
---|---|
\a | ビープ音を鳴らす |
\A | 24時間表記の時分(例:23:59) |
\e | エスケープ文字(ESC) |
\d | 曜日 月 日(例:Sun May 24) |
\D{fmt} | %Y/%m/%d %H:%M:%S などのフォーマットで日時を指定 |
\h | ホスト名(例:msv02) |
\H | ホスト名(例:msv02.example.com) |
\j | バックグランドジョブの個数(例:2) |
\l | ターミナル(例:/dev/pts/2)の最後のファイル名(例:2) |
\n | 改行 |
\r | キャリッジリターン |
\s | シェルの名前(例:bash) |
\t | 24時間表記の時刻(例:23:59:59) |
\T | 12時間表記の時刻(例:11:59:59) |
\@ | AM/PM付き12時間表記の時分(例:11:59 PM) |
\u | ユーザー名(例:tanaka) |
\v | bashのバージョン(例:4.2) |
\V | bashのバージョン(例:4.2.46) |
\w | カレントディレクトリ(例:~/bin) |
\W | カレントディレクトリ(例:bin) |
# | 現在のセッションにおけるヒストリ番号(例:21) |
\! | ヒストリ番号(例:423) |
\$ | ルート権限の場合は #、一般権限の場合は $ |
\nnn | 8進数での文字コード |
\\ | バックスラッシュそのもの |
\[ | 非表示文字の開始 |
\] | 非表示文字の終了 |
比較表
シチュエーション | ハードリンク | シンボリックリンク |
---|---|---|
作り方 | ln <file> <linkfile> |
ln -s <file> <linkfile> |
リンク作成可否 to ファイル | 可 | 可 |
リンク作成可否 to ディレクトリ | 不可 | 可 |
リンク作成可否 to 別パーティション | 不可 | 可 |
リンク作成可否 to 別ファイルシステム | 不可 | 可 |
アクセス権 | それぞれ別々のアクセス権 | リンク元のアクセス権 |
実ファイル削除時のリンクアクセス可否 | 可 | 不可 |
リンクファイル削除時の実ファイル残否 | 残る | 残る |
実ファイル削除時のリンクファイル残否 | 残る | 残る |
ls時に表示されるファイル種別 | - | l |
リンク上書き時の挙動@cp( cp <file> <linkfile> ) |
実ファイルが更新される | 実ファイルが更新される |
リンク上書き時の挙動@mv( mv <file> <linkfile> ) |
リンクファイルが上書きされる(リンクファイルがなくなる) | リンクファイルが上書きされる(リンクファイルがなくなる) |
リンクコピー時の挙動@cp( cp <linkfile> <file> ) |
実ファイルが複製される | 実ファイルが複製される |
リンク移動/リネーム時の挙動@mv( mv <linkfile> <file> ) |
リンクファイルが移動/リネームされる | リンクファイルが移動/リネームされる |
リンクを辿るか(ディレクトリ@git status) | - | 辿らない |
リンクを辿るか(ディレクトリ比較@git diff) | - | 辿らない |
リンクを辿るか(ディレクトリ比較@diff -r) | - | 辿る |
リンクを辿るか(ディレクトリ比較@diff -r –no-dereference) | - | 辿らない |
リンクを辿るか(ファイル@git status) | 辿る | 辿らない |
リンクを辿るか(ファイル比較@git diff) | 辿る | 辿らない |
リンクを辿るか(ファイル比較@diff) | 辿る | 辿る |
リンクを辿るか(ファイル比較@diff –no-dereference) | 辿る | 辿らない |
その他
Alt+Tab
が使える。Alt+Tab
が使えなくなる。Ctrl+Tab
)に置き換えるCtrl | Shift | Alt | Key | 機能 |
---|---|---|---|---|
Tab | コマンド/ファイル名補完 | |||
Ctrl | p/n | コマンド履歴呼出し(1つ前/1つ先) | ||
Ctrl | r | コマンド履歴検索 | ||
Ctrl | l | 画面クリア | ||
Ctrl | Shift | f | 検索 | |
Ctrl | c | 実行中プログラム強制終了 | ||
Ctrl | d | 終了 | ||
Ctrl | f/b | カーソル移動(1個右/左) | ||
Alt | f/b | カーソル移動(単語単位右/左) | ||
Ctrl | a/e | カーソル移動(行頭/行末) | ||
Ctrl | t | 文字入替(現在⇔1つ前) | ||
Ctrl | h/d | 文字削除(カーソル左/カーソル位置) | ||
Ctrl/ | /Alt | w | 単語削除(カーソル左/右) | |
Ctrl | u/k | 文字削除(カーソル左側/右側全て) | ||
Ctrl | y | 貼付け(上記Ctrl + w,Ctrl + kなどで削除した文字列をペーストできる) | ||
Ctrl | m/j/o | ENTERと同じ | ||
Shift | Alt | +/- | タブ内分割追加(垂直/水平) | |
Ctrl | Shift | w | タブ内分割削除 | |
Alt | 方向キー | タブ内分割移動 | ||
Shift | Alt | 方向キー | タブ内分割サイズ変更 | |
Alt | Enter | 全画面モード | ||
F11 | 全画面モード | |||
Ctrl | s/q | 画面更新 停止/再開 | ||
Ctrl | Shift | ↑/↓ | 画面スクロール 上/下(WSL2のみ?) | |
Ctrl | Shift | t | 新規タブ作成 | |
Ctrl | Shift | d | タブ複製 | |
Ctrl | /Shift | Tab | タブ切替え 順方向/逆方向 | |
Ctrl | Shift | p | コマンドパレット表示 | |
Ctrl | Shift | Space | ドロップダウンメニュー表示 | |
Ctrl | +/- | フォントサイズ変更(拡大/縮小) |
`:コマンド実行
source xxx.sh:現在シェルで実行
それぞれ正しく受け渡しできる。
できる。
#!/bin/bash
exec 5> debug_output.txt
BASH_XTRACEFD="5"
PS4='$LINENO: '
set -x