完美介绍linux环境变量与部分命令

linux环境变量介绍

环境变量:bash shell用一个称作“环境变量(environment variables)”的特性来存储有关shell会话和工作环境的信息,它允许你在内存中存储数据,以便运行在shell上的程序和脚本访问,这些数据可以用来识别用户、账户、系统、shell特性以及任何其他你需要存储的数据。

shell中的环境变量有全局环境变量和局部环境变量,通过KV(variable=value)的形式声明一个局部变量,export这个局部变量,则升级成为全局环境变量。

关于linux的设置,有很多方法,可能大家会有所混淆。例如:

1、你知道/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 的区别吗?

2、Linux 中 rc.local、init.d、init 、rc.d等文件的作用和区别是什么?

看到这些,不免有些头大,今天就简单的整理一下!


/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行并从/etc/profile.d目录的配置文件中搜集shell的设置。

/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。

~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该 该文件被读取。

区别:

/etc/profile,/etc/bashrc 是系统全局环境变量设定 
~/.profile,~/.bashrc用户目录下的私有环境变量设定

读取环境变量一般有三步:


 一、读入的是全局环境变量设定的文档/etc/profile,然后根据其内容读取额外的设定的文档,如 /etc/profile.d和/etc/inputrc   

 二、根据不同使用者帐号,去其他目录读取~/.bash_profile,如果这读取不了就读取~/.bash_login,这个也读取不了才会读取 ~/.profile,这三个文档设定基本上是一样的,读取有优先关系

 三、最后再根据用户帐号读取~/.bashrc

~/.profile与~/.bashrc相同点:

 都具有个性化定制功能 
 ~/.profile可以设定本用户专有的路径,环境变量,等,它只能登入的时候执行一次 
 ~/.bashrc也是某用户专有设定文档,可以设定路径,命令别名,每次shell script的执行都会使用它一次

rc.local、init.d、init 、rc.d


init 文件名,指的是系统启动的第一个脚本

init.d 目录名,目录内放的是各个服务的启动脚本,比如sshd、httpd等

rcX.d 目录名,后面的X代表着每个运行级别。目录内有每个服务在init.d内启动脚本的链接文件,根据链接文件的名字来的启动状态。K开头表示不启动服务,S打头表示启动服务,X取值0~6(rc.d,rc,rc0.d,rc6.d等等)

rc.local 链接文件,指到/etc/rc.d/rc.local。是系统初始化及服务均启动完毕后,最后执行的一个脚本,一些简单的脚本可以放到其中

linux部分命令介绍

netstat

Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

常见参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

ll 命令

ll 命令列出的信息更加详细,有时间,是否可读写等信息 。

ll会列出该文件下的所有文件信息,包括隐藏的文件,而ls -l只列出显式文件,说明这两个命令还是不等同的!

ps命令

该命令用于将某个时间点的进程运行情况选取下来并输出,process之意,它的常用参数如下:

-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出

其实我们只要记住ps一般使用的命令参数搭配即可,它们并不多,如下:

ps aux # 查看系统所有的进程数据
ps ax # 查看不与terminal有关的所有进程
ps -lA # 查看系统所有的进程数据
ps axjf # 查看连同一部分进程树状态

kill命令

该命令用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用,它的基本语法如下:

kill -signal PID

signal的常用参数如下:

注:最前面的数字为信号的代号,使用时可以用代号代替相应的信号。

1:SIGHUP,启动被终止的进程
2:SIGINT,相当于输入ctrl+c,中断一个程序的进行
9:SIGKILL,强制中断一个进程的进行
15:SIGTERM,以正常的结束进程方式来终止进程
17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行

例如: 以正常的结束进程方式来终于第一个后台工作,可用jobs命令查看后台中的第一个工作进程

kill -SIGTERM %1

重新改动进程ID为PID的进程,PID可用ps命令通过管道命令加上grep命令进行筛选获得

kill -SIGHUP PID

wget

1、使用wget下载单个文件

wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-2.6.3.tgz

2、使用wget -O下载并以不同的文件名保存

wget -O haorooms.zip http://www.haorooms.com/download.php?id=1080 

3、使用wget –limit -rate限速下载 当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。

wget –limit-rate=300k http://cn.wordpress.org/wordpress-3.1-zh_CN.zip 

4、使用wget -c断点续传 使用wget -c重新启动下载中断的文件:

wget -c http://www.haorooms.com/haorooms-3.1-zh_CN.zip 

对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。

5、使用wget -b后台下载 对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载。

wget -b http://www.haorooms.com/haorooms-3.1-zh_CN.zip

Continuing in background, pid 1840. 
Output will be written to `wget-log'. 

你可以使用以下命令来察看下载进度

tail -f wget-log

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秒

下面的命令是显示文件末尾5行

tail -n 5 log2014.log

curl命令

可以查看网站,也可以下载文件!

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。

语法:

curl [option] [url]

常见参数:

-A/--user-agent <string>    设置用户代理发送给服务器
-b/--cookie <name=string/file> cookie字符串或文件读取位置
-c/--cookie-jar <file>     操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>   断点续转
-D/--dump-header <file>    把header信息写入到该文件中
-e/--referer         来源网址
-f/--fail           连接失败时不显示http错误
-o/--output         把输出写到该文件中
-O/--remote-name      把输出写到该文件中,保留远程文件的文件名
-r/--range <range>      检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent         静音模式。不输出任何东西
-T/--upload-file <file>     上传文件
-u/--user <user[:password]>  设置服务器的用户和密码
-w/--write-out [format]    什么输出完成后
-x/--proxy <host[:port]>    在给定的端口上使用HTTP代理
-#/--progress-bar      进度条显示当前的传送状态

小结

关于环境变量与命令就介绍到这,其实linux命令还有很多,上面的命令是我经常用到的,给有需要的朋友参考。