事象
誰かが-aというファイルを作成していた。
そのため今まで出くわしたことなかったため、削除しようとするが削除できなかった。
試したコマンド
rm -a rm \-a rm "-a" rm "\-a" rm '-a'
誰かが-aというファイルを作成していた。
そのため今まで出くわしたことなかったため、削除しようとするが削除できなかった。
rm -a rm \-a rm "-a" rm "\-a" rm '-a'
Gitのコードがまばらになってしまう
Gitクライアント側の統制が行えていないため
各開発者のGitの改行コード設定を確認してもらう
git config --show-origin core.autocrlf
git config --[system|global|local] core.autocrlf [true|input|false]
systemはシステム全体、globalは対象ユーザー、localは対象リポジトリのみ
git config --list --show-origin
書式 | 説明 |
---|---|
${value} | 変数valueの値を展開 |
${value:-hoge} | 変数valueの値を展開するが、valueが未設定か空文字の場合はhogeの値を展開 |
${value:=hoge} | 変数valueの値を展開するが、valueが未設定か空文字の場合はhogeの値を展開し更にvalueに代入 |
${value:?hoge} | 変数valueの値を展開するが、valueが未設定か空文字の場合はhogeの値を展開し更に標準エラー出力 |
${value:+hoge} | 変数valueの値を展開するが、valueが未設定か空文字の場合は空文字として処理 |
${value:offset} | 変数valueの値を展開する際、offsetの位置から展開 |
${value:offset:length} | 変数valueの値を展開する際、offsetの位置から最大length文字分を展開 |
${!hoge*} ${!hoge@} | hogeで始まる全ての変数を、特殊変数IFSの最初の文字(デフォルト空白)で区切って展開 |
${hoge[*]} ${!hoge[@]} | hogeが配列変数であれば、配列hogeの値のリストを展開。hogeが配列でない場合、hogeの値に展開 |
${!hoge[*]} ${!hoge[@]} | hogeが配列変数であれば、配列hogeのキーリストを展開。hogeが配列でない場合、空文字として展開 |
${#hoge} ${#hoge[*]} ${#hoge[@]} | 文字列数、要素数を出力 |
${hoge#word} ${hoge##word} | hogeを展開し、前方からwordに一致した分まで削除して出力、#は最初にマッチした部分までで、##は最後にマッチした部分まで削除 |
${hoge%word} ${hoge%%word} | hogeを展開し、後方からwordに一致した分まで削除して出力、%は最初にマッチした部分までで、%%は最後にマッチした部分まで削除 |
${hoge/pattern/word} | hogeを展開し、patternに一致した最後の部分までをwordに置換してから出力 |
$ value=([0]="zero" [1]="one" [2]="two" [3]="three") $ echo $value zero $ echo ${value[1]} one $ echo ${value[*]} zero one two three $ echo ${!value[*]} 0 1 2 3 $ value=(["z"]="zero" ["o"]="one" ["tw"]="two" ["th"]="three") $ echo ${!value[*]} z o tw th
シェルの動作を決めるオプションのこと。
setコマンドで設定できるものと、shoptコマンドで設定できるものに分かれている。
(但し、shoptコマンドでもsetコマンド用のシェルオプションは設定可能)
【 set 】コマンド――シェルの設定を確認、変更する:Linux基本コマンドTips(205) - @IT
【 shopt 】コマンド――bashのシェルオプションを表示/設定する:Linux基本コマンドTips(361) - @IT
よくシェバンの後に書かれている。
この指定をシェバンの後に書いておけば、エラー発生時に突っ切らないので安全である。
なお、以下の意味合いがある。
シェルオプション名 | オプション略記 | 効能 |
---|---|---|
errexit | -e | コマンド実行結果がエラー(=終了ステータスが0以外)の場合、終了 |
nounset | -u | パラメータ展開中に未定義変数がある場合、終了 |
ー | -o | シェルオプションを有効化 |
pipefail | ー | パイプラインの戻り値を最後のエラー終了値にする |
但し、利用シーンによっては、バカチョンで付けると痛い目合う場合もある模様。
togetter.com
ショートカットキー | 効能 | 補記事項 |
---|---|---|
Ctrl + B | 1文字戻る | ←と同じ |
Ctrl + F | 1文字進む | →と同じ |
Esc → B | 1単語戻る | |
Esc → F | 1単語進む | |
Ctrl + A | 行頭に戻る | |
Ctrl+ E | 行末へ進む | |
Ctrl + H | カーソルより前方の1文字削除 | |
Ctrl + D | カーソルより後方の1文字削除 | Deleteと同じ |
Esc → Ctrl + H | カーソル前方の1単語削除 | Esc → Deleteと同じ |
Esc → D | カーソル後方の1単語削除 | |
Ctrl + U | カーソルより前方の文字全削除 | |
Ctrl + K | カーソルより後方の文字全削除 | |
Ctrl + Y | 最後に削除したものをペースト | |
Ctrl + P | 前の履歴を表示 | ↑と同じ |
Ctrl + N | 次の履歴を表示 | ↓と同じ |
Esc + | 履歴の先頭を表示 | |
Esc + > | 履歴の最後を表示 | |
Ctrl + R | インクリメンタルサーチの開始(※2) | |
Ctrl + L | スクリーンのクリア | |
Ctrl + S | スクリーンへの出力を一時停止 | スクリーンロックとも呼ぶ模様 |
Ctrl + Q | スクリーンへの出力を再開 | |
Ctrl + Z | フォアグランドプロセスを一時停止 | |
Ctrl + C | フォアグランドプロセスを終了 |
※1 Escで始まるショートカットは、Windows端末では使い勝手悪い事が多いかもしれない。。
※2 本来的にはCtrl + Rはインクリメンタルサーチ開始という意味でないが、最初はこの方が理解しやすい。
文字を入力することで履歴とヒットする結果が自動表示
Ctrl + Rで前方検索、Ctrl + Sで後方検索(※3)
ヒットしなかった場合は"failed reverse-i-search"と表示される。
その場合はバックスペースキー等で文字を消せば元に戻れ、そこから入力すると再度検索が行われる。
Enterを押せば実行、Escを押せばコマンドを引き継いだまま戻る、Ctrl + g or Ctrl + cでキャンセル
※3 スクリーンの出力の一時停止に割当たっているため、利用する場合は予め以下を設定する必要有
stty stop undef
ショートカットキー | 効能 | 補記事項 |
---|---|---|
Tab | コマンド名、ファイル名、ディレクトリ名の補完 | |
Esc → ? | 補完候補の一覧表示 | Tab → Tabと同じ |
Ctrl + X → ! | コマンド名の補完候補を一覧表示 | |
Ctrl + X → / | ファイル名、ディレクトリ名の補完候補を一覧表示 | |
Ctrl + X → ~ | ユーザー名の補完候補を一覧表示 | |
Ctrl + X → @ | ホスト名の補完候補を一覧表示 | |
Alt + g(※4) | 補完候補まで埋められ、もう一度押すとリスト表示 | 事前に文字を入力しておく必要有 |
Ctrl + x → * | 補完候補一覧をコマンドラインに展開 | 事前に文字と*を入力しておく必要有(※5) |
Ctrl + x → g | 補完候補一覧の表示 | 事前に文字と*を入力しておく必要有(※5) |
※4 M-g と表現されていることが多い
管理者権限なのに特定プロジェクトのチケットが編集できない。
チケットの編集ボタンが非活性化されてしまっており、編集画面に遷移できない。
プロジェクトの権限設定、ユーザーのロール設定を色々変更しても全く反応がない。
チケットに紐づく対象プロジェクトを終了させていたから・・・
プロジェクトを再開するだけ。。。
自宅のPCにHDDを接続して共有の設定を行った。
HDDに接続しているPCからはファイル共有のパスでアクセスするとアクセスできる。
しかし、同じサブネット内のPCからアクセスするとアクセスできない。
カスペルスキーが通信をブロックしていた。
以下で解説してくれていた。
support.kaspersky.co.jp
但し、当解説の通りにすると全ての通信をブロック解除してしまう。
自宅で使うのであればこのまま従うのではなく、リモートアドレスのところは”すべてのネットワークアドレス”ではなく、”サブネットアドレス(信頼済みネットワーク)"に変更すべきである。