1 tar命令

 1 从网络上下载到的源码包, 最常见的是 .tar.gz 包, 还有一部分是 .tar.bz2包
要解压很简单 :
.tar.gz     格式解压为          tar   -zxvf   xx.tar.gz
.tar.bz2   格式解压为          tar   -jxvf    xx.tar.bz2
出现的问题:
2 用tar 解压 tar.bz2文件出错
debian:/usr/src# tar jxf linux-2.6.26.tar.bz2
tar: bzip2: Cannot exec: No such file or directory
tar: Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error exit delayed from previous errors
解决办法
安装bzip2软件包
apt-get install bzip2
3 tar: 从成员名中删除开头的“/”
解决:使用大写的P
[root@bj ~]# tar czPvf test.tar.gz /root/tomcat/
4 tar的增量备份
[root@192 ~]# tar -g /root/snapshot -czPvf /root/20161201.tar.gz /root/test.bak
tar: /root/test.bak:目录是新的
/root/test.bak/
/root/test.bak/1.txt
/root/test.bak/2.txt
/root/test.bak/4.txt
/root/test.bak/add.txt
[root@192 ~]# tar -zxvf 20161201.tar.gz
tar: 从成员名中删除开头的“/”
/root/test.bak/
/root/test.bak/1.txt
/root/test.bak/2.txt
/root/test.bak/4.txt
/root/test.bak/add.txt

2 wget-c命令

1 wget -c 已经下载就不会再下载了
[root@192 sh]# wget -c http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.23.tar.bz2
--2016-11-23 18:18:12--  http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.23.tar.bz2
正在解析主机 mirrors.cnnic.cn (mirrors.cnnic.cn)... 218.241.113.17, 218.241.113.17
正在连接 mirrors.cnnic.cn (mirrors.cnnic.cn)|218.241.113.17|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 416 Requested Range Not Satisfiable文件已下载完成;不会进行任何操作。

3 cat命令和EOF标识输出shell到文件

cat命令和EOF标识输出shell到文件
链接:http://www.cnblogs.com/zht-blog/p/4065668.html
在某些场合,可能我们需要在脚本中生成一个临时文件,然后把该文件作为最终文件放入目录中。(可参考ntop.spec文件)这样有几个好处,其中之一就是临时文件不是唯一的,可以通过变量赋值,也可根据不同的判断生成不同的最终文件等等。
一、cat和EOF
cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;
EOF是“end of file”,表示文本结束符。
结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。
二、使用
看例子是最快的熟悉方法:# cat << EOF > test.sh
> #!/bin/bash
> #you Shell script writes here.
> EOF结果:引用
# cat test.sh
#!/bin/bash
#you Shell script writes here.可以看到,test.sh的内容就是cat生成的内容。
三、其他写法
1、追加文件# cat << EOF >> test.sh2、换一种写法# cat > test.sh << EOF3、EOF只是标识,不是固定的# cat << HHH > iii.txt
> sdlkfjksl
> sdkjflk
> asdlfj
> HHH这里的“HHH”就代替了“EOF”的功能。结果是相同的。引用
# cat iii.txt
sdlkfjksl
sdkjflk
asdlfj4、非脚本中
如果不是在脚本中,我们可以用Ctrl-D输出EOF的标识# cat > iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk
Ctrl-D结果:引用
# cat iii.txt
skldjfklj
sdkfjkl
kljkljklj
kljlk
[root@192 sh]# cat <<EOF
> ^C
[root@192 sh]# cat <<EOF>test.sh
> #!/bin/sh
> #you shell script writes here
> EOF
[root@192 sh]# more test.sh
#!/bin/sh
#you shell script writes here

4  echo

