linux命令收集
mkdir 创建目录 -p递归创建 mkdir -p /data/aaa.txtls –l 显示目录或者文件 -F给不同文件结尾加不同的符号 -t按修改时间 -r翻转排序 -lrt -R显示当前目录下的内容 -i 显示inode信息cd 切换目录层次echo 打印输出内容runlevel 查看系统运行级别cat 查看文件内容 -n 显示行号(cat -n less -N nl grep -n .)cat file1 file2 > file3 两个文件合并成一个paste file1 file2 >file3 两个文件行合并cp -a 拷贝文件或者目录 \cp 直接覆盖不提示或者全路径 -l 创建硬链接 -s 创建软链接rm -f 强制删除文件 -r递归删除 删除文件或者目录 -fr删除指定的目录和文件head 头部 显示文件头部 -n 行数 默认头部10行 head -2 test.txttail 尾部 显示文件尾部 -n 行数 默认尾部10行 tail -1 test.txtgrep (过滤)-v 排除 grep -v 排除内容 文件路径 grep -v aaa test.txtsed 取各种内容 -n取消默认输出 p打印 d删除 sed -n /aaa/p test.txtLANG=en 临时调整字符集vim /etc/sysconfig/i18n 字符集路径alias 查看别名 unalias 删除别名 cat ~/.bashrc 系统别名位置 设置别名 alias cp='cp -i'which 查看命令的路径find 查找命令 -type (f d) -name "f" 按名字查找 -mtime 安装修改时间查找 -maxdepth level 查找目录的深度find / -type f -name "cat"find / -name "test.txt" -exec rm -f {} \; find / -name "test.txt" |xargs rm -f 查找到删除find /root/ -type f -name "*.log" -mtime -3|xargs rm -f 删除三天前数据sed -n '12,16p' cc 打出12-16行sed -i ‘s#aaalinux#windows#g’ cc 替换内容find / -type f -name "cc"|xargs sed -i s#aaalinux#windows#g 查找并修改awk '{if(NR>3&&NR<26) print $0}' ccawk -F ":" '{print $1}' /etc/passwdxargs 用于把find/ls的输出命令交给后面处理find /tmp/aaa -type f ! -name "passwd"|xargs rm 除了passwd其他都删除seq 打印数字序列echo {1..}man 查看命令及配置文件等帮助touch 创建文件或者修改文件时间戳pwd 显示当前的路径tree -L显示层数 -d列目录 查看目录结构tail -f /var/log/maillog 查看实时文件变化more 查看文件但是不能向上回滚less 查看文件可以向上回滚useradd 添加用户 –e 用户终止时间 –c 注释 –d指定家目录 –s指定shuseradd xiao && echo 123456 | passwd --stdin xiao 快速添加用户和密码usermod 修改用户信息userdel 删除用户groupadd 添加组 –gpasswd --stdin 修改用户密码,如果不指定用户,则修改当前用户密码,普通用户只能改自己的密码chage 命令是用来修改帐号和密码的有效期限。whoami 查看当前命令行终端用户w 查看是哪个用户登录且使用情况su 切换用户角色 注意要带上 -sudo 让普通用户可以拥有指定用户root的权限的命令yum 包管理工具 解决rpm包的依赖yum info xx 查看软件详细信息yum list all xx 查看软件安装版本 rpm -ivh 软件安装命令 rpm -ivh 包名.rpmrpm -ql xx 查看软件安装文件路劲chkconfig 查看设置开机自启动软件的命令 -add/ --listnetstat 查看网络状态-lntup 或-an[--tcp |t] [--udp|-u] [--listening|-l ][--all|-a] [--numeric|-n] [--program|-p]lsof -i :port 查看端口 ,list open filesuname -a -r -m 查看系统版本,内核版本getconf LONG_BIT 查看系统位数halt 关机(init 0)reboot重启(init 6)tar gzip打包组合zcvf,解包组合zxvf bzip打包组合jcvf,解包组合jxvf z(gzip),c(create),v(verbose),file,x(extract),j(bzip) --exclude –X(--exclude-from),-C指定目录解压,-p保持属性tar zcvf 筐 苹果tar zcvf aaa1.tar.gz --exclude=aaa/time.sh ./aaa 排除打包tar tf aaa3.tar.gz 查看包里的内容tar zcvfX aaa3.tar.gz test.txt ./aaa 排除内容打包tar xf aaa1.tar.gz 解包tar xf aaa1.tar.gz -C /tmp/ 解包指定目录 cut 按列切割 –d 指定分隔符,-f数字选列,-c按字符cut -c 1-4 取字符wc -l 统计行号 cat –n file|tail -1echo –n 不换行输出sh -x file 查看脚本运行过程sh -n file 检查脚本语法dd命令创建虚拟镜像文件# 从/dev/zero设备创建一个容量为 256M 的空文件virtual.img:$ dd if=/dev/zero of=virtual.img bs=1M count=256$ du -h virtual.imgdd if=/dev/cdrom of=/root/centos6.9.iso 克隆系统echo -e 处理特殊字符若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:\a 发出警告声;\b 删除前一个字符;\c 最后不加上换行符号;\f 换行但光标仍旧停留在原来的位置;\n 换行且光标移至行首;\r 光标移至行首,但不换行;\t 插入tab;\v 与\f相同;\\ 插入\字符;\nnn 插入nnn(八进制)所代表的ASCII字符;tac 反转内容输出date :显示时间stat 文件详细属性useradd 添加用户 –g –u –c –s -d –G –M –Duserdel 删除用户 -rusermod 修改用户groupadd 添加用户groupdel 删除组passwd 修改密码 --stdinchage 修改密码过期属性 -l -Esu 切换用户角色 - -cvisudo 编辑sudo配置文件id 查看用户身份w who lastlog whoami fingerchmod 目录授权 -R 目录及子目录 chown 修改目录所属主chattr +i(-i) 文件名 锁定文件(取消锁定)不可删除与清空chattr +a(-a) 文件名 添加内容(只可添加内容)使用lsattr 文件名 查看文件的特殊权限root用户默认创建的目录权限是755,文件权限是644普通用户默认创建的目录权限是775,文件权限是664umask 禁止权限umount 卸载命令 -lf强制卸载dd convert and copy a file (dd if=/dev/sda of=mbr.bin bs=512 count=1)mkfs 格式化命令 -t 文件系统类型mkfs.ext3df -h 查看磁盘挂载信息du –sh 查看文件及目录总大小 du -sh * 查看每个目录的大小time 计算一个任务执行时间uniq 去重 -c 计数sort 排序(ascll) -r 逆序 -n 按数值 -u 除去重复项 -t 指定字段分隔符 -k 指定排序字段sort -t':' -k 3 -n /etc/passwddate -s 修改时间chgrp 改变用户组 -R 递归fgrep -r "hello world" ./* 查询当前目标下,包含hello world的文件磁盘分区:fdisk 磁盘分区的命令 -l 查看列表 小于2T的分区工具parted GUN磁盘分区工具,适合大于2T的分区工具mount 挂载的命令 –t 文件系统类型 –o挂载的选项 –aumount 卸载的命令 –lf强制卸载mkfs 格式化命令 -t 文件系统类型mkfs.ext3lsof –i:端口号 查看端口号对应的协议netstat -lntup 查看协议对应的端口号ethtool -i 网卡名 查看网卡名env 显示所有的环境变量export 显示当前环境变量locale 显示系统编码 tee 记录消息 (覆盖) -a (追加)at 定时任务 at -f test1.sh 00:28atq 显示定时任务atrm 56 删除定时任务test -f file && echo true || echo false 测试文件是否存在 -z 字符串的长度为0 [ -f file ][ -z ] 长度为0[ -n ]长度不为0rename 批量修改扩展名local tmp 局部变量定义stat:文件/文件系统的详细信息显示file :查看文件类型tr 用来标准输入中替换或者删除操作进行字符转换。 echo ABcd|tr "[A-Z]" "[a-z]"export HISTTIMEFORMAT='%F %T' history显示时间sar 获取系统的CPU、运行队列、磁盘IO、分页(交换区)、内存、CPU中断、网络等性能数据top 显示系统中各个进程的资源占用状况htop 高级top yum install -y htopiostat 对系统的磁盘IO操作进行监视。显示磁盘读写操作的统计信息free 监控linux内存使用的指令 -m 兆为单位 -g G为单位当观察到free栏已为0的时候,表示内存基本被吃完了,那就释放内存吧。dmidecode -t 1 查看设备信息dmidecode -s system-serial-number 查看序列号释放内存:syncecho 3 > /proc/sys/vm/drop_cachesuptime 统计系统当前的运行状况rename "jpg" "txt" *.jpg 把jpg改为txtshuf -n3 随机取3行mail -s "`date +%F-%T`$CHARS" 490004487@qq.com </tmp/messages.txt 发送邮件nc -v -z -w2 192.168.0.3 1-100 扫描0.3 1-100的tcp端口nc -nvv 192.168.0.1 80 //扫描 80端口 指定端口nmap -sP 192.168.160.0/24|grep Nmap|awk '{print $NF}' 查看网段主机dstat 多类型资源统计工具-c: 显示cpu相关信息-C #,#,...,total-d: 显示disk相关信息-D total,sda,sdb,...-g:显示page相关统计数据-m: 显示memory相关统计数据-n: 显示network相关统计数据-p: 显示process相关统计数据-r: 显示io请求相关的统计数据-s: 显示swapped相关的统计数据--top-cpu:显示最占用CPU的进程--top-io: 显示最占用io的进程--top-mem: 显示最占用内存的进程--top-latency: 显示延迟最大的进程- -raw:显示裸套接字- -ipc:进程间通信信息实例1:显示cpu、进程、内存、io线程以及swap等相关信息dstat -c -d -g -m -n -p -r -s实例2:显示系统中cpu和io线程以及内存使用的情况dstat --top-cpu --top-io --top-mem实例3:显示tcp、udp协议和raw和socket套接字以及进程间通信的信息dstat --tcp --udp --raw --socket --ipcPS1='\[\e[32;1m\][\u@\h \W]\$ \[\e[0m\]' 改变提示符颜色文件路径:/etc/bashrc显示路径则把W改成w:kill -9 PID 强制杀进程kill PID 杀进程pkill 进程名 杀进程vi/vim 记事本编译器 显示行号:set nu 删除当前行dd(n行 dd),拷贝当前行yy粘贴p切换到尾部G到文件头部gg退出保存:wq强制退出不保存:q!行首数字0行尾shift+a返回u向下搜索/字符向上搜索?字符删除全部dG定位行号:vim +行号 test.sh[root@localhost ~]# date +%F\ %T2013-04-14 03:03:39 mysql自动补全:在mysql下执行:rehash;小结:sed 擅长打印行awk 擅长打印列修改主机名的步骤:1)hostname jianlai2)vi /etc/syscofnig/network3) vi /etc/hosts修改网卡:编辑配置文件,然后/etc/init.d/network restart 重启网卡ifup eth0 启动网卡ifdown eth0 关闭网卡ifconfig eth0:X 10.0.0.23/24 up 配置别名ipifoconfig eth0:X down 停掉ip addr add 192.168.160.138/24 dev eth0 添加临时ipiwconfig 查看无线网卡配置默认网关:route add default gw 10.0.2.3 添加默认网关route del default gw 10.0.2.3 删除默认网关如果你添加/修改默认网关时遇到这个问题。原因:你要添加的网关不在你主机所在的网段。解决方法:比如你要添加的网关是10.57.50.1sudo route add 10.57.50.1/32 dev eth0然后再sudo route add default gw 10.57.50.1 显示系统路由ip route show设置系统默认路由ip route add default via 192.168.1.1删除路由ip route delete 192.168.1.0/24 dev eth0DNS域名解析:nslookupdighosturl下载:wgetcurl网络检查:Ping路由追踪:traceroute端口扫描:nmapnctelnet 可能防火墙抓包工具:tcpdumptcpdump -i eth0tcpdump -i p2p1 dst port 53 -c 1000 -w asd.pcaptcpdump -i p2p1 dst port 53 -vv -nnlinux系统运行级别:0 关机模式1 单用户模式2 无NFS的多用户模式3 文本模式4 无用5 图形化6 重启 elinks 实现一个纯文本界面的浏览器 yum install -y elinks符号:: 多个命令的分隔符/ 根或者路径的分隔符> 标准输出重定向(数据流朝着箭头的方向流动),覆盖原来的文件>> 追加重定向< 标准输入重定向 指定 输入内容 后跟文件名<< 输入重定向 .. 上一级目录~ 用户的家目录`` 等于$()| 管道 通过管道把前一个命令的输出交给后一个命令继续处理{ } 大括号配合echo打印序列echo{}. 当前目录 (隐藏文件的标识)正则表达式:^ 意思是什么开头 例如^aaa 就是以aaa开头[^aaa] 不是aaa的内容$ 意思是以什么结尾 例如aaa$ 就是以aaa结尾^$ 一起就是空行\ 让一个字符脱掉马甲,还原本来意义 ls -Fl |sed -n '/\/$/p'grep -Ev "^#|^$" /etc/sysconfig/sshdegrep -v "^#|^$" /etc/sysconfig/sshd. 代表且只能代表任意一个字符* 例0* 重复0个或多个前面的一个字符.* 匹配所有字符。^.* 以任意多个字符开头[ ] 字符集合的多个字符[^word] 非 不包含word~ 匹配!~ 不匹配a\{n,m\} 重复n到m次,前一个重复的字符a\{,m\} 重复至多m次,前一个重复的字符\{n,\} 重复至少n次\{n\} 重复n次卸载yum安装的软件 yum remove文件修改显示时间:[root@localhost aaa]# ls -l --time-style=long-isototal 4-rw-r--r--. 2 root root 0 2017-02-13 06:25 aaafile取ip地址:ifconfig eth0|grep " inet add"|cut -d":" -f2|cut -d " " -f1ifconfig eth0|grep " inet add"|awk -F":" '{print $2}'|awk -F " " '{print $1}'ifconfig eth0|awk -F "[:B]" 'NR==2{print $2}'ifconfig eth0|sed -n '/inet addr/p'|sed 's#.*addr:##g'|sed 's# Bc.*$##g'ifconfig eth0|sed -n 's#^.*addr:\(.*\) Bca.*$#\1#gp'取得字符长度:${#word} wc -Lexpr lengthawk取数组中元素:${arr[@]}判断是否为数字:if [[ `expr match "$1" "[0-9][0-9]*$"` == 0 ]]判断文件扩展名:if expr "$1" : ".*\.pub" &>/dev/null将目录权限转换为数字:stat -c %a /etiantian磁盘分区;parted的交互模式:# parted /dev/sdbGNU Parted 1.8.1Using /dev/sdbWelcome to GNU Parted! Type ‘help’ to view a list of commands.(parted) mklabel gpt将MBR磁盘格式化为GPT(parted) mkpart primary 0 100划分一个起始位置为0大小为100M的主分区(parted) mkpart primary 100 200划分一个起始位置为100M大小为100M的主分区(parted) mkpart primary 0 -1划分所有空间到一个分区(parted) print打印当前分区(parted) quit可能还会用到的一些命令(parted) mklable msdos如果要反过来.将GPT磁盘转化为MBR磁盘在这样分完分区后,还要使用mkfs.ext3来进行格式化#partprobe#mkfs.ext3 -F /dev/sdb1由于fdisk是不支持GPT磁盘,所以使用fdisk -l来查看磁盘刚才的分区是没有用的.命令行的模式:将硬盘转化为GPT磁盘后,执行下列命令parted /dev/sdx mkpart primary 0 100 ##划分一个起始位置为0大小为100M的主分区sed:sed '2,5d' 将第 2~5 行删除sed '2d' 只要删除第 2 行sed '3,$d' 要删除第 3 到最后一行sed '2a drink tea' 在第二行后(亦即是加在第三行)加上『drink tea?』字sed '2i drink tea' 在第二行前sed -n '5,7p' 第 5-7 行sed -n '/root/p' 使用-n的时候将只打印包含模板的行。sed '/root/d' 删除/etc/passwd所有包含root的行,其他行输出sed 's/要被取代的字串/新的字串/g'sed -i 's/\.$/\!/g' regular_express.txt 利用 sed 将 regular_express.txt 内每一行结尾若为 . 则换成!sed -i 's/\(.\)\{6\}$//' domain.txt 去掉每行后的6个字符sed 's/.\{6\}//' file 去掉每行的前6个字符grep:grep -v root /etc/passwd 将/etc/passwd,将没有出现 root 的行取出grep -n '^[a-z]' regular_express.txt 开头是小写字节grep -n '^the' regular_express.txt 让 the 只在行首列出grep -n '^[^a-zA-Z]' regular_express.txt 不想要开头是英文字母awk:awk -F ':' '{print $1"\t"$7}' 账户和账户对应的shell,而账户与awk 'NR==3' 读取第三行awk '{print $NF}' 最后一列shell之间以tab键分割awk '{print length($0)}' 取字符串长度diff + sort 快速比较文件差异diff <(sort file1) <(sort file2)vimdiff file1 file2 比较1、在Linux终端运行命令的时候,在命令末尾加上 & 符号,就可以让程序在后台运行root@Ubuntu$ ./tcpserv01 &2、如果程序正在前台运行,可以使用 Ctrl+z 选项把程序暂停,然后用 bg %[number] 命令把这个程序放到后台运行cat@Ubuntu:~/unp/unpv13e/tcpcliserv$ ./tcpserv01^Z[1]+ Stopped ./tcpserv01cat@Ubuntu:~/unp/unpv13e/tcpcliserv$ bg %1[1]+ ./tcpserv01 &cat@Ubuntu:~/unp/unpv13e/tcpcliserv$3、对于所有运行的程序,我们可以用jobs –l 指令查看cat@Ubuntu:~/unp/unpv13e/tcpcliserv$ jobs -l[1]+ 4524 Running ./tcpserv01 &4、也可以用 fg %[number] 指令把一个程序掉到前台运行cat@Ubuntu:~/unp/unpv13e/tcpcliserv$ fg %1./tcpserv015、也可以直接终止后台运行的程序,使用 kill 命令cat@Ubuntu:~/unp/unpv13e/tcpcliserv$ kill %1yum安装错误rm -rf /var/run/yum.pid 来强行解除锁定,然后你的yum就可以运行了yum常用命令 ● 1.列出所有可更新的软件清单命令:yum check-update ● 2.更新所有软件命令:yum update ● 3.仅安装指定的软件命令:yum install <package_name> ● 4.仅更新指定的软件命令:yum update <package_name> ● 5.列出所有可安裝的软件清单命令:yum list ● 6.删除软件包命令:yum remove <package_name> ● 7.查找软件包 命令:yum search <keyword> ● 8.清除缓存命令: ○ yum clean packages: 清除缓存目录下的软件包 ○ yum clean headers: 清除缓存目录下的 headers ○ yum clean oldheaders: 清除缓存目录下旧的 headers ○ yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headersLinux 定时任务实现linux定时任务有:cron、anacron、at等,这里主要介绍cron服务。名词解释: cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表。软件包安装:要使用cron服务,先要安装vixie-cron软件包和crontabs软件包,两个软件包作用如下:vixie-cron软件包是cron的主程序。crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。查看是否安装了cron软件包: rpm -qa|grep vixie-cron查看是否安装了crontabs软件包:rpm -qa|grep crontabs如果没有安装,则执行如下命令安装软件包(软件包必须存在)rpm -ivh vixie-cron-4.1-54.FC5*rpm -ivh crontabs*如果本地没有安装包,在能够连网的情况下可以在线安装yum install vixie-cronyum install crontabs查看crond服务是否运行:pgrep crond或/sbin/service crond status或ps -elf|grep crond|grep -v "grep"crond服务操作命令:/sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置/var/log/cron 日志文件路径ipmi重启服务器ipmitool -I lanplus -H 192.168.0.218 -U root -P dnion power offipmitool -I lanplus -H 192.168.0.218 -U root -P dnion power statusipmitool -I lanplus -H 192.168.0.218 -U root -P dnion power onipmitool -I lanplus -H 192.168.0.218 -U root -P CacheApp power resetipmitool -I open sensor listssh设置更改默认的SSH端口,先打开sshd_config文件vim /etc/ssh/sshd_config找到下面这行:#Port 22去掉#号设置端口号保存service sshd restartcentos每天自动备份mysql数据库#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbinexport PATH#数据库用户名dbuser='root'#数据库用密码dbpasswd='********'需要备份的数据库,多个数据库用空格分开dbname='xiaohuai xiaohuai2'#备份时间backtime=`date +%Y%m%d%H%M%S`#日志备份路径logpath='/home/mysqlbak'#数据备份路径datapath='/home/mysqlbak'#日志记录头部echo ‘"备份时间为${backtime},备份数据库表 ${dbname} 开始" >> ${logpath}/log.log#正式备份数据库for table in $dbname; dosource=`mysqldump -u ${dbuser} -p${dbpasswd} ${table}> ${logpath}/${backtime}.sql` 2>> ${logpath}/mysqllog.log;#备份成功以下操作if [ "$?" == 0 ];thencd $datapath#为节约硬盘空间,将数据库压缩tar jcf ${table}${backtime}.tar.bz2 ${backtime}.sql > /dev/null#删除原始文件,只留压缩后文件rm -f ${datapath}/${backtime}.sql#删除七天前备份,也就是只保存7天内的备份find $datapath -name "*.tar.bz2" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1echo "数据库表 ${dbname} 备份成功!!" >> ${logpath}/mysqllog.logelse#备份失败则进行以下操作echo "数据库表 ${dbname} 备份失败!!" >> ${logpath}/mysqllog.logfidone如果这个sh文件是在win下编辑的,需要用Uedit转换为unix格式,否则sh会执行不成功,如图另外,一定要记得给这个sh文件执行权限1chmod +x /home/sh/mysqlbak.sh定时执行脚本:方式:1、执行 crontab -e输入以下内容:______________________________________________________________________________00 00 * * * /bin/bash yourpath/mysqlbak.sh2、打开自动执行文件vi /etc/crontab在etc中加入如下内容,让其自动执行任务。00 00 * * * root /mysqlbak.sh以上两个 00 00 *** 为每天的凌晨自动执行脚本分 时 日 月 周 命令M: 分钟(0-59)。每分钟用*或者 */1表示H:小时(0-23)。(0表示0点)D:天(1-31)。m: 月(1-12)。d: 一星期内的天(0~6,0为星期天)。另外,测试的时候可以直接进入sh目录下执行# sh sh ./mysqlbak.sh等执行完了看看#日志备份路径logpath='/home/mysqlbak'这个目录下有没有备份文件,如果有,则表示sh执行成功,没有错误。Linux下模拟多线程的并发并发shell脚本 分享一个在Linux下模拟多线程的并发脚本,使用这个脚本可以同时批量在定义数量的服务器上执行相关命令,比起普通for/while循环只能顺序一条一条执行的效率高非常多,在管理大批服务器时非常的实用。 以下脚本功能是通过scp(也可选rsync)向上千台服务器传更新包,脚本运行后同时在后台有50个scp进程向服务器传包。#!/bin/baship=`cat iplist.txt|grep -v "#"|awk '{print $1}'` #过滤服务器IPdir='/usr/local/src' #目标路径thead_num=50 #自定义并发数,根据自身服务器性能或应用调整大小,开始千万别定义太大,避免管理机宕机tmp_fifo_file="/tmp/$$.fifo" #以进程ID号命名管道文件mkfifo $tmp_fifo_file #创建临时管道文件exec 4<>$tmp_fifo_file #以读写方式打开tmp_fifo_file管道文件,文件描述符为4,也可以取3-9任意描述符rm -f $tmp_fifo_file #删除临时管道文件,也可不删除服务器压力测试:ApacheBench用法详解:在Linux系统,一般安装好Apache后可以直接执行;# ab -n 1000 -c 100 http://10.1.1.128/test.php//n后面的代表总共发出1000个请求;-c后面的100表示采用100个并发(模拟100个人同时访问),后面的网址表示测试的目标URL。paste file1 file2 合并两个文件或两栏的内容paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分sort file1 file2 排序两个文件的内容sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份)sort file1 file2 | uniq -u 删除交集,留下其他的行sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分字符设置和文件格式转换dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIXunix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOSrecode ..HTML < page.txt > page.html 将一个文本文件转换成htmlrecode -l | more 显示所有允许的转换格式文件系统分析badblocks -v /dev/hda1 检查磁盘hda1上的坏磁块fsck /dev/hda1 修复/检查hda1磁盘上linux文件系统的完整性fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性fsck.msdos /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性dosfsck /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性初始化一个文件系统mkfs /dev/hda1 在hda1分区创建一个文件系统mke2fs /dev/hda1 在hda1分区创建一个linux ext2的文件系统mke2fs -j /dev/hda1 在hda1分区创建一个linux ext3(日志型)的文件系统mkfs -t vfat 32 -F /dev/hda1 创建一个 FAT32 文件系统fdformat -n /dev/fd0 格式化一个软盘mkswap /dev/hda3 创建一个swap文件系统mke2fs -t ext3 /dev/sda5 #把分区格式为ext3格式的mke2fs -t ext3 -b 2048 /dev/sda5 # 把分区的块改成2048字节,一般用于系统中小文件很多的情况mke2fs -t ext3 -m 3 /dev/sda5 #把分区预留的空间改为所占总空间的3%,默认为5%,因为当某个分区足够大的时候,可以减少空间mke2fs -t ext3 -L DATE /dev/sda5 #把分区的卷标设置为DATESWAP文件系统mkswap /dev/hda3 创建一个swap文件系统swapon /dev/hda3 启用一个新的swap文件系统swapon /dev/hda2 /dev/hdb3 启用两个swap分区备份dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的完整备份dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的交互式备份restore -if /tmp/home0.bak 还原一个交互式备份rsync -rogpav --delete /home /tmp 同步两边的目录rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsyncrsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远程主机上执行一次备份本地磁盘的操作dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件tar -Puf backup.tar /home/user 执行一次对 '/home/user' 目录的交互式备份操作( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通过ssh在远程目录中复制一个目录内容( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通过ssh在远程目录中复制一个本地目录tar cf - . | (cd /tmp/backup ; tar xf - ) 本地将一个目录复制到另一个地方,保留原有权限及链接find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 结尾的文件并做成一个bzip包dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已经保存到软盘的备份中恢复MBR内容光盘cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一个可复写的光盘内容mkisofs /dev/cdrom > cd.iso 在磁盘上创建一个光盘的iso镜像文件dd if=/dev/cdrom of=/root/cd.isomkisofs /dev/cdrom | gzip > cd_iso.gz 在磁盘上创建一个压缩了的光盘iso镜像文件mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 创建一个目录的iso镜像文件cdrecord -v dev=/dev/cdrom cd.iso 刻录一个ISO镜像文件gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 刻录一个压缩了的ISO镜像文件mount -o loop cd.iso /mnt/iso 挂载一个ISO镜像文件cd-paranoia -B 从一个CD光盘转录音轨到 wav 文件中cd-paranoia -- "-3" 从一个CD光盘转录音轨到 wav 文件中(参数-3)cdrecord --scanbus 扫描总线以识别scsi通道dd if=/dev/hdc | md5sum 校验一个设备的md5sum编码,例如一张 CD
浙公网安备 33010602011771号