Emacs on Linux

一些Emacs的Command汇总(对X86系统来说,其中C代表Ctrl,M代表Alt):

1)与文件操作有关的命令
C-x C-f 查找文件并且在新缓冲区中打开
C-x C-v 读入另一个文件替换掉用C-x C-f 打开的文件
C-x i  把文件插入到光标的当前位置
C-x C-w 把缓冲区内容写入一个文件
C-x C-s 保存文件
C-x C-c 退出Emacs

2)与光标移动操作有关的命令
C-f 光标前移一个字符(右) C-b 光标后移一个字符(左)
C-p 光标前移一行(上) C-n 光标后移一行(下)
M-f 前移一个单词  M-b 后移一个单词
C-a 移动到行首  C-e 移动到行尾
M-e 前移一个句子  M-a 后移一个句子
M-} 前移一个段落  M-{ 后移一个段落
C-v 屏幕上卷一屏  M-v 屏幕下卷一屏
C-x ] 前移一页  C-x [ 后移一页
M-< 前移到文件头  M-> 后移到文件尾
C-l 重新绘制屏幕,当前行放在画面中心
M-n 或者 C-u n 重复执行n次后续命令
按下M-x后在辅助输入区中输入:
"goto-line"跳到指定的行,输入"goto-char"跳到指定的字符

3)与文件删除操作有关的命令
C-d 删除光标位置上的字符 DEL 删除光标前面的字符
M-d 删除光标后面的单词 M-DEL 删除光标前面的单词
M-k 删除光标后面的句子 C-x DEL 删除光标前面的句子
Ctrl-u 0 Ctrl-k 在emacs中删除从光标位置到行首
C-k 从光标位置删除到行尾
C-y 恢复被删除的文本或者粘贴最近删除或复制的文本
C-w 删除文件块
按下M-x后在辅助输入区中输入"kill-paragraph"删除光标后面的段落,
按下"backward-kill-paragraph"删除光标前面的段落

4)与文本块操作有关的命令
C-@  标记文本块的开始(或结束)位置
C-x C-x 互换插入点和文本标记的位置
C-w 或 SHIFT-DEL 删除文本块
M-w  复制文本块
M-h  标记段落
C-x C-p 标记页面
C-x h  标记整个缓冲区
Alt-I 插入Tab

5)与位置交换操作有关的命令
C-t 交换两个字符的位置
M-t 交换两个单词的位置
C-x C-t 交换两个文本行的位置
按下M-x后在辅助输入区中输入:
"transpose-sentences"交换两个句子的位置,
"transpose-paragraph"交换两个段落的位置;

M-x replace-string 替换操作,按提示进行

6)与改变字母大小写操作有关的命令
M-c 单词首字母改为大写
M-u 单词的字母全部改为大写
M-l 单词的字母全部改为小写

7)与查找操作相关的命令
C-s 向前递增查找
C-r 向后递增查找
C-s C-w 开始递增查找,把光标位置的单词做查找字符串
C-s C-y 开始递增查找,把光标位置到行尾之间的文本做查找字符串
C-s return searchstring return 向前开始非递增查找操作
C-r return searchstring return 向后开始非递增查找操作
C-s return C-w 向前开始单词查找(不受换行符、空格、标点符号影响)
C-r return C-w 向后开始单词查找(不受换行符、空格、标点符号影响)

8)与使用编辑缓冲区和窗口有关的命令
C-x b 如果输入一个新的文件名则新建一个文件并且编辑,否则打开该文件
C-x s 保存全部缓冲区
C-x b 删除/切换buffer
M-x rename-buffer 重命名当前缓冲区
C-x C-q 把当前编辑缓冲区设置为只读属性
C-x 0 删除当前所在的窗口
C-x 1 当前缓冲区满屏显示
C-x 2 创建上下排列的窗口
C-x 3 创建左右排列的窗口
C-x o 在窗口之间移动

9)其它

C-M- 在编C代码时,在emacs里让选中的区域自动缩进

Setuid, Setgid and Sticky Bit

setuid: set process have same rights to owner during the RUN time;

setgid: only valid to directory. all files in this directory have same group to the directory. 

sticky bit: Prevent to delete bit. if the group which the user belong to do not have write right to directory, then all files in this directory can not been deleted by user, and user can not add file to directory too. If allow user add file but not delete file in the directory, then set sticky bit to the file.

setuid: chmod 4xxx filename, chmod u+s filename

setgid: chmod 2xxx filename, chmod g+s filename

set sticky bit: chmod 1xxx filename; chmod o+t filename

setuid and setgid: chmod 6xxx filename;

setuid,setgid and sticky bit together: chmod 7xxx