1 echo -e 允许后面的输出进行转义
echo -e \" <?php\nphpinfo();\n?>\"
2 得到名字
[root@192 sh]# echo /var/log/messages-20161118 |awk -F "/" '{print $NF}'
messages-20161118
[root@192 sh]# echo /var/log/messages-20161118 |xargs basename
messages-20161118
3 sed分割ip
[root@192 sh]# echo 192.168.57.131|sed 's/\./\n/g'
192
168
57
131
4 awk
awk获取某一列的值   以空格分隔
[root@192 sh]# awk '{print $3}' test.txt
#IP
192.168.1.1
192.168.1.2
awk--head -1获取第一行
[root@192 sh]# cat /etc/passwd|awk '{print $1}'|head -1
root:x:0:0:root:/root:/bin/bash
awk--tail -1获取第一行
[root@192 sh]# cat /etc/passwd|awk '{print $1}'|tail -1
chy_:x:1006:1006::/home/chy_:/bin/bash
awk---F:  以:分隔
[root@192 sh]# cat /etc/passwd|awk -F: '{print $1}'|tail -1
chy_
awk以www.做分隔
[root@192 sh]# echo "http://www.baidu.con"|awk -F"www." '{print $2}'
baidu.con
awk -baidu.con变成baidu-con
[root@192 sh]# echo "http://www.baidu.con"|awk -F"www." '{print $2}'|awk -F. '{print $1"-"$2}'
baidu-conawk输出
[root@192 sh]# cat test.txt |awk 'NR==1 {print}'
192.168.57.132
[root@192 sh]# cat test.txt |awk '/132/'
192.168.57.132
php-config文件中长度大于100的行号
[root@test scripts]# cat php-config|awk 'length($0)>80{print NR}'
10
12
20
27
30
显示test.txt中的第3行至第5行的第一列与最后一列
[root@192 sh]# cat test.txt | awk 'NR==3, NR==5 {print $1,$NF}'136137123
5 获取IP
[root@192 sh]# ifconfig|grep "broadcast"|awk '{print $2}'|sed 's/addr://g'
192.168.57.132

5  du-sch

root@192 sh]# du -sh *
4.0K    auto_check_mysql.sh
4.0K    lamp.sh
4.0K    php.info
4.0K    rsa.sh
4.0K    test.txt
[root@192 sh]# du -shc *
4.0K    auto_check_mysql.sh
4.0K    lamp.sh
4.0K    php.info
4.0K    rsa.sh
4.0K    test.txt
20K 总用量

6 查询linux版本信息

