那些年咱们踩过的linux坑(1)

1、解决虚拟机的centos Linux无网络html

 

这一步为设置物理主机,保证虚拟网关的IP为自动货期,同时本地连接也设置为自动获取。node

创建Windows批处理文件xxx.txt更名为xxx.batpython

xxx.bat内容net start “VMware DHCP Service”linux

net start “VMware NAT Service”c++

用管理员权限执行xxx.batgit

进入centos命令行shell

cd /etc/sysconfig/network-scrips/windows

ls 查看文件ifcfge-eno+数字centos

vi ifcfg-eno32bash

修改ONBOOT=yes

Esc 切换到命令模式 输入:wq保存并退出

Centos 默认不开启网卡,开启网卡

 

重启网络

Service NetworkManager stop

Service network restart

Service NetworkManager start

 Ping www.baidu.com

 

如图为Ping通

2、yum update 出现-bash: /usr/bin/yum: /usr/bin/python: bad interpreter错误

-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: Too many levels of symbolic links

或-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory

或which python返回/usr/bin/which: no python in

或which python2返回/usr/bin/which: no python2 in

Linux预装的是Python解释器为2.7版本

符号连接问题。检查是不是连接指向性错误位置

ls -al  /usr/bin/python

解决方法:杀出该连接而后从新建立连接

ln -s /usr/bin/python2.7 /usr/bin/python

rm /usr/bin/python

二三四类属于连接没有指向python2.7

ln -s /usr/bin/python2.7 /usr/bin/python

ln -s /usr/bin/python2.7 /usr/bin/python2

其余自编shell 命令出现此错误-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory可能为

 sh 脚本在windows 系统下记事本文件编写的

修改:修改.sh文件格式

vi test.sh

:set ff  查看到fileformat=dos 或 fileformat=unix

:wq #存盘退出

其实,在windows下经过git bash能够直接编写unix格式.sh

3、yum的卸载与从新安装

查看系统版本uname -r

将现有yum源卸载

rpm -qa yum

rpm -qa | grep yum | xargs rpm -e –nodeps #这一步必定要执行,并且要将全部的组件卸载掉,若是卸载不干净,后面安装会有问题

rpm -qa yum

[root@linux-node3 ~]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-3.4.3-150.el7.centos.noarch.rpm

[root@linux-node3 ~]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm

[root@linux-node3 ~]# wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-40.el7.noarch.rpm

centos 官网上下载和yum有关的rpm包

wget http://mirror.centos.org…………………….

安装

ls

文件显示

 

rpm -ivh yum-*

rpm -qa yum  #查看是否已经安装上

 

一、不一样的操做系统版本,要从官网上下载不一样的rpm包,官网地址”http://mirror.centos.org/centos/“,而后根据本身操做系统的版本选择便可。

二、若是出现安装好之后,yum仍是不能用的状况,那肯是是原有的yum没有删除干净,再次执行如下命令,从新安装yum便可。

 

rpm -qa|grep yum|xargs rpm -e --nodeps

1

三、若是有须要导入证书的状况,请从官网上找到连接,导入便可

 

rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

 

Linux查看日志经常使用命令

1.查看日志经常使用命令

    tail:  

       -n  是显示行号;至关于nl命令;例子以下:

            tail -100f test.log      实时监控100行日志

            tail  -n  10  test.log   查询日志尾部最后10行的日志;

            tail -n +10 test.log    查询10行以后的全部日志;

    head:  

        跟tail是相反的,tail是看后多少行日志;例子以下:

            head -n 10  test.log   查询日志文件中的头10行日志;

            head -n -10  test.log   查询日志文件除了最后10行的其余全部日志;

    cat: 

        tac是倒序查看,是cat单词反写;例子以下:

            cat -n test.log |grep "debug"   查询关键字的日志

 

2. 应用场景一:按行号查看---过滤出关键字附近的日志

     1)cat -n test.log |grep "debug"  获得关键日志的行号

     2)cat -n test.log |tail -n +92|head -n 20  选择关键字所在的中间一行. 而后查看这个关键字前10行和后10行的日志:

            tail -n +92表示查询92行以后的日志

            head -n 20 则表示在前面的查询结果里再查前20条记录

 

3. 应用场景二:根据日期查询日志

      sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log

      特别说明:上面的两个日期必须是日志中打印出来的日志,不然无效;

                      先 grep '2014-12-17 16:17:20' test.log 来肯定日志中是否有该 时间点

 

4.应用场景三:日志内容特别多,打印在屏幕上不方便查看

    (1)使用more和less命令,

           如: cat -n test.log |grep "debug" |more     这样就分页打印了,经过点击空格键翻页

    (2)使用 >xxx.txt 将其保存到文件中,到时能够拉下这个文件分析

            如:cat -n test.log |grep "debug"  >debug.txt

 

新增命令 cd 和 rm

rm [options] name...

参数:

 

-i 删除前逐一询问确认。

-f 即便原档案属性设为惟读,亦直接删除,无需逐一确认。

-r 将目录及如下之档案亦逐一删除。

实例

删除文件能够直接使用rm命令,若删除目录则必须配合选项"-r",例如:

 

# rm  test.txt

rm:是否删除 通常文件 "test.txt"? y 

# rm  homework 

rm: 没法删除目录"homework": 是一个目录 

# rm  -r  homework 

rm:是否删除 目录 "homework"? y

删除当前目录下的全部文件及目录,命令行为:

 

rm  -r  *

文件一旦经过rm命令删除,则没法恢复,因此必须格外当心地使用该命令。

进入系统根目录cd / 上一级目录cd ..

cd 或 cd ~ 进入主目录

跳转目录 cd /test/test

 

未解决更新python3.7

解决 未安装gcc-c++

Yum install gcc-c++

附带说明gcc与g++/gcc-c++的异同:

gcc为GNU Compiler Collection的缩写,能够编译C和C++源代码等,它是GNU开发的C和C++以及其余不少种语言的编译器(最先的时候只能编译C,后来很快进化成一个编译多种语言的集合,如Fortran、Pascal、Objective-C、Java、Ada、 Go等。)

gcc在编译C++源代码的阶段,只能编译C++源文件,而不能自动和C++程序使用的库连接(编译过程分为编译、连接两个阶段,源程序文件被编译成目标文件,多个目标文件连同库被连接成一个最终的可执行文件,可执行文件被加载到内存中运行)。所以,一般使用g++命令来完成C++程序的编译和链接,该程序会自动调用 gcc 实现编译。

g++也能编译C源代码,只不过把会把它当成C++源代码。后缀为.c的源文件,gcc把它看成是C程序,而g++把它看成是c++程序;后缀为.cpp的,二者都会认为是c++程序。注意,虽然c++是c的超集,可是二者对语法的要求是有区别的。

相关文章
相关标签/搜索