Linux下如何查看版本信息

Linux下如何查看版本信息, 包括位数、版本信息以及CPU内核信息、CPU具体型号等等,整个CPU信息一目了然。

  1、# uname -a   (Linux查看版本当前操作系统内核信息)
   Linux localhost.localdomain 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003 i686 athlon i386 GNU/Linux
  2、# cat /proc/version (Linux查看当前操作系统版本信息)
      Linux version 2.4.20-8 (bhcompile@porky.devel.redhat.com)
      (gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) #1 Thu Mar 13 17:54:28 EST 2003
  3、cat /etc/redhat-release(Linux查看版本当前操作系统发行版信息CentOS还是Ubuntu之类的)
 
  Red Hat Linux release 9 (Shrike)

  4、# cat /proc/cpuinfo (Linux查看cpu相关信息,包括型号、主频、内核信息等)
 

  processor        : 0
     vendor_id         : AuthenticAMD
  cpu family        : 15
  model             : 1
  model name      : AMD A4-3300M APU with Radeon(tm) HD Graphics
  stepping         : 0
  cpu MHz          : 1896.236
  cache size       : 1024 KB
  fdiv_bug         : no
  hlt_bug          : no
  f00f_bug        : no
  coma_bug      : no
  fpu                : yes
  fpu_exception   : yes
  cpuid level      : 6
  wp                : yes
  flags             : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr

                           sse sse2 syscall mmxext lm 3dnowext 3dnow
  bogomips      : 3774.87
  5、# getconf LONG_BIT  (Linux查看版本说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)

32
6、# lsb_release -a

Linux环境变量设置

关于PATH的作用:

PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下,事实上当你输入命令的时候LINUX会去/bin,/usr/bin,/sbin等目录下面去找你此时输入的命令,而PATH的值恰恰就是/bin:/sbin:/usr/bin:……。其中的冒号使目录与目录之间隔开。

格式:

export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:……:<PATH N>

 

关于新增自定义路径:

环境变量文件:/etc/profile

现在假设你新安装了一个命令在/usr/locar/new/bin下面,而你又想像ls一样在任何地方都使用这个命令,你就需要修改环境变量PATH了,准确的说就是给PATH增加一个值/usr/locar/new/bin。你只需要一行bash命令export PATH=$PATH:/usr/locar/new/bin。这条命令的意思太清楚不过了,使PATH自增:/usr/locar/new/bin,既PATH=PATH+":/usr/locar/new/bin"(注意:= 即等号两边不能有任何空格);通常的做法是把这行bash命令写到/etc/profile的末尾,然后当你重新登陆LINUX的时候(应该是linux启动时就会执行这个文件),新的默认路径就添加进去了。当然这里你直接用source /etc/profile执行这个文件重新登陆了。你可以用echo $PATH命令查看PATH的值。

查看所有环境变量:

env

每日一个Linux命令:history

1.显示记录时间:

export HISTTIMEFORMAT='%F %T '

2.查看历史列表:

history | more

3.快速查询历史记录:

Ctrl + R

4.查询历史记录:

history | grep ps

5.执行指定的记录:

!3[表示执行序号为3的历史记录]

6.删除指定历史记录:

history -d 3

7.清空历史命令:

history -c [只能清空当次登陆的日志]

8.想永久删除部分日志:

vi ~/.bash_history 【删除不想要的日志】
history -c

每日一个Linux命令:cat

1.cat命令显示文件行号:

cat -n filename

2.cat命令显示文件指定行:

cat -n filename | tail -n 100 显示文件最后100行

cat -n filename | head -n 100 显示文件前面100行

cat -n filename | tail -n +100 从100行开始显示,显示100行以后的所有行

cat -n filename | head -n 500 | tail -n +100 显示100行到500行

linux下安装jdk1.8

步骤1:首先先检查linux机器上是否有自带的jdk

java -version

检查下就可以,如果有版本低的话可以先卸载掉方法如下

[root@localhost java]# rpm -qa|grep gcj 或者 rpm -qa|grep java
 libgcj-4.1.2-44.el5
 java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