系统版本
[root@test ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.5 (Santiago)
[root@test ~]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 6.5 (Santiago)
Release:    6.5
Codename:   Santiago
内核版本
[root@test ~]# cat /proc/version
Linux version 2.6.32-431.el6.x86_64 (mockbuild@x86-023.build.eng.bos.redhat.com) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Sun Nov 10 22:19:54 EST 2013
You have new mail in /var/spool/mail/root
[root@test ~]# uname -a
Linux test 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

7 查看机器的cpu和内存

[root@192 sh]# cat /proc/cpuinfo |grep "processor"|wc -l
1
[root@192 sh]# free -mtotal        used        free      shared  buff/cache   available
Mem:            977         239         578           6         159         581

8  时间变量

时间变量
YEAR=`date +%Y`
MONTH=`date +%m`
DAY=`date +%d`
WEEK=`date +%u`

9 screen后台运行脚本

screen后台执行
crtl—+a+d进行保存
screen -ls  查看id
screen -r id 进入后台
或者
nohup mkdir -p/tmp &
也是在后台执行不会掉
只有&是在当前页面进行

10   2>&1

2>&1将标准出不标准输出错误均打印出来
[root@192 ~]# hhhh >/tmp/error 2>&1
[root@192 ~]# more /tmp/error
-bash: hhhh: 未找到命令

11 csv文件

csv文件
扫描文件以,作分隔,csv文件上传到桌面excel直接可以打开

12 secure文件登陆纪录

secure文件登陆纪录,下面这条命令可以查看出哪些ip尝试登陆我们的ip
sort  --排序
uniq -c ---唯一值并排序
sort -nr --从大到小排序
[root@192 log]# grep -i "Failed password" /var/log/secure|awk '{print $(NF-3)}'|sort |uniq -c|sort -nr|more
2 192.168.57.1
$1>=10  将超过10次登陆失败的机器追加到host.deny中或者防火墙中,禁止他们登陆
[root@192 log]# grep -i "Failed password" /var/log/secure|awk '{print $(NF-3)}'|sort |uniq -c|sort -nr|awk '$1>=10 {print $2}'
执行
[root@192 sh]# !sh
sh -x auto_drop.sh
+ IP=(`grep -i "Failed password" /var/log/secure|awk '{print $(NF-3)}'|sort |uniq -c|sort -nr|awk '{print $2}'`)
++ grep -i 'Failed password' /var/log/secure
++ awk '{print $2}'
++ awk '{print $(NF-3)}'
++ sort
++ uniq -c
++ sort -nr
++ echo 192.168.57.1
+ for i in '`echo ${IP[@]}`'
+ sed -i '/OUTPUT/a -A INPUT -s 192.168.57.1 -j DROP' /etc/sysconfig/iptables
+ service iptables restart
Redirecting to /bin/systemctl restart  iptables.service
[root@192 sh]# more auto_drop.sh
#!/bin/sh
IP=(
`grep -i "Failed password" /var/log/secure|awk '{print $(NF-3)}'|sort |uniq -c|s
ort -nr|awk '{print $2}'`
)
#echo ${IP[@]}for i in `echo ${IP[@]}`
dogrep $i /etc/sysconfig/iptables >>/dev/nullif [ $? -ne 0 ];thensed -i "/OUTPUT/a -A INPUT -s $i -j DROP" /etc/sysconfig/iptable
sfi
done
service iptables restart
加入到定时任务中去,五分钟执行一次
[root@192 sh]# crontab -l
*/5 * * * * /bin/sh /data/sh/suto_drop.sh >>/tmp/drop.log 2>&1
如何实现每秒运行一次这个脚本
[root@192 sh]# while sleep 1; do sh /data/sh/auto_drop.sh ;done

13 nmap如果ping禁止,用这个

14

 1) 删除匹配行sed -i '/匹配字符串/d'  filename  (注:若匹配字符串是变量,则需要“”,而不是‘’。记得好像是)sed -i '/HISTFILESIZE/d' /etc/bashrc参考https://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html2)  替换匹配行中的某个字符串sed -i '/匹配字符串/s/替换源字符串/替换目标字符串/g' filenamesed -i 's/yes/old/g' netwrk3)  匹配前面是#的删除sed -i '/^[^#]/d' /etc/hosts.allow 4)  root用户环境变量不包括父目录+环境变量不包含权限为777的目录!echo $PATH | egrep '(^|:)(\.|:|$)'||echo "root用户环境变量不包括父目录!" >>$log_nameecho $PATH | tr ':' ' '` -type d \( -perm -002 -o -perm -020 \) -ls||echo "环境变量不包含权限为777的目录!" >>$log_name5)#echo ${SOURCE_DIR[@]   @代表SOURCE_DIR中输入的所有数值 6)IP_ADDR=`tail -n 1000 /var/log/secure |grep "Failed password"| egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" | sort -nr | uniq -c |awk ' $1>=4 {print $2}'`egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}  筛选IP

转载于:https://blog.51cto.com/6874869/1877937

