在当前目录下所有文件中查找内容包含 string 的文件:
find ./ -name “*” -exec grep “string” {} \;注意:在最后不能加 print ,否则会出错.
在当前目录下所有文件中查找内容包含 string 的文件并列出字符所在的文件:
find ./ -name “*” -exec grep -l “string” {} \;
在当前目录下 *.c 中查找内容包含 string 的文件并列出字符所在的文件的所在行(不显示文件名):
find ./ -name “*.c” -exec grep -n “string” {} \;
在当前目录下所有文件中查找内容包含 string 的文件并列出字符所在的文件,所在行及所在行的内容:
find ./ -name “*” -exec grep -n “string” ./ {} \;
用find命令调用grep,如所有C源代码中的“Chinput”
find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-print
查找大于500000字节且在24小时内修改过的文件:
find /etc -size +500000c -and -mtime+1
结合正则查找匹配文件
ls -l | grep ´∧d´
其它常用命令
安装文件:./configure => make => make install
cat 显示文件内容head 输出文件头开始计算的多少行
tail 输出文件尾开始计算的多少行
head -20 file | tail -10 输出文件从20行开始到倒数第10行结束的内容
uname 查看系统信息
stty 显示关于您的终端设置的信息
date 命令可用于显示或设置日期
du 磁盘信息
fdisk 命令是 Linux 的分区表操作命令
ps 命令提供了当前运行进程的快照
kill 终止进程
top 即时查看最活跃的进程
ls … | more 逐屏显示文件内容
ls … | less 逐屏显示文件内容,可以上下滚动
cat -n 文件名 |less 显示文件内容
ln [options] 源文件 [链接名] 在文件之间创建链接,硬软两种方式,其中软链接相当于WINDOWS快捷方式
tar 解压缩文件,注意事项,格式选择要放在最前,f选择放在最后,如下面例子
tar -zxvf … tar -jxvf … tar -zcf … tar -jcf alias 别名=’命令短语’ 设置命令的快捷方式
unalias 别名 删除临时建立的命令快捷方式
touch 文件名 建立一个新的空文件
dpkg -l |grep ii | grep packagename 查询软件是否已经安装(UBUNTU)
rpm -qa | grep -i packagename 查询软件是否已经安装
更新为正确时间:sudo ntpdate time.windows.com
查看端口: netstat -tulpn | netstat -npl
查看软件xxx安装内容: dpkg -L xxx
查找软件库中的软件: apt-cache search 正则表达式 | aptitude search 软件包
清除所有已删除包的残馀配置文件: dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
编译时缺少h文件的自动处理: sudo auto-apt run ./configure
查看安装软件时下载包的临时存放目录: ls /var/cache/apt/archives
备份当前系统安装的所有包的列表: dpkg --get-selections | grep -v deinstall > ~/somefile
从上面备份的安装包的列表文件恢复所有包: dpkg --set-selections < ~/somefile => sudo dselect
清理旧版本的软件缓存: sudo apt-get autoclean
清理所有软件缓存: sudo apt-get clean
删除系统不再使用的孤立软件: sudo apt-get autoremove
一键安装 LAMP 服务: sudo tasksel install lamp-server
查看内核: uname -a
查看Ubuntu版本: cat /etc/issue
查看CPU信息: cat /proc/cpuinfo
显示当前内存大小: free -m |grep "Mem" | awk '{print $2}'
查看系统限制: ulimit -a
查看硬盘的分区: sudo fdisk -l
查看硬盘剩余空间: df
查看当前的内存使用情况: free
连续监视内存使用情况: watch -d free
查看当前用户程序实际内存占用,并排序: ps -u $USER -o pid,rss,cmd --sort -rss
按内存从大到小排列进程: ps -eo "%C : %p : %z : %a"|sort -k5 -nr|less
统计程序的内存耗用: ps -eo fname,rss|awk '{arr[$1]+=$2} END {for (i in arr) {print i,arr[i]}}'|sort -k2 -nr
按cpu利用率从大到小排列进程: ps -eo "%C : %p : %z : %a"|sort -nr | less
动态显示进程执行情况: top
查看当前有哪些进程: ps -AFL
挂载共享文件: sudo mount -t smbfs -o username=xxx,password=xxx,iocharset=utf8 //192.168.1.1/share /mnt/share
挂载ISO文件: sudo mount -t iso9660 -o loop,utf8 xxx.iso /mnt/iso
中止一个进程: kill 进程id
强制中止一个进程:kill -9 进程id | 或者 killall -9 进程id
显示80端口现在运行什么程序: lsof -i :80
在后台运行程序,退出登录后,并不结束程序: nohup 程序 & #查看中间运行情况 tail nohup
屏蔽IPV6: echo "blacklist ipv6" | sudo tee /etc/modprobe.d/blacklist-ipv6
查看当前网络流量(需要安装:sudo apt-get install bwm-ng): bwm-ng
查看域名的注册备案情况: whois baidu.cn
根据字符串匹配来查看文件部分内容: grep 字符串 文件名
递归式创建一些嵌套目录: mkdir -pv /tmp/xxs/dsd/efd
递归式删除嵌套目录: rm -fr /tmp/xxs
对比两个文件之间的差异: diff file1 file2
把所有文件的后辍由rm改为rmvb: rename 's/.rm$/.rmvb/' *
把所有文件名中的大写改为小写: rename 'tr/A-Z/a-z/' *
查看当前目录的子目录: ls -d */ 或 echo */
回到上一次的目录: cd -
备份当前系统到另外一个硬盘: sudo rsync -Pa / /media/disk1 --exclude=/media/* --exclude=/home/* --exclude=/sys/* --exclude=/tmp/* --exclude=/proc/* --exclude=/mnt/*
使用ssh方式同步远程数据到本地目录: rsync -Pa -I --size-only --delete --timeout=300 Remote_IP:/home/ubuntu/back /backup
使用ftp方式同步远程数据到本地目录: lftp -c "open Remote_IP;user UserName Password;set cache:enable false;set ftp:passive-mode false;set net:timeout 15;mirror -e -c /back /backup;"
抓取桌面操作的视频: ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg
显示隐藏文件(浏览文件时): Ctrl+h
显示地址栏(浏览文件时): Ctrl+l
桌面挂载硬盘图标:
清除:gconftool-2 --set /apps/nautilus/desktop/volumes_visible 0 --type bool
恢复:gconftool-2 --set /apps/nautilus/desktop/volumes_visible 1 --type bool
增加一个ppa源:
sudo add-apt-repository ppa:user/ppa-name
#使用 ppa 的地址替换 ppa:user/ppa-name
从当前页面开始镜像整个网站到本地:
wget -r -p -np -k http://www.21cn.com
· -r:在本机建立服务器端目录结构;
· -p: 下载显示HTML文件的所有图片;
· -np:只下载目标站点指定目录及其子目录的内容;
· -k: 转换非相对链接为相对链接。
使用文件来增加交换空间:
#创建一个512M的交换文件 /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=512
sudo mkswap /swapfile
sudo swapon /swapfile
#sudo vim /etc/fstab #加到fstab文件中让系统引导时自动启动
/swapfile swap swap defaults 0 0
快速使用http方式共享目录:
#进入需要共享的目录后运行:
python -m SimpleHTTPServer
#其它电脑使用http://ip:8000 来访问
#自定义端口为8080:
python -m SimpleHTTPServer 8080
关闭 1234 端口: sudo iptables -A OUTPUT -p tcp --dport 1234 -j DROP
开启 80 端口: sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
限制访问80端口的外部IP最大只有50个并发: sudo iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 --connlimit-mask 32 -j DROP
禁止一个IP或者一个IP段访问服务器端口服务:
#80端口 ,规则插入到前面
sudo iptables -t filter -I INPUT -s 192.168.2.0/24 -p tcp --dport http -j DROP
#21端口,规则插入到前面
sudo iptables -t filter -I INPUT -s 192.168.1.23 -p tcp --dport ftp -j DROP
阻止一个IP连接本机:
#规则位于最后
sudo iptables -t filter -A INPUT -s 192.168.1.125 -i eth0 -j DROP
防止外网用内网IP欺骗:
#eth0 为外网网卡
sudo iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP
sudo iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
sudo iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP
转换文件名由GBK为UTF8:
sudo apt-get install convmv
convmv -r -f cp936 -t utf8 --notest --nosmart *
批量转换src目录下的所有文件内容由GBK到UTF8:
find src -type d -exec mkdir -p utf8/{} \;
find src -type f -exec iconv -f GBK -t UTF-8 {} -o utf8/{} \;
mv utf8/* src
rm -fr utf8
转换文件内容由GBK到UTF8: iconv -f gbk -t utf8 $i > newfile
批量转换文件内容由GBK到UTF8: for i in `find . *`; do if [ -f "$i" ]; then iconv -f gb2312 -t utf8 $i > "./converted/$i" fi ; done
转换 mp3 标签编码:
sudo apt-get install python-mutagen
find . -iname '*.mp3' -execdir mid3iconv -e GBK {} \;
增加农历:
sudo apt-get install lunar-applet
鼠标点击面板右键 -> 添加到面板 -> 农历日期
忘了mysql的root口令怎么办:
sudo /etc/init.d/mysql stop
sudo mysqld_safe --skip-grant-tables &
sudo mysqladmin -u user password 'newpassword
sudo mysqladmin flush-privileges
mysql的自动备份:
#备份 forum myweb 数据库到 /backup/mysql 目录,并删除7天之前的备份记录
mysqldump --opt --skip-lock-tables -u root forum | gzip -9 > /backup/mysql/forum.`date +%Y%m%d`.sql.gz
mysqldump --opt --skip-lock-tables -u root myweb | gzip -9 > /backup/mysql/myweb.`date +%Y%m%d`.sql.gz
find /backup/mysql/ -type f -ctime +7 -exec rm {} \;