工作中记录的命令和知识点(不断更新)
linux命令收集 mkdir 创建目录 -p递归创建 mkdir -p /data/aaa.txt ls –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.txt tail 尾部 显示文件尾部 -n 行数 默认尾部10行 tail -1 test.txt grep (过滤)-v 排除 grep -v 排除内容 文件路径 grep -v aaa test.txt sed 取各种内容 -n取消默认输出 p打印 d删除 sed -n /aaa/p test.txt LANG=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}' cc awk -F ":" '{print $1}' /etc/passwd xargs 用于把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指定sh useradd xiao && echo 123456 | passwd --stdin xiao 快速添加用户和密码 usermod 修改用户信息 userdel 删除用户 groupadd 添加组 –g passwd --stdin 修改用户密码,如果不指定用户,则修改当前用户密码,普通用户只能改自己的密码 chage 命令是用来修改帐号和密码的有效期限。 whoami 查看当前命令行终端用户 w 查看是哪个用户登录且使用情况 su 切换用户角色 注意要带上 - sudo 让普通用户可以拥有指定用户root的权限的命令 yum 包管理工具 解决rpm包的依赖 yum info xx 查看软件详细信息 yum list all xx 查看软件安装版本 rpm -ivh 软件安装命令 rpm -ivh 包名.rpm rpm -ql xx 查看软件安装文件路劲 chkconfig 查看设置开机自启动软件的命令 -add/ --list netstat 查看网络状态-lntup 或-an [--tcp |t] [--udp|-u] [--listening|-l ][--all|-a] [--numeric|-n] [--program|-p] lsof -i :port 查看端口 ,list open files uname -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 -1 echo –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.img dd 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 –D userdel 删除用户 -r usermod 修改用户 groupadd 添加用户 groupdel 删除组 passwd 修改密码 --stdin chage 修改密码过期属性 -l -E su 切换用户角色 - -c visudo 编辑sudo配置文件 id 查看用户身份 w who lastlog whoami finger chmod 目录授权 -R 目录及子目录 chown 修改目录所属主 chattr +i(-i) 文件名 锁定文件(取消锁定)不可删除与清空 chattr +a(-a) 文件名 添加内容(只可添加内容) 使用lsattr 文件名 查看文件的特殊权限 root用户默认创建的目录权限是755,文件权限是644 普通用户默认创建的目录权限是775,文件权限是664 umask 禁止权限 umount 卸载命令 -lf强制卸载 dd convert and copy a file (dd if=/dev/sda of=mbr.bin bs=512 count=1) mkfs 格式化命令 -t 文件系统类型mkfs.ext3 df -h 查看磁盘挂载信息 du –sh 查看文件及目录总大小 du -sh * 查看每个目录的大小 time 计算一个任务执行时间 uniq 去重 -c 计数 sort 排序(ascll) -r 逆序 -n 按数值 -u 除去重复项 -t 指定字段分隔符 -k 指定排序字段 sort -t':' -k 3 -n /etc/passwd date -s 修改时间 chgrp 改变用户组 -R 递归 fgrep -r "hello world" ./* 查询当前目标下,包含hello world的文件 磁盘分区: fdisk 磁盘分区的命令 -l 查看列表 小于2T的分区工具 parted GUN磁盘分区工具,适合大于2T的分区工具 mount 挂载的命令 –t 文件系统类型 –o挂载的选项 –a umount 卸载的命令 –lf强制卸载 mkfs 格式化命令 -t 文件系统类型mkfs.ext3 lsof –i:端口号 查看端口号对应的协议 netstat -lntup 查看协议对应的端口号 ethtool -i 网卡名 查看网卡名 env 显示所有的环境变量 export 显示当前环境变量 locale 显示系统编码 tee 记录消息 (覆盖) -a (追加) at 定时任务 at -f test1.sh 00:28 atq 显示定时任务 atrm 56 删除定时任务 test -f file && echo true || echo false 测试文件是否存在 -z 字符串的长度为0 [ -f file ] [ -z ] 长度为0 [ -n ]长度不为0 rename 批量修改扩展名 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 htop iostat 对系统的磁盘IO操作进行监视。显示磁盘读写操作的统计信息 free 监控linux内存使用的指令 -m 兆为单位 -g G为单位 当观察到free栏已为0的时候,表示内存基本被吃完了,那就释放内存吧。 dmidecode -t 1 查看设备信息 dmidecode -s system-serial-number 查看序列号 释放内存: sync echo 3 > /proc/sys/vm/drop_caches uptime 统计系统当前的运行状况 rename "jpg" "txt" *.jpg 把jpg改为txt shuf -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 --ipc PS1='\[\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\ %T 2013-04-14 03:03:39 mysql自动补全: 在mysql下执行:rehash; 小结: sed 擅长打印行 awk 擅长打印列 修改主机名的步骤: 1)hostname jianlai 2)vi /etc/syscofnig/network 3) vi /etc/hosts 修改网卡:编辑配置文件,然后/etc/init.d/network restart 重启网卡 ifup eth0 启动网卡 ifdown eth0 关闭网卡 ifconfig eth0:X 10.0.0.23/24 up 配置别名ip ifoconfig eth0:X down 停掉 ip addr add 192.168.160.138/24 dev eth0 添加临时ip iwconfig 查看无线网卡 配置默认网关: route add default gw 10.0.2.3 添加默认网关 route del default gw 10.0.2.3 删除默认网关 如果你添加/修改默认网关时遇到这个问题。 原因:你要添加的网关不在你主机所在的网段。 解决方法: 比如你要添加的网关是10.57.50.1 sudo 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 eth0 DNS域名解析: nslookup dig host url下载: wget curl 网络检查: Ping 路由追踪: traceroute 端口扫描: nmap nc telnet 可能防火墙 抓包工具: tcpdump tcpdump -i eth0 tcpdump -i p2p1 dst port 53 -c 1000 -w asd.pcap tcpdump -i p2p1 dst port 53 -vv -nn linux系统运行级别: 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/sshd egrep -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-iso total 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 " " -f1 ifconfig 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 -L expr length awk 取数组中元素:${arr[@]} 判断是否为数字: if [[ `expr match "$1" "[0-9][0-9]*$"` == 0 ]] 判断文件扩展名: if expr "$1" : ".*\.pub" &>/dev/null 将目录权限转换为数字:stat -c %a /etiantian 磁盘分区; parted的交互模式: # parted /dev/sdb GNU Parted 1.8.1 Using /dev/sdb Welcome 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 ./tcpserv01 cat@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 ./tcpserv01 5、也可以直接终止后台运行的程序,使用 kill 命令 cat@Ubuntu:~/unp/unpv13e/tcpcliserv$ kill %1 yum安装错误 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) :清除缓存目录下的软件包及旧的headers Linux 定时任务 实现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-cron yum 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 off ipmitool -I lanplus -H 192.168.0.218 -U root -P dnion power status ipmitool -I lanplus -H 192.168.0.218 -U root -P dnion power on ipmitool -I lanplus -H 192.168.0.218 -U root -P CacheApp power reset ipmitool -I open sensor list ssh设置 更改默认的SSH端口,先打开sshd_config文件 vim /etc/ssh/sshd_config 找到下面这行: #Port 22 去掉#号设置端口号保存 service sshd restart centos每天自动备份mysql数据库 #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin export 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; do source=`mysqldump -u ${dbuser} -p${dbpasswd} ${table}> ${logpath}/${backtime}.sql` 2>> ${logpath}/mysqllog.log; #备份成功以下操作 if [ "$?" == 0 ];then cd $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>&1 echo "数据库表 ${dbname} 备份成功!!" >> ${logpath}/mysqllog.log else #备份失败则进行以下操作 echo "数据库表 ${dbname} 备份失败!!" >> ${logpath}/mysqllog.log fi done 如果这个sh文件是在win下编辑的,需要用Uedit转换为unix格式,否则sh会执行不成功,如图 另外,一定要记得给这个sh文件执行权限 1chmod +x /home/sh/mysqlbak.sh 定时执行脚本: 方式: 1、 执行 crontab -e 输入以下内容: ______________________________________________________________________________ 00 00 * * * /bin/bash yourpath/mysqlbak.sh 2、 打开自动执行文件 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/bash ip=`cat iplist.txt|grep -v "#"|awk '{print $1}'` #过滤服务器IP dir='/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转换成UNIX unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS recode ..HTML < page.txt > page.html 将一个文本文件转换成html recode -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 #把分区的卷标设置为DATE SWAP文件系统 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通道rsync rsync -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.iso mkisofs /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
查看最大进程数 sysctl kernel.pid_max
查看当前进程数 ps -eLf | wc -l
如对您有帮助,支持下呗!
微信
支付宝