【ACCESS精品源码栏目提醒】:网学会员ACCESS精品源码为您提供运维常用linux命令shell技巧范例 - 其它资料参考,解决您在运维常用linux命令shell技巧范例 - 其它资料学习中工作中的难题,参考学习。
运维常用 linux 命令shell 技巧范例 --------雪松整理Q 群: 198173206 欢迎 linux 系统运维朋友加入!博客: http://hi.baidu.com/quanzhou722/blog错误在所难免,还望指正!1 文件管理 2 软件管理 3 系统管理4 服务管理 5 网络管理 6 磁盘管理7 用户管理 8 脚本相关 9 服务配置---------------------------------- 1 文件管理----------------------------------创建空白文件touch不提示删除非空目录rm -rf 目录名-r:递归删除 -f 强制 恢复 rm 删除的文件ext3查看磁盘分区格式df -T卸载挂载umount /data/ext3grep /dev/sdb1 --ls --inode 2记录信息继续查找目录下文件 inode 信息ext3grep /dev/sdb1 --ls --inode 131081 此处是 inode记录下 inode 信息开始恢复目录ext3grep /dev/sdb1 --restore-inode 49153windows 文本转 linux 文本dos2unixlinux 文本转 windows 文本unix2dos转换编码iconv -f gbk -t utf8 原.txt gt 新.txt查看 md5 值md5sum硬链接ln符号连接ln -s查看上下翻页且显示行号cat nl lessq 退出结束状态ctrlz查看文件开头内容head查看文件结尾内容tail -f 监视日志文件检查文件类型file重命名renamerename source_pattern target_pattern source_files更改默认权限umask删除重复的行uniq重复的行出现次数uniq -c只显示不重复行uniq -u将两个文件合并用 tab 键分隔开paste a b将两个文件合并指定符号隔开paste -d a b将多行数据合并到一行用 tab 键隔开paste -s a设置隐藏属性chattr - ASacdistu 文件或目录给口令文件设置不可改变位chattr i /etc/passwd向下分面器more搜索locate 字符串查看行数wc -l实时某个目录下查看最新改动过的文件watch -d -n 1 df ls -FlAt /path快速备份一个文件cp filename.bak sort-t 指定排序时所用的栏位分隔字符-n 依照数值的大小排序-r 以相反的顺序来排序-f 排序时,将小写字母视为大写字母-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符-c 检查文件是否已经按照顺序排序-b 忽略每行前面开始处的空格字符-M 前面 3 个字母依照月份的缩写进行排序-k 指定域-m 将几个排序好的文件进行合并lt起始栏位gt-lt结束栏位gt 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
-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 -tquot quot -k 2n -u a.txt配置编辑器gconf-editorvi 配置文件vi /etc/vimrc打开文件定位到 24 行vi 24 /etc/passwdvi 加强版vim打开行号:set nu取消行号:set nonu跳转到 200200G取消高亮:nohl设置自动缩进:set autoindent查看文本格式set ff改为 unix 格式set binary向前翻页ctrl U向后翻页ctrl D全部替换g/字符 1/s//字符 2/gs/字符 1/字符 2/g文档加密X打开多个文件vim file1 file2:n 编辑下一个文件:2n 编辑下二个文件:N 编辑前一个文件:rew 回到首文件可视模式行vv 自动格式化代码可视模式CtrlvCtrlv I ESC 批量注释Ctrlv s ESC 批量取消注释垂直分屏vim -O2 file1 file2水平分屏vim -on file1 file2上下分割打开新文件sp filename左右分割打开新文件vsp filename上下分割当前打开的文件CtrlW s左右分割当前打开的文件CtrlW v关闭当前窗口CtrlW c把光标移到右边的屏CtrlW l把光标移到左边的屏中CtrlW h把光标移到上边的屏中CtrlW k把光标移到下边的屏中CtrlW j把光标移到下一个的屏中CtrlW w向右移动CtrlW L向下移动CtrlW J向左移动CtrlW H向上移动CtrlW K让所有的屏都有一样的高度CtrlW 增加高度。
CtrlW 减少高度。
CtrlW - 普通用户打开文档不能保存 tee 是一个把 stdin 保存到文件的小工具而是 vim 当中一个只读寄存器的名字总保存着当前编辑文件的文件路径:w sudo tee 按文件名查找find /etc -name http查找某一类型文件find . -type f按照文件权限查找find / -perm按照文件属主查找find / -user按照文件所属的组来查找文件find / -group文件使用时间在 N 天以内find / -atime -n文件使用时间在 N 天以前find / -atime n文件内容改变时间在 N 天以内find / -mtime -n文件内容改变时间在 N 天以前find / -mtime n文件状态改变时间在 N 天前find / -ctime n文件状态改变时间在 N 天内find / -ctime -n linux 文件无创建时间
Access 使用时间 Modify 内容修改时间 Change 状态改变时间权限、属主查找文件长度大于 1M 字节的文件find / -size 1000000c -print按名字查找文件传递给-exec 后命令find /etc -name quotpasswdquot -exec grep quotxuesongquot 查找文件名,不取路径find . -name t -exec basename ---------------------------------- 2 软件管理----------------------------------解包 tartar xvf 1.tar -C 目录打包 tartar -cvf 1.tar 查看 tartar tvf 1.tar给 tar 追加文件tar -rvf 1.tar 文件名解包 gztar zxvpf gz.tar.gz -C 放到指定目录 包中的目录打包 gztar zcvpf gz.tar.gz查看 gztar ztvpf gz.tar.gz解压 bzip2bzip2 -dv 1.tar.bz2解压 gzip 到 targzip -dv 1.tar.gz压缩 tar 到 gzgzip -v 1.tarbzip2 压缩bzip2 -v 1.tar查看 bzip2bzcatrpm 安装rpm -ivh卸载rpm -e lynx强制卸载rpm -e lynx --nodeps测试rpm --test lynx查看所有安装的 rpm 包rpm -qa查找包是否安装rpm -qa grep http软件包路径rpm -ql软件包配置文档rpm -qc升级包rpm -Uvh解压 zipunzip zip.zip压缩 zipzip zip.zip rar3.6 下载地址http://www.rarsoft.com/rar/rarlinux-3.6.0.tar.gz压缩文件为 rar 包rar a rar.rar .jpg解压 rar 包unrar x rar.rar7z 压缩7z a 7z.7z 7z 解压7z e 7z.7z查看字符行zgrep 字符 1.gz打包/home /etc ,但排除 /home/dmtsaitar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/ /etc在 /home 当中,比 2005/06/01 新的文件才备份tar -N quot2005/06/01quot -zcvf home.tar.gz /home下载wgetrc文本上网lynx制作镜像cp -v /dev/dvd /software/rhel4.6.iso9660清除编译结果make clean
源码安装./configure --help less./configure --prefix/usr/local/makemake installperl 程序编译perl Makefile.PLmakemake testmake installperl 程序编译python file.py编译 c 程序gcc -g hello.c -o hello---------------------------------- 3 系统管理----------------------------------终端锁屏 CtrlS解锁屏 CtrlQPS1 环境变量控制提示显示PS1u H w A 开机启动模式3 为多用户命令vi /etc/inittab禁止 ctrl alt del 关闭计算机ca::ctrlaltdel:/sbin/shutdown -t3 -r now查找命令的目录whereis查看当前要执行的命令所在的路径which命令后台运行命令 amp将前台放入后台暂停ctrlz查看后台运行程序jobs启动后台暂停进程bg 2调回后台进程fg 2后台运行不受 shell 退出影响nohup cmd amp清空整个屏幕clear重新初始化屏幕reset查询用过的命令默认 1000 条history清楚记录命令history -ccat /root/.bash_history查看登陆过的用户信息lastlast -n userwho /var/log/wtmp列出登录系统失败的用户相关信息lastb -a/var/log/btmp防火墙日志tail -f /var/log/messagesssh 日志tail -f /var/log/secure随机生成密码mkpasswd-l 位数 -C 大小 -c 小写 -d 数字 -s 特殊字符mkpasswd -l 8 -C 2 -c 2 -d 4 -s 0当前在线用户whow查看当前用户名whoami查看登陆用户名logname显示月历cal查看服务器启动时间uptime设日期date -s 20091112设时间date -s 18:30:50同步时间/usr/sbin/ntpdate stdtime.gov.hk7 天前日期date -d quot7 days agoquot Ymd日期格式转换date Y-m-d -d 20110902日期和时间date Y-m-d_X查看时间hwclock账户影子文件/etc/shadow列出所有语系locale -a修改语言LANGen修改编码vi /etc/sysconfig/i18nutf-8 lt---gt GBK强制字符集export LC_ALLC查询静态主机名vi /etc/hosts最大连接/etc/security/limits.confgrub 开机启动项添加/etc/grub.conftitle ms-dosrootnoverify hd00chainloader 1别名alias监测命令watch查看 Linux 版本信息uname -acat /proc/versioncat /etc/issuelsb_release -a查看 cpu 信息more /proc/cpuinfo查看 cpu 型号和逻辑核心数cat /proc/cpuinfo grep name cut -f2 -d: uniq -ccpu 运行的位数getconf LONG_BIT物理 cpu 个数cat /proc/cpuinfo grep physical uniq -c结果大于 0 支持 64 位cat /proc/cpuinfo grep flags grep lm wc -l查看 cpu 是否支持虚拟化cat /proc/cpuinfogrep flagspae 支持半虚拟化 Intel VT 支持全虚拟化查看内存信息more /proc/meminfo查看全面硬件信息dmidecode查看服务器型号dmidecode grep quotProduct Namequot查看软 raid 信息cat /proc/mdstat查看硬 raid 信息cat /proc/scsi/scsi查看硬件信息lspci查看是否支持 raidlspcigrep RAID显示开机信息dmesg进程树pstree每隔一秒报告虚拟内存统计信息 9 次vmstat 1 9把 180 号进程的优先级加 1renice 1 180终止某个 PID 进程kill -9 PID指定三天后下午 5:00 执行/bin/lsat 5pm 3 days /bin/ls编辑周期任务crontab -e分钟 小时 天 月 星期 命令或脚本01 1-3/2 命令或脚本直接将命令写入周期任务echo quot40 7 2 /root/shquotgtgt/var/spool/cron/root查看自动周期性任务crontab -l删除自动周期性任务crontab -r禁止或允许用户使用周期任务cron.deny 和 cron.allow启动自动周期性服务service crond 启动停止重启状态gt是否打开了某个端口netstat -anlp grep 端口号sudo 命令权限添加visudo用户 别名可用 allNOPASSWD:命令 1,命令 2wangming linuxfanNOPASSWD:/sbin/apache start/sbin/apache restartUserName ALLALL ALL制作补丁diff suzu.c suzu2.c gt sz.patch安装补丁patch suzu.c lt sz.patch显示打开指定文件的所有进程lsof 文件查看端口的进程lsof -i :32768显示消耗内存最多的 10 个运行中的进程,以内存使用量排序.cpu 3ps aux grep -v USER sort -nk 4 tail查看内核模块lsmodyum 扩展源http://download.fedoraproject.org/pub/epelwget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpmrpm -Uvh epel-release-5-4.noarch.rpm升级所有包版本依赖关系,系统版本内核都升级yum -y update升级指定的软件包yum -y update 软件包名不改变软件设置更新软件,系统版本升级,内核不改变yum -y upgradeyum 搜索相关包yum search mail会改变配置文件改变旧的依赖关系,改变系统版本dist-upgrade编辑启动项/boot/grub/grub.conf开机启动脚本顺序/etc/profile/etc/profile.d/.sb/bash_profile/.bashrc/etc/bashrc使 TCP SYN Cookie 保护生效 quotSYN Attackquot是一种拒绝服务的攻击方式echo 1 gt /proc/sys/net/ipv4/tcp_syncookies-------------------------------------------------------------------- top前五行是系统整体的统计信息。
第一行是任务队列信息,同 uptime 命令的执行结果。
其内容如下:01:06:48 当前时间up 1:22 系统运行时间,格式为时:分1 user 当前登录用户数load average: 0.06 0.60 0.48 系统负载,即任务队列的平均长度。
三个数值分别为 1 分钟、5 分钟、15 分钟前到现在的平均值。
第二、三行为进程和 CPU 的信息。
当有多个 CPU 时,这些内容可能会超过两行。
内容如下:Tasks: 29 total 进程总数1 running 正在运行的进程数28 sleeping 睡眠的进程数0 stopped 停止的进程数0 zombie 僵尸进程数Cpus: 0.3 us 用户空间占用 CPU 百分比1.0 sy 内核空间占用 CPU 百分比0.0 ni 用户进程空间内改变过优先级的进程占用 CPU 百分比98.7 id 空闲 CPU 百分比0.0 wa 等待输入输出的 CPU 时间百分比0.0 hi0.0 si最后两行为内存信息。
内容如下:Mem: 191272k total 物理内存总量173656k used 使用的物理内存总量17616k free 空闲内存总量22052k buffers 用作内核缓存的内存量Swap: 192772k total 交换区总量0k used 使用的交换区总量192772k free 空闲交换区总量123988k cached 缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。
进程信息区统计信息区域的下方显示了各个进程的详细信息。
首先来认识一下各列的含义。
序号 列名 含义a PID 进程 idb PPID 父进程 idc RUSER Real user named UID 进程所有者的用户 ide 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。
VIRTSWAPRESp SWAP 进程使用的虚拟内存中,被换出的大小,单位 kb。
q RES 进程使用的、未被换出的物理内存大小,单位 kb。
RESCODEDATAr CODE 可执行代码占用的物理内存大小,单位 kbs DATA 可执行代码以外的部分数据段栈占用的物理内存大小,单位 kbt SHR 共享内存大小,单位 kbu nFLT 页面错误次数v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态。
D不可中断的睡眠状态R运行S睡眠T跟踪/停止Z僵尸进程x COMMAND 命令名/命令行y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名z Flags 任务标志,参考 sched.h iptables内建三个表:nat mangle 和 filterfilter 预设规则表,有 INPUT、FORWARD 和 OUTPUT 三个规则链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 目标端口配置文件vi /etc/sysconfig/iptables将防火墙中的规则条目清除掉iptables -F注意:iptables -P INPUT ACCEPT导入防火墙规则iptables-restore lt规则文件保存防火墙设置/etc/init.d/iptables save重启防火墙服务/etc/init.d/iptables restart查看规则iptables -L -niptables -L -n --line-numbers从某个规则链中删除一条规则iptables -D INPUT --dport 80 -j DROPiptables -D INPUT 8取代现行规则iptables -R INPUT 8 -s 192.168.0.1 -j DROP插入一条规则iptables -I INPUT 8 --dport 80 -j ACCEPT查看转发iptables -t nat -nL在内核里打开 ip 转发功能echo 1 gt /proc/sys/net/ipv4/ip_forward允许本地回环iptables -A INPUT -s 127.0.0.1 -p tcp -j ACCEPT允许已建立的或相关连的通行iptables -A INPUT -m state --state ESTABLISHEDRELATED -j ACCEPT开放对外访问iptables -P OUTPUT ACCEPT指定某端口针对 IP 开放iptables -A INPUT -s 192.168.10.37 -p tcp --dport 22 -j ACCEPT允许的 IP 或 IP 段访问iptables -A INPUT -s 192.168.10.37 -p tcp -j ACCEPT开放对外开放端口iptables -A INPUT -p tcp --dport 80 -j ACCEPT关闭入口iptables -P INPUT DROP关闭转发iptables -P FORWARD DROP iptables 规则文件 Generated by iptables-save v1.2.11 on Fri Feb 9 12:10:37 2007filter:INPUT DROP 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 FINSYNRSTPSHURG RST -j DROP 允许已建立的或相关连的通行iptables -A INPUT -m state --state ESTABLISHEDRELATED -j ACCEPT拒绝 ping-A INPUT -p tcp -m tcp -j REJECT --reject-with icmp-port-unreachableCOMMIT Completed on Fri Feb 9 12:10:37 2007 常用实例允许在 IP 访问指定端口iptables -A INPUT -s 192.168.62.1 -p tcp --dport 22 -j ACCEPT禁止使用某端口iptables -A INPUT -p tcp --dport 22 -j DROPiptables -A INPUT -p tcp --dport 31 -j REJECT禁止 QQ 端口iptables -D FORWARD -p udp --dport 8000 -j REJECT禁止 icmp 端口除 192.168.62.1 外,禁止其它人 ping 我的主机iptables -A INPUT -i eth0 -s 192.168.62.1/32 -p icmp -m icmp --icmp-type 8 -j ACCEPTiptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j DROP其它情况不允许iptables -A INPUT -i eth0 -j DROP禁止指定 IP 访问iptables -A INPUT -p tcp -s IP -j DROP禁止指定 IP 访问端口iptables -A INPUT -p tcp -s IP --dport port -j DROP阻止所有没有经过你系统授权的 TCP 连接iptables -t filter -A INPUT -i eth0 -p tcp --syn -j DROP添加网段转发iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADEIP 包流量限制iptables -A INPUT -f -m limit --limit 100/s --limit-burst 100 -j ACCEPTiptables -A INPUT -i eth0 -p icmp -j DROP端口映射iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 --dport 80 -j REDIRECT --to-ports3128列出某规则链中的所有规则iptables -L INPUT删除某个规则链 不加规则链,清除所有非内建的iptables -X allowed将封包计数器归零iptables -Z INPUT定义新的规则链iptables -N allowed定义过滤政策iptables -P INPUT DROP修改某自订规.
上一篇:
北京博彦科技笔试+面试
下一篇:
冬天吃这些食品有好处