如果没有信息就是没有安装、如果有那么如下操作

[root@localhost jdk-6u13-linux-i586]# yum -y remove java-1.*

步骤2:下载JDK 1.8安装包(根据自身系统下载对应的安装包):http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

步骤3:解压安装JDK

方式一:RPM 包安装

[root@localhost tmp]# chmod +x jdk-8u112-linux-i586.rpm

[root@localhost tmp]# rpm -ivh jdk-8u112-linux-i586.rpm

方式二:tar包安装

新建文件夹/usr/java/

[root@localhost usr]# mkdir java

[root@localhost usr]# cd /tmp

[root@localhost tmp]# tar xzvf jdk-8u112-linux-i586.tar.gz -C /usr/java/

【修改/usr/java/下jdk的名字为jdk1.8.0】

 

步骤4:配置环境变量

在etc/profile文件下添加

export JAVA_HOME=/usr/java/jdk1.8.0

export CLASSPATH=/usr/java/jdk1.8.0/lib

export PATH=$JAVA_HOME/bin:$PATH

如果你不想重新系统,可以用命令source /etc/profile使配置文件立即生效。否则只能重启系统才能使配置参数生效。

[root@localhost ~]# source /etc/profile

步骤5:验证环境变量是否生效

[root@localhost ~]# echo $JAVA_HOME

/usr/java/jdk1.8.0

[root@localhost ~]# echo $PATH

/usr/java/jdk1.8.0/bin:/usr/kerberos/sbin:/usr/kerberos/bin

:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

[root@localhost ~]# echo echo $CLASSPATH

/usr/java/jdk1.8.0/lib

 

步骤6:验证安装成功与否,以及环境变量是否生效

[root@localhost tmp]# java -version

java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) Client VM (build 25.112-b15, mixed mode)

查看/修改Linux时区和时间,更新系统时间

一、时区

1. 查看当前时区
   date -R
2. 修改设置时区
   方法(1)  tzselect
   方法(2) 适用于Debian
   dpkg-reconfigure tzdata
3. 复制相应的时区文件,替换系统时区文件;或者创建链接文件
      cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime
  在中国可以使用:
   cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    二、时间

1、查看时间和日期
   date

2、设置时间和日期
  将系统日期设定成1996年6月10日的命令 
   date -s 06/22/96
               
  将系统时间设定成下午1点52分0秒的命令 
   date -s 13:52:00
3. 将当前时间和日期写入BIOS,避免重启后失效
  hwclock -w

三、定时同步时间(在/etc/crontab中添加)

* * * * * /usr/sbin/ntpdate 202.108.6.95 > /dev/null 2>&1
说明:


/dev/null 代表空设备文件
1 表示stdout标准输出,系统默认值是1,所以 ">/dev/null" 等同于 "1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1

整句的意思就是标准输出重定向到空设备文件,也就是不输出任何信息到终端,标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

 

另外:

1、手动同步:

ntpdate 202.108.6.95  

或

ntpdate 202.112.29.82 

2、同步之后,将时间信息写入bios

hwclock -w

3、centos系统,如果没有ntpdate命令使用yum install ntp更新;

分享几种Linux软件的安装方法

1. 源码安装

    对于本身具有开源血统的Linux系统来说,几乎所有的开源软件都支持在Linux平台运行,而这些软件一般都以源码打包形式分发,源码安装适用于所有Linux分支,只需要系统安装了gcc、make、以及automake和autoconf,源码安装的一般方法如下:

 

1. cd 源码目录

2. ./configure [opts]

3. make

