之前有時會突然想到這個問題,以前在dos下你可以用copy con filename.txt
來用鍵盤輸入ASCII字元(包含unprintable)到一個檔案上,可以不需要使用任何
文字編輯工具(像PE2或edit)
那麼在Linux下有辦法嗎??
上網查了一下(keyword: linux copy con),發現可以用cat 這個指令來達成.
--
先大概講解在dos下的用法
在dos的命令提示字元下輸入copy con filename.txt,
中間參數con為dos的設備名稱,con是控制台,指的是鍵盤
另外還有aux為另外一台終端機,nul就像是個黑洞(e.g. /dev/null in unix)
當輸入完這串指令後,就可以開始新增或刪除字元
你可以輸入任意字母或數字另外還可以輸入ASCII的字元
像65是大寫英文字母A,97是小寫a
輸入方法為:先按著alt鍵不放,再打入3碼ASCII以十進位的數,最後再放開alt鍵.
另用這方法你就可以用ASCII為8的這個backspace功能來刪除字元,當然你也可以直接
按鍵盤上的backspace,
這方法我覺得在你想測試某些鍵盤無法直接輸入的ASCII字元還滿方便的.
最後按Ctrl+z鍵或F6鍵可以存檔並離開.
--
現在換到linux了
在linux下你可以輸入
cat > filename
或者以附加的方式
cat >> existed-file
的方式來輸入任意字元,而且還可以像dos裡面輸入任意的ASCII字元
想離開時輸入ctrl+D可以存檔並且離開
或是ctrl+C放棄編輯&離開.
小心按成ctrl+Z會把process丟到背景去呀...
補 充:想在linux下編修十六進位檔也可執行 hexedit 或 bvi 或 hexer
在Vim中,在插入模式下,可以先按Ctrl-V,再輸入代表ASCII碼的(至多三位)十進位數位
另外,用 Alt + ASCII 來輸入字元時,數字鍵一定要用 鍵盤右鍵的數字鍵,不過有些筆電好像可以直接加fn key配合上排數字列來打...