linux的环境
1、系统位置,/etc目录下的bashrc、profile、environment三个文件
2、用户目录(root或普通用户)下的.bashrc、.bash_profile两个文件,注意这两个文件前面都有点,是隐藏文件。
按变量的周期划为永久变量和临时性变量2种:
永久变量:通过修改配置文件,配置之后变量永久生效。
临时性变量:使用命令如export等命令设置,设置之后马上生效。当关闭shell的时候失效(这种主要用于测试比较多)。
按照影响范围分为用户变量和系统变量2种:
用户变量(局部变量):修改的设置只对某个用户的路径或执行起作用;
系统变量(全局变量):影响范围是整个系统。
export命令显示当前系统定义的所有环境变量,运行返回结果如下:
echo $PATH命令输出当前的PATH环境变量的值,运行返回结果如下:
直接用export命令修改PATH值 (重启终端后配置失效)
export PATH=$PATH:/home/sphc/software/bin
该文件为当前用户配置文件,修改后,作用于当前用户的环境变量。
该文件为当前用户配置文件,修改后,作用于当前用户的环境变量。
/etc/bashrc为系统环境配置文件,需要管理员权限(如root)或者对该文件的写入权限,修改后,作用于所有用户。
/etc/profile为系统全局配置文件,需要管理员权限或者对该文件的写入权限,修改后,作用于系统下所有用户的环境变量。
/etc/environment为系统环境配置文件,需要管理员权限或者对该文件的写入权限,修改后,作用于系统下所有用户的环境变量。
2. 来学一学LINUX系统中SHELL环境的搭建技巧
什么是 LINUX SHELL环境?shell在会话中会保存着大量信息,而这些信息就是shell环境。LINNX命令程序通过获取SHELL环境中的数据(此处的数据通常称为环境变量)来输出本机相应的配置数据。
LINUX环境变量
Linux shell环境中存储了两种基本类型的数据:环境变量和shell变量。当然,除了变量,shell也存储了一些可编程的数据,即别名和shell 函数。
如何查看环境变量呢?
我们可以用bash命令set,或者使用printenv命令程序来查看环境变量。
它们的区别是:set 命令不仅显示shell数据,而且可以显示环境变量列表,而printenv命令仅仅显示环境变量列表。
鉴于环境变量列表比较长,我们可以将每个命令的输出通过管道符传递给less 来输出列表,例如:
//执行命令
[test@linuxprobe ~]$ printenv | less
//输出内容:环境变量及其数值的列表
KDE_MULTIHEAD=false
SSH_AGENT_PID=6666
HOSTNAME= linuxprobe
GPG_AGENT_INFO=/tmp/gpg-PdOt7g/S.gpg-agent:6689:1
SHELL=/bin/bash
TERM=xterm
XDG_MENU_PREFIX=kde-
HISTSIZE=1000
XDG_SESSION_COOKIE=-1208521990.996705
-1177056199
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/me/.gtkrc-2.0:/home/me/.kde/sh
are/config/gtkrc-2.0
GTK_RC_FILES=/etc/gtk/gtkrc:/home/me/.gtkrc:/home/me/.kde/share/confi
g/gtkrc
GS_LIB=/home/me/.fonts
WINDOWID=29360136
QTDIR=/usr/lib/qt-3.3
QTINC=/usr/lib/qt-3.3/include
KDE_FULL_SESSION=true
USER=test
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01
:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe:
//printenv 命令也可输出特定变量- USER的数值:
[test@linuxprobe ~]$ printenv USER
test
建立LINUX shell 环境
每当我们登录系统后,bash 程序就会自动启动,且会读取一系列配置脚本,这些配置脚本被称为启动文件。这些启动文件定义了可供所有用户共享的默认shell 环境。
那么位于家目录中的启动文件,定义了用户个人的shell 环境。
确切的启动顺序取决于shell 会话类型模式。有两种shell 会话类型模式:一个是登录shell 会话模式,另一个是非登录shell 会话模式。
登录shell 会话模式中会提示用户输入用户名和密码;非登录shell 会话模式通常在GUI下启动终端会话时出现。
登录shell 会话模式下启动文件内容:
非登录shell 会话模式下启动文件内容:
修改linux shell环境
依据通常的操作思路,通过添加目录到PATH 变量或定义新的环境变量,再把这些更改存放至.bash_profile 文件中;那么对于其它的更改呢,需要存放至.bashrc 文件中。
除了系统管理员具将系统中的所有用户修改默认设置的权限外,其他用户只能限定对个人家目录下的文件进行修改。
我们通过使用一个叫做文本编辑器的程序来编辑(或读、写)shell 的启动文件以及其它配置文件。文本编辑器是一个类似于文字处理器的程序,允许使用移动光标在屏幕上编辑。但不同之处在于文本编辑器不仅支持纯文本,而且常包含为便于写程序而设计的特性。由此可见,文本编辑器是开发人员用来写代码,以及系统管理员用来管理控制系统的配置文件的重要工具之一。
文本编辑器通常分为两种基本类型:图形化的和非图形化的(基于文本)编辑器。
一些典型的图形化编辑器有GNOME 和KDE。GNOME编辑器自带了gedit 的编辑器,它通常在GNOME 菜单中称为“文本编辑器”。KDE自带了三种编辑器,分别是kedit,kwrite,kate。
那么基于文本的编辑器有nano、vi 和emacs。
nano 编辑器是一个简单易用的编辑器。vi 编辑器(目前已被vim (“Vi IMproved” 的简写)替代)是类Unix 操作系统的传统编辑器。emacs 编辑器属于庞大的、多用途的,可做任何操作的编程环境。
无论哪种类型的文本编辑器都可以在命令行中输入编辑器的名字及想要编辑的文件名,执行文本编辑操作。在这篇文章中,我们学到了用文本编辑器来编辑配置文件的基本技巧。
这篇文章主要讨论了linux SHELL环境的一些基础知识及基本的操作技巧。在编写这篇文章过程中我还参考了 《Linux就该这么学(第2版)》 这本书,基于红帽8编写,内容很贴近实践,很有理论指导实践价值的一本书籍。
3. 什么是LINUX环境
Linux是一种操作系统,跟windows类似,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。
4. 什么是LINUX环境
linux
是内核
Android首先不是个完整的OS。这也是Android一直说自己是平台的原因,Android没有内核,所以一开始借用了Linux,然后沿用至今。内核负责系统底层的调度工作,对于一般用户而言,内核可以近似看成Windows下的“驱动”。
Android
就是
Linux
为基础的,但实际用户用起来和
Linux
基本无关,除非你破解手机才会接触到
Linux。同样
MOTO
的手机也是这样。另外,三星很久以前有一款
Linux
手机。国内还有几个厂家用了
Linux
的系统,好像酷派就有几款,听说国内的
newplus
系统就是
Linux
为基础的。moto
的手机,新
Linux
机器都是
Android
,老机器是他的
ezx
linux
。NOKIA
的新机器
N900
也是
Linux
的。
这些类型的
Linux
互相之间完全不兼容。根本就不能算是一种系统。
5. linux的桌面环境
推荐5款Linux桌面环境,个个都值得拥有!
第一个:KDE
提到Linux桌面环境不得不提到KDE,有人说他是传统桌面之王这一点都不为过;而相比之下,KDE在Linux桌面环境选择上十分占优势。在近几年的Linux Journal评比中,KDE一直蝉联Linux最佳桌面。KDE的开发始于1996年,第一版发布于1998年。应该说KDE的可定制十分高,你几乎可以定制任何东西。
相比于其他桌面环境需要使用额外的工具才能进行自定义,KDE显得十分灵活,因为它已经将这一切都集成进了系统设置中,所以用户无需其他辅助工具就可以对桌面进行个性化设置。可以说KDE将你所需要的基本应用、工具全都打包了,所以十分方便。
很多流行的Linux发行版都提供KDE,目前采用KDE作为默认桌面环境的Linux发行版主要有openSUSE和Kubuntu。
第二个:GNOME
GNOME第一版发布于1999年,是目前十分流行的一种桌面环境,其分支比较多,如:Cinnamon、Unity等。其定制化没有KDE那么灵活、完善,但是可以通过第三方应用,如gnome-tweak-tool等来实现定制化。
GNOME是Fedora的默认桌面环境,目前使用GNOME作为默认桌面环境的Linux发行版主要有Debian、Fedora、openSUSE和Ubuntu GNOME。
第三个:MATE
MATE的出现是基于GNOME2已不再维护的代码创建的一个分支,最初也是为那些对GNOME3失望的用户而开发。如今也赢得很多开发者的喜爱。
MATE的优势在于其本身对资源的消耗非常小,所以如果你有一台配置不是那么高端,运行有较慢的电脑,相信选择MATE是不会错的。
在个性化定制方面,MATE自带的基本应用都从GNOME2复制过来进行集成,支持面板系统、菜单、小程序、指示器等可按用户需求配置。
第四个:Cinnamon
Cinnamon作为Linux Mint的默认桌面环境,虽然长的很像Windows用户界面,但是它拥有高度可定制化,且不需要任何额外的插件、小工具和配置工具来定制桌面。
Cinnamon的开发源自GNOME 3,但是比MATE花哨一些。与Windows相似的用户界面让Cinnamon成为部分初学者的选择。
Cinnamon作为Linux Mint的默认桌面环境,但是,很多其他Linux发行版也提供自己的Cinnamon风格。
第五个:Unity
Unity是Ubuntu的缺省桌面,也是很多初学者最开始接触Linux作用的桌面,是一个对触控优化的桌面,其最初的开发目的也是为了充分使用上网本的小屏幕。但众所周知,上网本最终并没有得到大多数用户的认可。
Unity也基于GNOME桌面环境,第一次发行是在2010年,而它作为Canonical公司开发的图形用户界面,在经历了几次重大改进之后,终于可以像其他桌面一样安装在发行版上了。
6. linux多用户需要重新配置环境吗
linux多用户不需要重新配置环境。
在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。要让刚才的修改马上生效,需要在用户目录下执行以下代码。
系统内核的路由转发:
Linux操作系统嵌入了TCP/IP协议栈,协议软件具有路由转发功能。路由转发依赖作为路由器的主机中安装多块网卡,当某一块网卡接收到数据包后,系统内核会根据数据包的目的IP地址。
查询路由表,然后根据查询结果将数据包发送到另外一块网卡,最后通过此网卡把数据包发送出去。此主机的处理过程就是路由器完成的核心功能。
通过修改Linux系统内核参数ip_forward的方式实现路由功能,系统使用sysctl命令配置与显示在/proc/sys目录中的内核参数。首先在命令行输入:cat /proc/sys/net/ipv4/ip_forwad,检查Linux内核是不是开启IP转发功能。
7. 在Linux里设置环境变量的方法(export PATH)
比如要把/etc/apache/bin目录添加到PATH中,方法有三:
1.#PATH=$PATH:/etc/apache/bin
使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效
2.#vi /etc/profile
在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格)
这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变
3.#vi ~/.bash_profile
修改PATH行,把/etc/apache/bin添加进去
这种方法是针对用户起作用的
注意:想改变PATH,必须重新登陆才能生效,以下方法可以简化工作:
如果修改了/etc/profile,那么编辑结束后执行source profile(source /etc/profile) 或 执行点命令 ./profile,PATH的值就会立即生效了。
这个方法的原理就是再执行一次/etc/profile shell脚本,注意如果用sh /etc/profile是不行的,因为sh是在子shell进程中执行的,即使PATH改变了也不会反应到当前环境中,但是source是在当前 shell进程中执行的,所以我们能看到PATH的改变。
这样你就学会Linux系统下修改环境变量PATH路径的方法。
补充说明
工作环境设置文件
环境设置文件有两种:系统环境设置文件 和 个人环境设置文件
1.系统中的用户工作环境设置文件:
登录环境设置文件:/etc/profile
非登录环境设置文件:/etc/bashrc
2.用户个人设置的环境设置文件:
登录环境设置文件: $HOME/.bash_profile //这个是环境变量设置的地方
非登录环境设置文件:$HOME/.bashrc //这个是定义别名的地方
登录环境:指用户登录系统后的工作环境
非登录环境:指用户再调用子shell时所使用的用户环境
8. linux平台下有哪些开发环境
1.大多数Linux发放版本,自身捆绑了诸如Java、Gcc、Perl、Python等常用开发工具。
2.Windows环境的快速开发工具(RAD),像Borland的C++ Builder、Delphi等可视化开发环境,通过简单的用户界面设计、方便的拖拽式开发,促成了Windows平台应用软件的极大丰富。
3.Kylix2还是将Delphi从Windows搬到了Linux,C++Builder及Delphi程序语言,为Linux平台开发者提供了一个快速开发电子商务应用的解决方案。据称,无论是建立图形用户界面、数据库或是Web及Web Services应用程序,Kylix3都将带来更快速、更简单的使用经验。
4.ylix3具有Windows 平台下C++ Builder程序开发人员熟悉的工作界面,并同时支持ANSI/ISO C++标准,
5.由Kylix 3开发的基于Linux的应用程序,将其源代码经C++Builder或Delphi重新编译之后即可在Windows环境下顺利执行,在Windows平台经过编译后,可供MS IIS、Apache、Netscape等不同Web服务器使用。
6.可视化C++编译环境和组件式的开发方式,使原本对Linux平台不熟悉的开发者,也能够顺利进行开发
9. Linux哪个桌面环境最好
第一个:KDE
提到Linux桌面环境不得不提到KDE,有人说他是传统桌面之王这一点都不为过;而相比之下,KDE在Linux桌面环境选择上十分占优势。在近几年的Linux
Journal评比中,KDE一直蝉联Linux最佳桌面。KDE的开发始于1996年,第一版发布于1998年。应该说KDE的可定制十分高,你几乎可以定制任何东西。
相比于其他桌面环境需要使用额外的工具才能进行自定义,KDE显得十分灵活,因为它已经将这一切都集成进了系统设置中,所以用户无需其他辅助工具就可以对桌面进行个性化设置。可以说KDE将你所需要的基本应用、工具全都打包了,所以十分方便。
很多流行的Linux发行版都提供KDE,目前采用KDE作为默认桌面环境的Linux发行版主要有openSUSE和Kubuntu。
第二个:GNOME
GNOME第一版发布于1999年,是目前十分流行的一种桌面环境,其分支比较多,如:Cinnamon、Unity等。其定制化没有KDE那么灵活、完善,但是可以通过第三方应用,如gnome-tweak-tool等来实现定制化。
GNOME是Fedora的默认桌面环境,目前使用GNOME作为默认桌面环境的Linux发行版主要有Debian、Fedora、openSUSE和Ubuntu GNOME。
第三个:MATE
MATE的出现是基于GNOME2已不再维护的代码创建的一个分支,最初也是为那些对GNOME3失望的用户而开发。如今也赢得很多开发者的喜爱。
MATE的优势在于其本身对资源的消耗非常小,所以如果你有一台配置不是那么高端,运行有较慢的电脑,相信选择MATE是不会错的。
在个性化定制方面,MATE自带的基本应用都从GNOME2复制过来进行集成,支持面板系统、菜单、小程序、指示器等可按用户需求配置。
第四个:Cinnamon
Cinnamon作为Linux Mint的默认桌面环境,虽然长的很像Windows用户界面,但是它拥有高度可定制化,且不需要任何额外的插件、小工具和配置工具来定制桌面。
Cinnamon的开发源自GNOME 3,但是比MATE花哨一些。与Windows相似的用户界面让Cinnamon成为部分初学者的选择。
Cinnamon作为Linux Mint的默认桌面环境,但是,很多其他Linux发行版也提供自己的Cinnamon风格。
第五个:Unity
Unity是Ubuntu的缺省桌面,也是很多初学者最开始接触Linux作用的桌面,是一个对触控优化的桌面,其最初的开发目的也是为了充分使用上网本的小屏幕。但众所周知,上网本最终并没有得到大多数用户的认可。
Unity也基于GNOME桌面环境,第一次发行是在2010年,而它作为Canonical公司开发的图形用户界面,在经历了几次重大改进之后,终于可以像其他桌面一样安装在发行版上了。
10. linux 的环境搭建(二)--redis单机环境、生产环境、集群环境的搭建
一、目录
1、工具
2、安装tcl
3、安装单机版redis
4、把redis设置为daemon进程,每次系统启动,redis进程一起启动
5、安装redis cluster
二、工具
2.1、tcl8.6.1-src.tar.gz
2.2、ruby-2.3.1.tar.gz
2.3、redis-4.1.1.gem
2.4、redis-3.2.8.tar.gz
2.5、openssl-1.0.2r.tar.gz
三、安装tcl(安装redis必须先要安装tcl)
3.1、把tcl8.6.1-src.tar.gz通过WinSCP上传到虚拟机中的/usr/local目录下
四、安装单机版redis
4.1、把redis-3.2.8.tar.gz通过WinSCP上传到虚拟机中的/usr/local目录下
4.2、依次运行如下命令:
tar -zxvf redis-3.2.8.tar.gz 解压文件
cd redis-3.2.8
make && make test && make install
五、把redis设置为daemon进程,每次系统启动,redis进程一起启动
5.1、将redis的utils目录下的redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_6379,6379是我们希望这个redis实例监听的端口号
5.2、修改redis_6379脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379)
protected-mode no 取消保护模式,保护模式只能127.0.0.1访问
daemonize yes 让redis以daemon进程运行
pidfile /var/run/redis_6379.pid 设置redis的pid文件位置
bind 192.168.3.110
port 6379 设置redis的监听端口号
dir /var/redis/6379 设置持久化文件的存储位置
logfile /var/log/redis/6379.log 设置日志文件位置
5.6、启动redis,依次执行:
cd /etc/init.d,
chmod 777 redis_6379,赋读写执行的权限(chmod -R 777 * 是递归把该目录下的所有文件和其子文件全部赋权限)
./redis_6379 start 启动
5.7、确认redis进程是否启动,ps -ef | grep redis
5.8、让redis跟随系统启动自动启动
5.9、重启系统,不手动启动redis,直接连接redis,可以连接上,表示配置成功
此时一个单机版的redis的生产环境已经搭建好了,每次服务器重启,redis都会自动的启动
六、安装redis cluster
(redis cluster集群,要求至少3个master,去组成一个高可用,健壮的分布式的集群,每个master都建议至少给一个slave,3个master,3个slave)
6.1、前提,我在其它机器上启动了六个redis(安装步骤都如下)
2.2、创建三个目录:
mkdir -p /etc/redis-cluster 存放集群配置信息,自动生成配置
mkdir -p /var/log/redis redis日志
mkdir -p /var/redis/7001 存放redis的rdb文件和aof文件
6.3、将redis的utils目录下的redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_7001,7001是我们希望这个redis实例监听的端口号,并修改redis_7001配置文件中的REDISPORT=7001
6.4、修改/etc/redis/7001.conf中的部分配置为生产环境
6.5、完成了一个redis环境的配置,依次再配置其余五个,分别为7002、7003、7004、7005、7006,每个启动脚本内,都修改对应的端口号
6.6、启动6个redis实例
6.7、创建集群(需要安装ruby、rubygems)
上述命令在部分机器上是可以直接运行完成,成功安装的,但在部分机器上运行第三条命令时会提示ruby版本太低、openssl找不到的问题,下面依次解决这两个问题:
6.8、再次运行gem install redis命令,报出两个错误
6.9、再次运行gem install redis命令,报出一个错误
6.10、再次运行gem install redis命令,报出一个错误
6.11、再次运行gem install redis命令
[root@ceshi01 local]# gem install redis
Successfully installed redis-4.1.1
Parsing documentation for redis-4.1.1
Done installing documentation for redis after 1 seconds
WARNING: Unable to pull data from ' https://rubygems.org/' : SSL_connect returned=1 errno=0 state=error: certificate verify failed ( https://api.rubygems.org/specs.4.8.gz )
1 gem installed
运行成功
此时Redis安装好,此三个工具也安装好了,这时我们来做一个Redis集群测试,在一台服务器中创建了6个Redis实例,开启6个Redis服务
redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006
[root@eshop-cache02 init.d]# redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006
此时一个redis集群环境就已经搭建好了,可以通过redis-trib.rb check 192.168.3.105:7003命令查看集群几点的信息
[root@eshop-cache02 init.d]# redis-trib.rb check 192.168.3.105:7004
redis cluster的优点:读写分离+高可用+多master
读写分离:每个master都有一个slave
高可用:master宕机,slave自动被切换过去
多master:横向扩容支持更大数据量