4. make install

    其中configure后面的选项一般可以通过./configure --help来查询,根据自己的喜好使用一些选项。这里正确的工作流程是先看源码目录下面的Readme,这里一般会有提示安装方法,那么只需要按照描述照办即可,如果Readme没有提示(事实上很少),如果其中提及到官网,可以到官网去查阅相关安装文档,如果没有,可以google搜索软件的安装方法。如果安装过程遇到问题,问题一般在执行configure命令就会出现,看看configure的输出日志,如果嫌日志太多,可以把日志重定向到文件,对文件查找error,根据报告的错误日志,一般有经验的可能立马就发现问题,不太理解的google搜索,一般来说遇到问题的肯定不止你一个人,如果在make阶段遇到错误,一般都是依赖库没有安装,直接google搜索依赖库下载安装即可(或使用后面提到的安装方法);源码安装后的包如果需要卸载可能是最头疼的,不能借助任何工具,往往直接删除可执行文件或库并没有把包卸载彻底,卸载的时候尽量查看官网的文档,看是否有涉及软件安装后的所有位置,比如MYSQL官网就有介绍,然后到每个位置把相关的文件或文件夹删除即可。

2. rpm包安装

    RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,几乎在所有的Linux平台上都支持,已经成为行业标准。这里简单介绍一下包管理器,包管理器提供对软件的安装、升级、查询以及卸载等,具体差别可以查阅相关文档。rpm包的安装非常简单,只需要输入rpm -i xxx.rpm 即可完成,卸载只需要rpm -e 包名 即可完成,升级通过rpm -U 包名 命令完成(需要机器联网),rpm -q 提供相关查询,这里不详细说明。如果机器没联网,rpm安装安装过程很有可能出现错误,最常见的就是依赖包缺失,把缺失的依赖包安装即可;如果在机器联网的情况下,rpm会自动在互联网搜索相关依赖包并安装。

3. deb包安装

    deb是debian及其衍生版本如Ubuntu的安装包,在这两个系统的桌面环境下,可双击包直接安装,在命令行下可以通过dpkg -i xxx.deb完成,通过dpkg -r 包名 完成。很多的Linux分支都提供了apt-get包管理系统来对deb软件包进行支持,apt-get需要机器联网,通过source.list文件提供的源(下载源)去下载相应软件包,通过输入命令apt-get install 软件包名 直接安装软件,输入 apt-get remove 软件包名 卸载对应软件包,这里不赘述命令,apt-get 包管理器实施对依赖包的管理,所以非常方便。在国内可以找一些速度快的源(更改source.list文件),具体方法可以查阅相关文档。

4. yum安装软件包

    Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的软件包管理器,yum也对依赖关系进行管理,必须在联网条件下进行(也可以给yum设置代理),使用yum安装软件也是本人最常用的方法,在shell命令行下输入
yum install 软件包名 即可完成安装
如果依赖包没安装,会自动安装,
卸载通过yum remove 包名 即可完成
与apt-get 类似。
    以上简要介绍了一下本人常用的Linux下几种包安装方法以及涉及到的问题,apt-get 与 yum并不一定能安装最新的软件包,那么需要我们自己去官网下载最新的软件包(源码打包格式或RPM格式),那么可能就要使用到源码安装或rpm安装方式。

php_screw的安装与使用

1.下载:http://sourceforge.net/projects/php-screw/files/

php文件通常以文本格式存贮在服务器端, 很容易被别人读到源代码, 为了对源代码进行保护, 可以采用对源代
码进行加密的方式.要实现该功能需要两部分:一是加密程序,实现对PHP文件的加密. 另一个就是对加密过的PHP
文件进行解析, 以得到运行结果. 前者的实现比较简单, 就是一程序而已. 后者的实现大部分都是通过php
module的形式来实现的.
php_screw(螺丝钉)可以实现以上的功能.

2.安装:
安装的目的其实就是产生两个文件:一个是用于加密PHP文件的screw, 另一个就是php加载的解析模块
php_screw.so

# tar zxf php_screw-1.5.tar.gz
# cd php_screw-1.5

