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:橫向擴容支持更大數據量