linux下命令集合相关推荐

  1. Linux下命令行压缩照片或图片的脚本 (ImageMagick使用心得,convert,import,display实例)

    from: Linux下命令行压缩照片或图片的脚本 (ImageMagick使用心得,convert,import,display实例) 在认识ImageMagick之前,我使用的图像浏览软件是Kui ...

  2. windows、linux下命令行登录oracle数据库方法,查询sga参数值sql语句

    windows 下 cmd 命令行登录 oracle 数据库方法.直接就登录进来了. C:\Users\Administrator>sqlplusSQL*Plus: Release 11.2.0 ...

  3. Linux中的报错命令,Linux学习教程-Linux下命令的一些异常情况

    导读 命令不全:在命令没有输入完 (引号或括号没有配对),就不小心按下了Enter键,终端会提示出一个>代表命令不完整,这是可以继续输入,也可以ctrl+c终止输入,重新再来.(下面sed命令使 ...

  4. linux中C编译命令,linux下命令行下编译c程式

    linux下命令行下编译c程式 2008-02-23 05:41:36来源:互联网 阅读 () C 是任何版本的UNIX上的系统语言. C 在过去的二十年中有了很大的发展. 在80年代末期美国国家标准 ...

  5. Linux下命令行打开word、excel、pdf文件

    Linux下命令行打开word.excel.pdf文件 1.打开word文件 wps xxx.docx xdg-open xxx.docx 2.打开excel文件 et xxx.xlsx xdg-op ...

  6. LibOpenCM3(一) Linux下命令行开发环境配置

    目录 LibOpenCM3(一) Linux下命令行开发环境配置 LibOpenCM3(二) 项目模板 Makefile分析 LibOpenCM3(三) .ld文件(连接器脚本)和startup代码说 ...

  7. Kali Linux下命令行终端的中英文切换

    Kali Linux下命令行终端的中英文切换 由于自己想下载个kali linux学习,但是苦于自己设备受限,下载了kali官网的light版本: kali-linux-light-2019.1a-a ...

  8. linux登陆ftp报错425,linux下命令行连接FTP是遇到的错误(425 Failed to establish connection)...

    linux下命令行连接FTP是遇到的错误(425 Failed to establish connection) 首先FTP的运行模式有主动模式和被动模式两种 然后笔者在工作中搭建了ftp,但是没有开 ...

  9. linux下安装.hex文件,HexEdit Linux下命令集

    Linux下Ganglia集群监控安装.配置笔记 http://www.blogjava.net/henry14/archive/2011/12/17/ganglia.html 枪声依旧 Linux下 ...

最新文章

  1. 我想说:mysql 的 join 真的很弱
  2. gcc可以编译python程序吗_gcc c语言编译流程
  3. 装饰者模式 php,PHP设计模式之装饰器模式
  4. 移动时代的互联网格局变化
  5. SEO三种职位类型:编辑型SEO、技术型SEO、营销型SEO详解
  6. flink报错:Error: Static methods in interface require -target:jvm-1.8 已解决
  7. 数据结构 - 树形选择排序 (tree selection sort) 具体解释 及 代码(C++)
  8. vue-slicksort拖拽组件
  9. 计算机硬件密码,计算机硬件技术基础综合性实验任务书(08)密码门锁的模拟_C
  10. 我的迅雷资源博客已经开通!
  11. JNDI配置数据库连接
  12. MAC 升级 node.js 的快捷方法
  13. php和mysql做甘特图_Twproject Gantt开源甘特图功能扩展
  14. sunlight的中文_Diana Vickers的Sunlight中文歌词。
  15. 偏差、方差、标准差、协方差
  16. windows xp系统重装之u盘装系统,u盘安装xp系统
  17. 7、固定资产减少凭证处理
  18. 不是私密链接,如何继续前往?
  19. opencv生成棋盘格图像
  20. RuoYi-Vue——裁剪区域头像回显的跨域问题

热门文章

  1. JavaScript笔记整理
  2. Nunit中如何进行事务性单元测试
  3. 框架升级后某个类型所在程序集发生转移,应用还能正常运行吗?
  4. Set和Map集合的比较
  5. 蓝桥杯练习系统历届试题 翻硬币
  6. html提交列表编号自动生成目录,解析 Html 自动生成目录 TOC 的相关代码
  7. minio分布式搭建_分布式存储Minio集群环境搭建
  8. excel删除空行_教你简单小妙招将Excel里重复的数据筛选出来!
  9. beego模板语法循环html块,beego 模版语法
  10. 灾备中心服务器辐射,数据中心和灾备中心的相同点以及不同点