注:每个加密的文件头部都一个很明显的字符串PM9SCREW, 这样很容易被人猜到是用screw加密的
这个问题的解决需要在安装的第一步就开始. 该标识串在源码的php_screw.h中. 在编译之前, 可以更改这个字
符串, 例如,更改为PeterHu, 相应的下面的长度就不再是10了, 而是\tPeterHu\t,一共7个了.
# /usr/local/php/bin/phpize # ./configure –with-php-config=/usr/local/php/bin/php-config # make && make install 这样, 解析用的php_screw.so就生成了. 接下来要得到加密用的screw
# cd php_screw-1.5/tools # make 这样就生成了screw了. 如果要加密一个lx.php文件, 则: screw lx.php, lx.php就变成加密的了, 原来明文的 lx.php被改名为lx.php.screw 例:/php_screw-1.5/tools/screw /usr/local/apache/htdocs/test.php 为了方便可以( # cp /php_screw-1.5/tools/screw /usr/bin/)

3.修改php.ini配置
接下来的任务就应该是加载php_screw.so模块了,
首先, 将该文件COPY到module目录下, 具体是哪个目录,可以参见/etc/php.ini配置文件中的extension_dir
项,RHEL 5中为/usr/lib/php/modules
通过修改/usr/local/php/etc/php.ini文件, 增加了一句extension=php_screw.so, 重启php-fpm后就成
功了
4.测试:
编写一个hello, world程序,文件名为hello.php如下:

<?
echo “Hello,world”;
?>

用php hello.php测试程序是否能成功显示, 成功显示后, 用screw对其进行加密(screw helllo.php), 然后
cat一下该php文件, 发现已经不是文本的了, 变成了许多乱字符, 说明加秘成功, 然后再php hello.php, 如
果能正常显示hello,world, 则说明加密的解析也没有问题了, 一切就算OK了

Linux tail命令

tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
1.命令格式;

tail[必要参数][选择参数][文件]

2.命令功能:
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
3.命令参数:

-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束. 
-q, --quiet, --silent 从不输出给出文件名的首部 
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

4.使用实例:

实例1:显示文件末尾内容
命令:
tail -n 5 log2014.log
输出:
[root@localhost test]# tail -n 5 log2014.log 
2014-09
2014-10
2014-11
2014-12
==============================[root@localhost test]#
说明:
显示文件最后5行内容
实例2:循环查看文件内容
命令:
tail -f test.log
输出:
[root@localhost ~]# ping 192.168.120.204 > test.log &
[1] 11891[root@localhost ~]# tail -f test.log 
PING 192.168.120.204 (192.168.120.204) 56(84) bytes of data.
bytes from 192.168.120.204: icmp_seq=1 ttl=64 time=0.038 ms
bytes from 192.168.120.204: icmp_seq=2 ttl=64 time=0.036 ms
bytes from 192.168.120.204: icmp_seq=3 ttl=64 time=0.033 ms
bytes from 192.168.120.204: icmp_seq=4 ttl=64 time=0.027 ms
bytes from 192.168.120.204: icmp_seq=5 ttl=64 time=0.032 ms
bytes from 192.168.120.204: icmp_seq=6 ttl=64 time=0.026 ms
bytes from 192.168.120.204: icmp_seq=7 ttl=64 time=0.030 ms
bytes from 192.168.120.204: icmp_seq=8 ttl=64 time=0.029 ms
bytes from 192.168.120.204: icmp_seq=9 ttl=64 time=0.044 ms
bytes from 192.168.120.204: icmp_seq=10 ttl=64 time=0.033 ms
bytes from 192.168.120.204: icmp_seq=11 ttl=64 time=0.027 ms
[root@localhost ~]#
说明:
ping 192.168.120.204 > test.log & //在后台ping远程主机。并输出文件到test.log;这种做法也使用于一个以上的档案监视。用Ctrl+c来终止。

实例3:从第5行开始显示文件

命令:
tail -n +5 log2014.log
输出:
[root@localhost test]# cat log2014.log 
2014-01
2014-02
2014-03
2014-04
2014-05
2014-06
2014-07
2014-08
2014-09
2014-10
2014-11
2014-12
==============================
[root@localhost test]# tail -n +5 log2014.log
2014-05
2014-06
2014-07
2014-08
2014-09
2014-10
2014-11
2014-12
==============================