2016年5月

有用的shell脚本

批量替换google字体

grep -Rl "fonts\.googleapis\.com" * 2>/dev/null | sudo xargs sed -i "s/fonts\.googleapis\.com/fonts.lug.ustc.edu.cn/g"

批量转换文字编码(linux)

find folder -type d -exec mkdir -p utf/{} \;
find folder -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;

批量转换文字编码(cygwin)

find . -type f -exec sh -c "iconv -f GBK -t UTF-8 {} > {}.utf8" \; -exec mv "{}".utf8 "{}" \;

批量转换文字编码(vim)

vim $(find . -type f)
:set nomore
:bufdo set fileencoding=utf8 | w

排序文件夹下目录的大小

du -sh * | sort -hk 1

文本行逆序

sed "1!G;h;$!d" file

使用密码SSH登录(不安全)

sshpass -p password -o StrictHostKeychecking=no ssh user@host

让普通用户可以sudo

  1. 编辑/etc/sudoers
%wheel  ALL=(ALL)       ALL
%wheel  ALL=(ALL)       NOPASSWD: ALL

禁止开机自启动服务

/sbin/chkconfig --list
/sbin/chkconfig --level 2345 nginx off

  1. 让当前用户加入wheel组
gpasswd -a odora wheel

CentOS问题汇总

系统日志文件

  • 有关当前登录用户的信息记录在文件utmp中
    who
  • 登录进入和退出纪录在文件wtmp中
    w
  • 最后一次登录文件可以用lastlog命令察看
  • messages
    从syslog中记录信息

例子:

  • last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户
  • users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话
  • w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息
  • who命令查询utmp文件并报告当前登录的每个用户
  • ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连结的时间

工具:

  • wted
    wtmp/utmp日志编辑程序。你可以使用这个工具编辑所有wtmp或者utmp类型的文件

  • z2
    utmp/wtmp/lastlog日志清理工具。可以删除utmp/wtmp/lastlog日志文件中有关某个用户名的所有条目。

查看剩余磁盘空间

df -hl

查看包安装的路径

rpm -ql subversion

查看已经安装的包

yum list installed | grep -i subversion
rpm -qa | grep -i subversion

安装旧版本centos5

CentOS目前已经不维护5.x版本所以国内各大mirrors都取消了5.x的源。但是查看readme文件发现有个网站http://vault.centos.org仍然提供这些早期的源,只不过不再进行任何更新。

安装python的easy_install

yum install python-setuptools

修改yum的超时时间

/etc/yum.conf
----------
timeout=120

安装软件组

yum grouplist | more
yum grouplist | grep Development
yum groupinfo "Development Tools"
yum groupinstall "Development Tools"

查看文件被哪个进程占用

fuser <filename>

查看进程打开哪些文件

lsof -p <pid>

yum安装的彻底回滚

yum history list tk-devel
>>> 14 | install tk-devel | 2018-07-29 14:55 | Install | 22
yum history undo 14