touch file # 建立空白文件 rm -rf 目录名 # 不提示删除非空目录(-r:递归删除 -f强制) dos2unix # windows文本转linux文本 unix2dos # linux文本转windows文本 enca filename # 查看编码 安装 yum install -y enca md5sum # 查看md5值 ln 源文件 目标文件 # 硬连接 ln -s 源文件 目标文件 # 符号链接 readlink -f /data # 查看链接真实目录 cat file | nl |less # 查看上下翻页且显示行号 q退出 head # 查看文件开头内容 head -c 10m # 截取文件中10m内容 split -c 10m # 将文件切割大小为10m tail -f file # 查看结尾 监视日志文件 file # 检查文件类型 umask # 更改默认权限 uniq # 删除重复的行 uniq -c # 重复的行出现次数 uniq -u # 只显示不重复行 paste a b # 将两个文件合并用tab键分隔开 paste -d'+' a b # 将两个文件合并指定'+'符号隔开 paste -s a # 将多行数据合并到一行用tab键隔开 chattr +i /etc/passwd # 设置不可改变位 more # 向下分面器 locate 字符串 # 搜索 wc -l file # 查看行数 cp filename{,.bak} # 快速备份一个文件 \cp a b # 拷贝不提示 既不使用别名 cp -i rev # 将行中的字符逆序排列 comm -12 2 3 # 行和行比较匹配 iconv -f gbk -t utf8 原.txt > 新.txt # 转换编码 rename 原模式 目标模式 文件 #重命名,可正则 watch -d -n 1 'df; ls -flat /path' # 实时某个目录下查看最新改动过的文件 cp -v /dev/dvd /rhel4.6.Iphone 苹果 ios 9660 # 制做镜像 diff suzu.c suzu2.c > sz.patch # 制做补丁 patch suzu.c < sz.patch # 安装补丁
-t # 指定排序时所用的栏位分隔字符 -n # 依照数值的大小排序 -r # 以相反的顺序来排序 -f # 排序时,将小写字母视为大写字母 -d # 排序时,处理英文字母、数字及空格字符外,忽略其余的字符 -c # 检查文件是否已经按照顺序排序 -b # 忽略每行前面开始处的空格字符 -m # 前面3个字母依照月份的缩写进行排序 -k # 指定域 -m # 将几个排序好的文件进行合并 +<起始栏位>-<结束栏位> # 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。 -o # 将排序后的结果存入指定的文 n # 表示进行排序 r # 表示逆序 sort -n # 按数字排序 sort -nr # 按数字倒叙 sort -u # 过滤重复行 sort -m a.txt c.txt # 将两个文件内容整合到一块儿 sort -n -t' ' -k 2 -k 3 a.txt # 第二域相同,将从第三域进行升降处理 sort -n -t':' -k 3r a.txt # 以:为分割域的第三域进行倒叙排列 sort -k 1.3 a.txt # 从第三个字母起进行排序 sort -t" " -k 2n -u a.txt # 以第二域进行排序,若是遇到重复的,就删除
# linux文件无建立时间 # access 使用时间 # modify 内容修改时间 # change 状态改变时间(权限、属主) # 时间默认以24小时为单位,当前时间到向前24小时为0天,向前48-72小时为2天 # -and 且 匹配两个条件 参数能够肯定时间范围 -mtime +2 -and -mtime -4 # -or 或 匹配任意一个条件 find /etc -name http # 按文件名查找 find . -type f # 查找某一类型文件 find / -perm # 按照文件权限查找 find / -user # 按照文件属主查找 find / -group # 按照文件所属的组来查找文件 find / -atime -n # 文件使用时间在n天之内 find / -atime +n # 文件使用时间在n天之前 find / -mtime -n # 文件内容改变时间在n天之内 find / -mtime +n # 文件内容改变时间在n天之前 find / -ctime +n # 文件状态改变时间在n天前 find / -ctime -n # 文件状态改变时间在n天内 find / -size +1000000c -print # 查找文件长度大于1m字节的文件 find /etc -name "passwd*" -exec grep "xuesong" {} \; # 按名字查找文件传递给-exec后命令 find . -name 't*' -exec basename {} \; # 查找文件名,不取路径 find . -type f -name "err*" -exec rename err err {} \; # 批量更名(查找err 替换为 err {}文件 find 路径 -name *name1* -or -name *name2* # 查找任意一个关键字
tar zxvpf gz.tar.gz -c 放到指定目录 包中的目录 # 解包tar.gz 不指定目录则全解压 tar zcvpf /$path/gz.tar.gz * # 打包gz 注意*最好用相对路径 tar zcf /$path/gz.tar.gz * # 打包正确不提示 tar ztvpf gz.tar.gz # 查看gz tar xvf 1.tar -c 目录 # 解包tar tar -cvf 1.tar * # 打包tar tar tvf 1.tar # 查看tar tar -rvf 1.tar 文件名 # 给tar追加文件 tar --exclude=/home/dmtsai -zcvf myfile.tar.gz /home/* /etc # 打包/home, /etc ,但排除 /home/dmtsai tar -n "2005/06/01" -zcvf home.tar.gz /home # 在 /home 当中,比 2005/06/01 新的文件才备份 tar -zcvfh home.tar.gz /home # 打包目录中包括链接目录 zgrep 字符 1.gz # 查看压缩包中文件字符行 bzip2 -dv 1.tar.bz2 # 解压bzip2 bzip2 -v 1.tar # bzip2压缩 bzcat # 查看bzip2 gzip a # 直接压缩文件 # 压缩后源文件消失 gunzip a.gz # 直接解压文件 # 解压后源文件消失 gzip -dv 1.tar.gz # 解压gzip到tar gzip -v 1.tar # 压缩tar到gz unzip zip.zip # 解压zip zip zip.zip * # 压缩zip # rar3.6下载: http://www.rarsoft.com/rar/rarlinux-3.6.0.tar.gz rar a rar.rar *.jpg # 压缩文件为rar包 unrar x rar.rar # 解压rar包 7z a 7z.7z * # 7z压缩 7z e 7z.7z # 7z解压
uname -a # 查看linux内核版本信息 cat /proc/version # 查看内核版本 cat /etc/issue # 查看系统版本 lsb_release -a # 查看系统版本 需安装 centos-release locale -a # 列出全部语系 hwclock # 查看时间 who # 当前在线用户 w # 当前在线用户 whoami # 查看当前用户名 logname # 查看初始登录用户名 uptime # 查看服务器启动时间 sar -n dev 1 10 # 查看网卡网速流量 dmesg # 显示开机信息 lsmod # 查看内核模块
more /proc/cpuinfo # 查看cpu信息 cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c # 查看cpu型号和逻辑核心数 getconf long_bit # cpu运行的位数 cat /proc/cpuinfo | grep physical | uniq -c # 物理cpu个数 cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l # 结果大于0支持64位 cat /proc/cpuinfo|grep flags # 查看cpu是否支持虚拟化 pae支持半虚拟化 intelvt 支持全虚拟化 more /proc/meminfo # 查看内存信息 dmidecode # 查看全面其余硬件 信息 dmidecode | grep "product name" # 查看服务器型号 dmidecode | grep -p -a5 "memory\s+device" | grep size | grep -v range # 查看内存插槽 cat /proc/mdstat # 查看软raid信息 cat /proc/scsi/scsi # 查看dell硬raid信息(ibm、hp须要官方检测工具) lspci # 查看其余硬件 信息 lspci|grep raid # 查看是否支持raid lspci -vvv |grep ethernet # 查看网卡型号 lspci -vvv |grep kernel|grep driver # 查看驱动模块 modinfo tg2 # 查看驱动版本(驱动模块) ethtool -i em1 # 查看网卡驱动版本
wall # 给其它用户发消息 whereis ls # 查找命令的目录 which # 查看当前要执行的命令所在的路径 clear # 清空整个屏幕 reset # 从新初始化屏幕 cal # 显示月历 echo -n 123456 | md5sum # md5加密 mkpasswd # 随机生成密码 -l位数 -c大小 -c小写 -d数字 -s特殊字符 netstat -anlp | grep port # 是否打开了某个端口 ntpdate stdtime.gov.hk # 同步时间 tzselect # 选择时区 #+8=(5 9 1 1) # (tz='asia/shanghai'; export tz)括号内写入 /etc/profile /sbin/hwclock -w # 保存到其余硬件 /etc/shadow # 帐户影子文件 lang=en # 修改语言 vim /etc/sysconfig/i18n # 修改编码 lang="en_us.utf-8" export lc_all=c # 强制字符集 vi /etc/hosts # 查询静态主机名 alias # 别名 watch uptime # 监测命令动态刷新 ipcs -a # 查看linux系统当前单个共享内存段的最大值 lsof |grep /lib # 查看加载库文件 ldconfig # 动态连接库管理命令 dist-upgrade # 会改变配置文件,改变旧的依赖关系,改变系统版本 /boot/grub/grub.conf # grub启动项配置 sysctl -p # 修改内核参数/etc/sysctl.conf,让/etc/rc.d/rc.sysinit读取生效 mkpasswd -l 8 -c 2 -c 2 -d 4 -s 0 # 随机生成指定类型密码 echo 1 > /proc/sys/net/ipv4/tcp_syncookies # 使tcp syn cookie 保护生效 # "syn attack"是一种拒绝服务的攻击方式
ps -eaf # 查看全部进程 kill -9 pid # 强制终止某个pid进程 kill -15 pid # 安全退出 需程序内部处理信号 cmd & # 命令后台运行 nohup cmd & # 后台运行不受shell退出影响 ctrl+z # 将前台放入后台(暂停) jobs # 查看后台运行程序 bg 2 # 启动后台暂停进程 fg 2 # 调回后台进程 pstree # 进程树 vmstat 1 9 # 每隔一秒报告系统性能信息9次 sar # 查看cpu等状态 lsof file # 显示打开指定文件的全部进程 lsof -i:32768 # 查看端口的进程 renice +1 180 # 把180号进程的优先级加1 ps aux |grep -v user | sort -nk +4 | tail # 显示消耗内存最多的10个运行中的进程,之内存使用量排序.cpu+3
前五行是系统总体的统计信息。 第一行: 任务队列信息,同 uptime 命令的执行结果。内容以下: 01:06:48 当前时间 up 1:22 系统运行时间,格式为时:分 1 user 当前登陆用户数 load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到如今的平均值。 第2、三行:为进程和cpu的信息。当有多个cpu时,这些内容可能会超过两行。内容以下: tasks: 29 total 进程总数 1 running 正在运行的进程数 28 sleeping 睡眠的进程数 0 stopped 中止的进程数 0 zombie 僵尸进程数 cpu(s): 0.3% us 用户空间占用cpu百分比 1.0% sy 内核空间占用cpu百分比 0.0% ni 用户进程空间内改变过优先级的进程占用cpu百分比 98.7% id 空闲cpu百分比 0.0% wa 等待输入输出的cpu时间百分比 0.0% hi 0.0% si 第4、五行:为内存信息。内容以下: mem: 191272k total 物理内存总量 173656k used 使用的物理内存总量 17616k free 空闲内存总量 22052k buffers 用做内核缓存的内存量 swap: 192772k total 交换区总量 0k used 使用的交换区总量 192772k free 空闲交换区总量 123988k cached 缓冲的交换区总量。 内存中的内容被换出到交换区,然后又被换入到内存,但使用过的交换区还没有被覆盖, 该数值即为这些内容已存在于内存中的交换区的大小。 相应的内存再次被换出时可,没必要再对交换区写入
进程信息区,各列的含义以下: # 显示各个进程的详细信息node
序号 列名 含义 a pid 进程id b ppid 父进程id c ruser real user name d uid 进程全部者的用户id e user 进程全部者的用户名 f group 进程全部者的组名 g tty 启动进程的终端名。不是从终端启动的进程则显示为 ? h pr 优先级 i ni nice值。负值表示高优先级,正值表示低优先级 j p 最后使用的cpu,仅在多cpu环境下有意义 k %cpu 上次更新到如今的cpu时间占用百分比 l time 进程使用的cpu时间总计,单位秒 m time+ 进程使用的cpu时间总计,单位1/100秒 n %mem 进程使用的物理内存百分比 o virt 进程使用的虚拟内存总量,单位kb。virt=swap+res p swap 进程使用的虚拟内存中,被换出的大小,单位kb。 q res 进程使用的、未被换出的物理内存大小,单位kb。res=code+data r code 可执行代码占用的物理内存大小,单位kb s data 可执行代码之外的部分(数据段+栈)占用的物理内存大小,单位kb t shr 共享内存大小,单位kb u nflt 页面错误次数 v ndrt 最后一次写入到如今,被修改过的页面数。 w s 进程状态。 d=不可中断的睡眠状态 r=运行 s=睡眠 t=跟踪/中止 z=僵尸进程 x command 命令名/命令行 y wchan 若该进程在睡眠,则显示睡眠中的系统函数名 z flags 任务标志,参考 sched.h
kill -l # 查看linux提供的信号 trap "echo aaa" 2 3 15 # shell使用 trap 捕捉退出信号 # 发送信号通常有两种缘由: # 1(被动式) 内核检测到一个系统事件.例如子进程退出会像父进程发送sigchld信号.键盘按下control+c会发送sigint信号 # 2(主动式) 经过系统调用kill来向指定进程发送信号 # 进程结束信号 sigterm 和 sigkill 的区别: sigterm 比较友好,进程能捕捉这个信号,根据您的须要来关闭程序。在关闭程序以前,您能够结束打开的记录文件和完成正在作的任务。在某些状况下,假如进程正在进行做业并且不能中断,那么进程能够忽略这个sigterm信号。 # 若是一个进程收到一个sigusr1信号,而后执行信号绑定函数,第二个sigusr2信号又来了,第一个信号没有被处理完毕的话,第二个信号就会丢弃。 sighup 1 a # 终端挂起或者控制进程终止 sigint 2 a # 键盘终端进程(如control+c) sigquit 3 c # 键盘的退出键被按下 sigill 4 c # 非法指令 sigabrt 6 c # 由abort(3)发出的退出指令 sigfpe 8 c # 浮点异常 sigkill 9 aef # kill信号 马上中止 sigsegv 11 c # 无效的内存引用 sigpipe 13 a # 管道破裂: 写一个没有读端口的管道 sigalrm 14 a # 闹钟信号 由alarm(2)发出的信号 sigterm 15 a # 终止信号,可以让程序安全退出 kill -15 sigusr1 30,10,16 a # 用户自定义信号1 sigusr2 31,12,17 a # 用户自定义信号2 sigchld 20,17,18 b # 子进程结束自动向父进程发送sigchld信号 sigcont 19,18,25 # 进程继续(曾被中止的进程) sigstop 17,19,23 def # 终止进程 sigtstp 18,20,24 d # 控制终端(tty)上按下中止键 sigttin 21,21,26 d # 后台进程企图从控制终端读 sigttou 22,22,27 d # 后台进程企图从控制终端写 缺省处理动做一项中的字母含义以下: a 缺省的动做是终止进程 b 缺省的动做是忽略此信号,将该信号丢弃,不作处理 c 缺省的动做是终止进程并进 行内核映像转储(dump core),内核映像转储是指将进程数据在内存的映像和进程在内核结构中的部份内容以必定格式转储到文件系统,而且进程退出执行,这样作的好处是为程序员提供了方便,使得他们能够获得进程当时执行时的数据值,容许他们肯定转储的缘由,而且能够调试他们的程序。 d 缺省的动做是中止进程,进入中止情况之后还能从新进行下去,通常是在调试的过程当中(例如ptrace系统调用) e 信号不能被捕获 f 信号不能被忽略
at 5pm + 3 days /bin/ls # 单次定时任务 指定三天后下午5:00执行/bin/ls crontab -e # 编辑周期任务 #分钟 小时 天 月 星期 命令或脚本 1,30 1-3/2 * * * 命令或脚本 >> file.log 2>&1 echo "40 7 * * 2 /root/sh">>/var/spool/cron/root # 直接将命令写入周期任务 crontab -l # 查看自动周期性任务 crontab -r # 删除自动周期性任务 cron.deny和cron.allow # 禁止或容许用户使用周期任务 service crond start|stop|rest art # 启动自动周期性服务
history # 历时命令默认1000条 histtimeformat="%y-%m-%d %h:%m:%s " # 让history命令显示具体时间 history -c # 清除记录命令 cat $home/.bash_history # 历史命令记录文件 last # 查看登录过的用户信息 who /var/log/wtmp # 查看登录过的用户信息 lastlog # 用户最后登陆的时间 lastb -a # 列出登陆系统失败的用户相关信息 /var/log/btmp # 登陆失败二进制日志记录文件 tail -f /var/log/messages # 系统日志 tail -f /var/log/secure # ssh日志
sestatus -v # 查看selinux状态 getenforce # 查看selinux模式 setenforce 0 # 设置selinux为宽容模式(可避免阻止一些操做) semanage port -l # 查看selinux端口限制规则 semanage port -a -t http_port_t -p tcp 8000 # 在selinux中注册端口类型 vi /etc/selinux/config # selinux配置文件 selinux=enfoceing # 关闭selinux 把其修改成 selinux=disabled
内建三个表:nat mangle 和 filtermysql
filter预设规则表,有input、forward 和 output 三个规则链linux
vi /etc/sysconfig/iptables # 配置文件 input # 进入 forward # 转发 output # 出去 accept # 将封包放行 reject # 拦阻该封包 drop # 丢弃封包不予处理 -a # 在所选择的链(input等)末添加一条或更多规则 -d # 删除一条 -e # 修改 -p # tcp、udp、icmp 0至关于全部all !取反 -p # 设置缺省策略(与全部链都不匹配强制使用此策略) -s # ip/掩码 (ip/24) 主机名、网络名和清楚的ip地址 !取反 -j # 目标跳转,当即决定包的命运的专用内建目标 -i # 进入的(网络)接口 [名称] eth0 -o # 输出接口[名称] -m # 模块 --sport # 源端口 --dport # 目标端口 iptables -f # 将防火墙中的规则条目清除掉 # 注意: iptables -p input accept iptables-rest ore < 规则文件 # 导入防火墙规则 /etc/init.d/iptables save # 保存防火墙设置 /etc/init.d/iptables rest art # 重启防火墙服务 iptables -l -n # 查看规则 iptables -t nat -nl # 查看转发
iptables实例ios
iptables -l input # 列出某规则链中的全部规则 iptables -x allowed # 删除某个规则链 ,不加规则链,清除全部非内建的 iptables -z input # 将封包计数器归零 iptables -n allowed # 定义新的规则链 iptables -p input drop # 定义过滤政策 iptables -a input -s 192.168.1.1 # 比对封包的来源ip # ! 192.168.0.0/24 ! 反向对比 iptables -a input -d 192.168.1.1 # 比对封包的目的地ip iptables -a input -i eth0 # 比对封包是从哪片网卡进入 iptables -a forward -o eth0 # 比对封包要从哪片网卡送出 eth+表示全部的网卡 iptables -a input -p tcp # -p ! tcp 排除tcp之外的udp、icmp。-p all全部类型 iptables -d input 8 # 从某个规则链中删除一条规则 iptables -d input --dport 80 -j drop # 从某个规则链中删除一条规则 iptables -r input 8 -s 192.168.0.1 -j drop # 取代现行规则 iptables -i input 8 --dport 80 -j accept # 插入一条规则 iptables -a input -i eth0 -j drop # 其它状况不容许 iptables -a input -p tcp -s ip -j drop # 禁止指定ip访问 iptables -a input -p tcp -s ip --dport port -j drop # 禁止指定ip访问端口 iptables -a input -s ip -p tcp --dport port -j accept # 容许在ip访问指定端口 iptables -a input -p tcp --dport 22 -j drop # 禁止使用某端口 iptables -a input -i eth0 -p icmp -m icmp --icmp-type 8 -j drop # 禁止icmp端口 iptables -a input -i eth0 -p icmp -j drop # 禁止icmp端口 iptables -t filter -a input -i eth0 -p tcp --syn -j drop # 阻止全部没有通过你系统受权的tcp链接 iptables -a input -f -m limit --limit 100/s --limit-burst 100 -j accept # ip包流量限制 iptables -a input -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type 8 -j accept # 除192.168.62.1外,禁止其它人ping个人主机 iptables -a input -p tcp -m tcp --dport 80 -m state --state new -m recent --update --seconds 5 --hitcount 20 --rttl --name web --rsource -j drop
iptables配置实例文件程序员
# generated by iptables-save v1.2.11 on fri feb 9 12:10:37 2007 *filter :input accept [637:58967] :forward drop [0:0] :output accept [5091:1301533] # 容许的ip或ip段访问 建议多个 -a input -s 127.0.0.1 -p tcp -j accept -a input -s 192.168.0.0/255.255.0.0 -p tcp -j accept # 开放对外开放端口 -a input -p tcp --dport 80 -j accept # 指定某端口针对ip开放 -a input -s 192.168.10.37 -p tcp --dport 22 -j accept # 拒绝全部协议(input容许) -a input -p tcp -m tcp --tcp-flags fin,syn,rst,psh,urg rst -j drop # 容许已创建的或相关连的通行 iptables -a input -m state --state established,related -j accept # 拒绝ping -a input -p tcp -m tcp -j reject --reject-with icmp-port-unreachable commit # completed on fri feb 9 12:10:37 2007
iptables配置实例web
# 容许某段ip访问任何端口 iptables -a input -s 192.168.0.3/24 -p tcp -j accept # 设定预设规则 (拒绝全部的数据包,再容许须要的,如只作其余web服务器 .仍是推荐三个链都是drop) iptables -p input drop iptables -p forward drop iptables -p output accept # 注意: 直接设置这三条会掉线 # 开启22端口 iptables -a input -p tcp --dport 22 -j accept # 若是output 设置成drop的,要写上下面一条 iptables -a output -p tcp --sport 22 -j accept # 注:不写致使没法ssh.其余的端口同样,output设置成drop的话,也要添加一条链 # 若是开启了其余web服务器 ,output设置成drop的话,一样也要添加一条链 iptables -a output -p tcp --sport 80 -j accept # 作其余web服务器 ,开启80端口 ,其余同理 iptables -a input -p tcp --dport 80 -j accept # 作邮件服务器,开启25,110端口 iptables -a input -p tcp --dport 110 -j accept iptables -a input -p tcp --dport 25 -j accept # 容许icmp包经过,容许ping iptables -a output -p icmp -j accept (output设置成drop的话) iptables -a input -p icmp -j accept (input设置成drop的话) # 容许loopback!(否则会致使dns没法正常关闭等问题) iptables -a input -i lo -p all -j accept (若是是input drop) iptables -a output -o lo -p all -j accept(若是是output drop)
free -m #-/+ buffers/cache: 6458 1649 #6458m为真实使用内存 1649m为真实剩余内存(剩余内存+缓存+缓冲器) #linux会利用全部的剩余内存做为缓存,因此要保证linux运行速度,就须要保证内存的缓存大小
date -s 20091112 # 设日期 date -s 18:30:50 # 设时间 date -d "7 days ago" +%y%m%d # 7天前日期 date -d "5 minute ago" +%h:%m # 5分钟前时间 date -d "1 month ago" +%y%m%d # 一个月前 date +%y-%m-%d -d '20110902' # 日期格式转换 date +%y-%m-%d_%x # 日期和时间 date +%n # 纳秒 date -d "2012-08-13 14:00:23" +%s # 换算成秒计算(1970年至今的秒数) date -d "@1363867952" +%y-%m-%d-%t # 将时间戳换算成日期 date -d "1970-01-01 utc 1363867952 seconds" +%y-%m-%d-%t # 将时间戳换算成日期 date -d "`awk -f. '{print $1}' /proc/uptime` second ago" +"%y-%m-%d %h:%m:%s" # 格式化系统启动时间(多少秒前)
/etc/profile /etc/profile.d/*.sh ~/bash_profile ~/.bashrc /etc/bashrc
mysql -u$username -p$passwd -h$dbhost -p$dbport -a -e " use $dbname; delete from data where date=('$date1');" # 执行多条mysql命令 mysql -uroot -p -s mysql.sock -e " use db; alter table gift add column accountid int(11) not null; flush privileges;" # 不登录mysql插入字段
rz # 经过ssh上传小文件 sz # 经过ssh下载小文件 ifconfig eth0 down # 禁用网卡 ifconfig eth0 up # 启用网卡 ifup eth0:0 # 启用网卡 mii-tool em1 # 查看网线是否链接 traceroute www.baidu.com # 测试跳数 vi /etc/resolv.conf # 设置dns nameserver ip 定义dns服务器的ip地址 nslookup www.moon.com # 解析域名ip dig -x www.baidu.com # 解析域名ip curl -i www.baidu.com # 查看网页http头 tcpdump tcp port 22 # 抓包 lynx # 文本上网 wget -p 路径 http地址 # 下载 包名:wgetrc curl -d "user=xuesong&pwd=123" http://www.abc.cn/result # 提交web页面表单 需查看表单提交地址 rsync -avzp -e "ssh -p 22" /dir user@$ip:/dir # 同步目录 # --delete 无差同步 删除目录下其它文件 ifconfig eth0:0 192.168.1.221 netmask 255.255.255.0 # 增长逻辑ip地址 mtr -r www.baidu.com # 测试网络链路节点响应时间 # trace ping 结合 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all # 禁ping ipcalc -m "$ip" -p "$num" # 根据ip和主机最大数计算掩码 dig +short txt hacker.wp.dg.cx # 经过 dns 来读取 wikipedia 的hacker词条 host -t txt hacker.wp.dg.cx # 经过 dns 来读取 wikipedia 的hacker词条 net rpc shutdown -i ip_address -u username%password # 远程关掉一台windows机器 wget --random-wait -r -p -e robots=off -u mozilla www.example.com # 递归方式下载整个网站
-a # 显示全部链接中的socket -t # 显示tcp链接 -u # 显示udp链接 -n # 显示全部已创建的有效链接 -anlp # 查看连接 –r # 查看路由表
ssh -p 22 user@192.168.1.209 # 从linux ssh登陆另外一台linux ssh -p 22 root@192.168.1.209 cmd # 利用ssh操做远程主机 scp -p 22 文件 root@ip:/目录 # 把本地文件拷贝到远程主机 sshpass -p '密码' ssh -n root@$ip "echo hello" # 指定密码远程操做 ssh -o stricthostkeychecking=no $ip # ssh链接不提示yes ssh -t "su -" # 指定伪终端 客户端以交互模式工做 scp root@192.168.1.209:远程目录 本地目录 # 把远程指定文件拷贝到本地 ssh -n -l2001:remotehost:80 user@somemachine # 用ssh建立端口转发通道 ssh -t host_a ssh host_b # 嵌套使用ssh ssh -t -p 22 $user@$ip /bin/su - root -c {$cmd}; # 远程su执行命令 cmd="\"/sbin/ifconfig eth0\"" ssh-keygen -t rsa # 生成密钥 ssh-copy-id -i xuesong@10.10.10.133 # 传送key vi $home/.ssh/authorized_keys # 公钥存放位置 sshfs name@server:/path/to/folder /path/to/mount/point # 经过ssh挂载远程主机上的文件夹 fusermount -u /path/to/mount/point # 卸载ssh挂载的目录 ssh user@host cat /path/to/remotefile | diff /path/to/localfile - # 用diff对比远程文件跟本地文件 su - user -c "ssh user@192.168.1.1 \"echo -e aa |mail -s test mail@163.com\"" # 切换用户登陆远程发送邮件
ftp -i -v -n $host <<end user $username $password cd /ftp mkdir data cd data mput *.tar.gz bye end
df -ph # 查看硬盘容量 df -t # 查看磁盘分区格式 df -i # 查看inode节点 若是inode用满后没法建立文件 du -h 目录 # 检测目录下全部文件大小 du -sh * # 显示当前目录中子目录的大小 iostat -x # 查看磁盘io状态 mount # 查看分区挂载状况 fdisk -l # 查看磁盘分区状态 fdisk /dev/hda3 # 分区 mkfs -t ext3 /dev/hda3 # 格式化分区 fsck -y /dev/sda6 # 对文件系统修复 lsof |grep delete # 释放进程占用磁盘空间 列出进程后,查看文件是否存在,不存在则kill掉此进程 tmpwatch -afv 3 # 删除3小时内的临时文件 cat /proc/filesystems # 查看当前系统支持文件系统 mount -o remount,rw / # 修改只读文件系统为读写 smartctl -h /dev/sda # 检测硬盘状态 smartctl -i /dev/sda # 检测硬盘信息 smartctl -a /dev/sda # 检测全部信息 e2label /dev/sda5 # 查看卷标 e2label /dev/sda5 new-label # 建立卷标 ntfslabel -v /dev/sda8 new-label # ntfs添加卷标 tune2fs -j /dev/sda # ext2分区转ext3分区 mke2fs -b 2048 /dev/sda5 # 指定索引块大小 dumpe2fs -h /dev/sda5 # 查看超级块的信息 mount -t Iphone 苹果 ios 9660 /dev/dvd /mnt # 挂载光驱 mount -t ntfs-3g /dev/sdc1 /media/yidong # 挂载ntfs硬盘 mount -t nfs 10.0.0.3:/opt/images/ /data/img # 挂载nfs mount -o loop /software/rhel4.6.Iphone 苹果 ios /mnt/ # 挂载镜像文件
fdisk /dev/sdc p # 打印分区 d # 删除分区 n # 建立分区,(一块硬盘最多4个主分区,扩展占一个主分区位置。p主分区 e扩展) w # 保存退出 mkfs -t ext3 -l 卷标 /dev/sdc1 # 格式化相应分区 mount /dev/sdc1 /mnt # 挂载 vi /etc/fstab # 添加开机挂载分区 label=/data /data ext3 defaults 1 2 # 用卷标挂载 /dev/sdb1 /data4 ext3 defaults 1 2 # 用真实分区挂载 /dev/sdb2 /data4 ext3 noatime,defaults 1 2
第一个数字"1"该选项被"dump"命令使用来检查一个文件系统应该以多快频率进行转储,若不须要转储就设置该字段为0sql
第二个数字"2"该字段被fsck命令用来决定在启动时须要被扫描的文件系统的顺序,根文件系统"/"对应该字段的值应该为1,其余文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0shell
当以 noatime 选项加载(mount)文件系统时,对文件的读取不会更新文件属性中的atime信息。设置noatime的重要性是消除了文件系统对文件的写操做,文件只是简单地被系统读取。因为写操做相对读来讲要更消耗系统资源,因此这样设置能够明显提升服务器的性能.wtime信息仍然有效,任什么时候候文件被写,该信息仍被更新vim
raid0至少2块硬盘.吞吐量大,性能好,同时读写,但损坏一个就完蛋 raid1至少2块硬盘.至关镜像,一个存储,一个备份。安全性比较高.可是性能比0弱 raid5至少3块硬盘.分别存储校验信息和数据,坏了一个根据校验信息能恢复 raid6至少4块硬盘.两个独立的奇偶系统,可坏两块磁盘,写性能很是差
users # 显示全部的登陆用户 groups # 列出当前用户和他所属的组 who -q # 显示全部的登陆用户 groupadd # 添加组 useradd user # 创建用户 passwd 用户 # 修改密码 userdel -r # 删除账号及家目录 chown -r user:group # 修改目录拥有者(r递归) chown y\.li:mysql # 修改全部者用户中包含点"." umask # 设置用户文件和目录的文件建立缺省屏蔽值 chgrp # 修改用户组 finger # 查找用户显示信息 echo "xuesong" | passwd user --stdin # 非交互修改密码 useradd -g www -m -s /sbin/nologin www # 指定组并不容许登陆的用户,nologin容许使用服务 useradd -g www -m -s /bin/false www # 指定组并不容许登陆的用户,false最为严格 usermod -l 新用户名 老用户名 # 修改用户名 usermod -g user group # 修改用户所属组 usermod -d 目录 -m 用户 # 修改用户家目录 usermod -g group user # 将用户添加到附加组 gpasswd -d user group # 从组中删除用户 su - user -c " #命令1; " # 切换用户执行