screenコマンド
$HOME/.screenrc
$ cat ~/.screenrc # Encoding defencodig utf-8 # Prefix Key escape ^Kk # set scrollback defscrollback 1000000 # Delete sartt up screen startup_message off # Enable Auto detach autodetach on # logging log on deflog on logfile \"/Users/YourName/screen/log/screen-%Y%m%d-%n.log\" # Show date and screen list hardstatus alwayslastline \"%{= rw} %H %{= wk}%-Lw%{= bw}%n%f* %t%{= wk}%+Lw %{= wk}%=%{= gk} %y/%m/%d %c \"
screen端末の追加
C-k c
動作中のscreenを表示
C-k w
動作中のscreenの名前の変更
C-k A
端末の移動(上)
C-k n
端末の移動(下)
C-k p
cat editor
catコマンドでファイルを作成
$ cat > hoge.txt hoge fuga piyo <ctrl + d>
$ cat hoge.txt hoge fuga piyo
Linuxタブ補完設定
[1] Ubuntu16.04でccコマンドを入力し、ファイル名をタブ補完しようとするとうまく動作しない。
[解決法] ccコマンド実行時に、ファイルを対象に補完を行う
$ complete -f cc
[2] Ubuntu16.04でlsコマンドでワイルドカードを使うとすべての候補が出ずに、一番目のファイル名で勝手に補完されてしまう。
[解決法]
lsコマンド実行時に、ファイルを対象に補完を行う*1
$ complete -f ls
[使い方]
全コマンドの補完情報表示。
$ complete -p
lsの補完情報表示。
$ complete -p ls
ccコマンド実行時に、ファイル(とディレクトリ *2 )を対象に補完を行う
$ complete -f cc
ccコマンド実行時に、ディレクトリを対象に補完を行う
$ complete -d cc
lessの覚えるべきコマンド
/pattern 現在位置からファイルの末尾方向へpatternを検索し,移動する ?pattern 現在位置からファイルの先頭方向へpatternを検索し,移動する :n 次のファイルを閲覧する :p 前のファイルを閲覧する
解凍シェル_途中
上書き確認の応答待ちとかなるとプログラムが止まってしまう。
リアルタイムで表示するか応答待ち時に標準出力できるのか?
#!/usr/bin/python # coding:utf8 import sys import commands def getFilename(st): # st = "./hoge/fuga/piyo_foo.txt" -> "piyo_foo.txt" tmp = ("hoge", "fuga", "piyo") while (tmp[1]): tmp = st.partition("/") st = tmp[2] return tmp[0] if __name__ == '__main__': name_extensions = [".tar.gz", ".tar.bz2", ".tar.xz", ".tar", ".zip"] command = ["tar -zxvf", "tar -jxvf", "tar -Jxvf", "tar -xvf", "unzip"] argvs = sys.argv for i in range(1, len(argvs)): for j in range(len(name_extensions)): n = len(argvs[i]) - len(name_extensions[j]) if (name_extensions[j] == argvs[i][n:]) : cmd = command[j] + " " + argvs[i] print cmd # print commands.getoutput(cmd)
関数ポインタ_途中
#include <stdio.h> void HOGE(){ printf("HOGE\n"); } int FUGA(){ printf("FUGA\n"); return 1; } int main(){ void (*func)() = HOGE; func(); void (*func2)() = NULL; func2 = HOGE; func2(); int (*func3)() = FUGA; func3(); return 0; }
#include <stdio.h> void HOGE(){ printf("HOGE\n"); } int FUGA(){ printf("FUGA\n"); return 1; } void PIYO(){ printf("PIYO\n"); } int main(){ void (*funcs[])() = {HOGE, PIYO}; int i; for (i = 0; i < 2; i++) { funcs[i](); } return 0; }
#include <stdio.h> #include <stdlib.h> void HOGE(){ printf("HOGE\n"); } int FUGA(){ printf("FUGA\n"); return 1; } void PIYO(){ printf("PIYO\n"); } int main(){ void (**funcs)() = NULL; int i; funcs = malloc( sizeof(void*) * 2 ); funcs[0] = HOGE; funcs[1] = PIYO; for (i = 0; i < 2; i++) { funcs[i](); } return 0; }
emacs 覚えるべきコマンド
領域指定(マーク)
C-space
領域切り取り
C-w
シェルモード
M-!