新装Debian 7 重启后显示 error: file ‘/boot/grub/i386-pc/normal.mod’ not found的解决办法

新机支持EFI bios,且系统是64位,会自动安装EFI版的GRUB,不管你是否启用了EFI引导。解决办法是再次启动安装镜像,并且选择”高级选项(Advanced options)“中的”救援模式(rescue mode)“,选择正确的你所安装的根分区/的设备,并进入命令行模式。
然后:

bash  #我比较喜欢用bash,默认是sh
mount -a #把没挂载的设备都挂上
aptitude -y remove grub-efi-amd64 #删除EFI版的GRUB
aptitude -y install grub-pc #安装传统PC版GRUB
rm -rf /boot/grub/*
grub-install /dev/sdX #重新初始化GRUB到启动磁盘
update-grub #重新生成启动项菜单,等同于grub-mkconfig > /boot/grub/grub.cfg

#然后重启并从硬盘引导就OK了

我的gVim配置

" 语法高亮
syntax on

" 自动缩进
set ai

" 显示行号
set nu

" tab宽度
set tabstop=4

" 不要自动备份文件
set nobackup

" 不自动换行
set nowrap

" 字体名称、高度、字符集
set gfn=Consolas:h11:cANSI:qDRAFT

" 默认文件编码
set fileencoding=utf-8

" 文件编码
set fileencodings=utf-8,cp93

" 不响应鼠标
set mouse=
set ttymouse=

" 不使用系统剪贴版
set clipboard=

RHEL/CENTOS 上配置可写入型tftp的方法

  1. tftp是xinet服务,所以安装tftp服务至少需要安装xinetd和tftp-server两个包。另外tftp包为tftp客户端程序,可用于测试。
  2. 编辑tftp配置文件/etc/xinetd.d/tftp,确保命令选项中有-c,意思是可以上传(创建)新文件,如果没有此参数,则只能覆盖现有文件(如果权限足够的话)。另外disable当然要设为no,否则服务不会启用。
  3. 设置SELinux放行写入操作:setsebool -P tftp_anon_write=1
  4. 设置tftp目录权限,开放所有权限,RHEL6/CENTOS6的目录默认为/var/lib/tftpboot,RHEL5/CENTOS5则为/tftpboot:
chmod 777 /var/lib/tftpboot

RHEL/CENTOS 下启用vsftpd匿名上传可能需要做的操作

1、修改文件系统权限

chmod -R 777 /var/ftp/pub/

2、使用可写入型的SELinux Context值

semanage fcontext -a -t public_content_rw_t '/var/ftp/pub(/.*)?' #semanage来自于policycoreutils-python包
restorecon -R /var/ftp/pub/

3、修改SELinux布尔值放行匿名上传(写入)

setsebool -P allow_ftpd_anon_write=1

4、修改/etc/vsftpd/vsftpd.conf配置文件

anonymous_enable=YES    #启用匿名模式
anon_upload_enable=yes   #允许匿名用户上传文件
anon_mkdir_write_enable=yes  #允许匿名用户创建目录
anon_other_write_enable=yes   #允许匿名用户删除、移动、修改文件权限等其他修改操作
write_enable=YES    #全局可写开关,默认已开启(Debian系默认关闭)
chown_uploads=YES    #可选,对于匿名用户上传的文件,是否指定其所有者(不指定则为ftp)
chown_username=ftp    #如果chown_uploads设为YES,指定哪个用户为匿名上传文件的所有者
chown_upload_mode=644   #貌似效果不如anon_umask
anon_umask=000     #匿名上传文件的umask值,为8进制,必须以0开头,chown_uploads=NO时有效
local_umask=000     #本地用户上传文件的umask值,为8进制,必须以0开头,chown_uploads=YES时有效
no_anon_password=YES  #匿名用户无需密码验证

seccomp_sandbox=NO    #某些发行版上传出现530报错可以尝试这个参数

Linux下bash脚本借用tr命令批量修改文件名 (Change file name by command ‘tr’ using bash script under Linux)

bash脚本调用tr命令修改文件名,tr命令参数由用户指定。The bash script will call command ‘tr’ to change file names. parameters transfered to ‘tr’ is specified by user.

# Usage: fn-tr -p <tr parameters> -r <file/directory> <file/directory> ...
# -p parameters will transfered to command 'tr'  指定将会传递给tr命令的参数
# -d change directory     对目录执行更改操作
# -f change normal file  对普通文件执行更改操作
# -r recursive  递归搜索子目录

举例Example:
将/docs下文件名中的多个连续空格压缩到一个 remove duplicated white spaces of the filenames under /docs

ftr -p '-s " "' -fr /docs/*

bash脚本下载:bash script download:
https://gitee.com/mjpclab/Shell-Utility/raw/master/bin/fn-tr
https://raw.githubusercontent.com/mjpclab/Shell-Utility/master/bin/fn-tr