【系統知識點】linux基礎&優化命令

Xshell上傳下載服務器的文件:

yum -y install lrzsz sysstat//安裝對應軟件

sz XXXX//下載

rz XXXX//上傳

 

創建用戶:

Useradd vrfxie //創建用戶

-c comment 指定一段註釋性描述。

-d 目錄 指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,可以創建主目錄。

-g 用戶組 指定用戶所屬的主用戶組。

-G 用戶組,用戶組 指定用戶所屬的附加組。

-s Shell文件 指定用戶的登錄Shell #可以設置爲/sbin/nologin意思是用戶不允許登錄,僅不可登陸,但可以運行某些服務

-u 用戶號 指定用戶的用戶號,如果同時有-o選項,則可以重複使用其他用戶的標識號。

 

Passwd vrfxie  //創建密碼

密碼不符合安全設定的話 就會提醒你 但還是能創建的

一步創建到位,非交互操作:echo "vrf123" | passwd --stdin vrfxie

 

for user in 'seq 10';do useradd user$user;echo user$user | passwd --stdin user$user;done //批量創建用戶

 

Woami //查看當前用戶,檢查一下

 

Su - //切換用戶,如果使用su而不加上“-”這個參數,那麼,切換前的用戶的相關信息還會存在

 

$是普通用戶的命令提示符,#是超級用戶的命令提示符

 

su命令總結

1)普通用戶切換到root用戶,可使用su -或su - root。必須輸入root密碼才能完成切換。

2)root用戶切換到普通用戶,可使用“su - 普通用戶名”的寫法。不需要輸入任何密碼就能完成切換。切換到普通用戶後,在執行一些命令如ifconfig時,可能會遭遇到環境變量PATH路徑問題而找不到某些系統命令(一般是/sbin,/usr/sbin等下面的命令),這時就需要將普通用戶的PATH,配置成root的PATH內容,前面的文章已講解過這個配置方法,不清楚的讀者,可以翻閱下。

3)如果僅希望在某用戶下執行命令,而不直接切換到該用戶下操作,可以使用 su - 用戶名 -c "命令"的方式。

 

rpm軟件管理

rpm -qa | grep XXX //查看對應軟件有沒安裝

如何查看rpm包裏有什麼內容

rpm -qlp

如何查看rpm包的安裝腳本

rpm -qp --scripts

如何查看rpm包的依賴性關係

rpm -qp --requires

如何查看rpm包詳細信息

rpm -qi

如何安裝rpm包

rpm -ivh

如何更新軟件

rpm -Uvh

如何卸載軟件

rpm -e

如何在安裝過程中指定相對安裝路徑

rpm -ivh --nodeps --force --root=你指定的路徑

如何在安裝過程中忽略依賴性關係

rpm -ivh --nodeps --force

如何查看rpm包的更新記錄

 

yum

基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

 

設置更新源(改成國內的源):

mv   CentOS6-Base.repo  CentOS6-Base.repo.ori

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

mv CentOS6-Base-163.repo CentOS6-Base.repo

yum makecache

系統&軟件更新:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* //導入驗證密鑰,驗證安裝包的安全性

yum update

安裝包羣:

yum grouplist //查看程序包羣的安裝情況

yum groupinstall "XXXX" //安裝包羣

yum groupremove   //卸載包組

 

事先規劃磁盤,引導程序

建議練習機安裝時的磁盤分區能有//boot,swap三個分區,這也是工作中常用的分區方法。如果是數據庫及存儲的服務器還可以在分出一個/data分區。

 

門戶網站一般的分區方案:假設服務器16G內存,1T硬盤。

/boot 分區 100-200M

swap 分區 物理內存的1.5-2倍,如果內存大於16G,可以給8-16G

/分區 80-200G

剩餘空間不分,保留給使用的人根據業務在具體問題具體分區

 

web服務器集羣,普通服務器:600G-1T的硬盤

/boot 100-200M

swap 1.5 men(如果大於8G,就給8-16G

/ 所有剩餘的,相當於筆記本的只有C盤。

數據有集羣所以不怕丟失,一塊分區,使用不存在分區不夠大問題。

 

數據庫存儲系統:600G-1T的硬盤

 

LAMPLNMP服務器:

/boot 100-200M

swap 1.5 men(如果大於8G,就給8-16G

/ 40-80-100G

/data 所有剩餘空間都給/data

提示:一般有重要數據的業務,儘可能數據所在的分區獨立分出來。

 

SElinux

Linux的一個擴張強制訪問控制安全模塊

 

Getenforce //查看Selinux的狀態

 

Setenforce 0/1 //開關Selinux,一般選擇關閉,開啓性價比不高

 

linux運行級別

 

關機                         0 - halt (Do NOT set initdefault to this)

單用戶模式                   1 - Single user mode

多用戶模式,沒有NFS 2 - Multiuser, without NFS (The same as 3, if you do not have networking)

全功能多用戶模式(命令行模式)3 - Full multiuser mode

圖形化環境              5 - X11

重啓                                   6 - reboot (Do NOT set initdefault to this)

 

init x(x=0,1,3,5,6)  #切換運行級別

startx   #init 5,進入圖形化環境

 

查看運行級別配置

[root@rex / 12:27:13]# cat /etc/inittab

# Default runlevel. The runlevels used are:

#   0 - halt (Do NOT set initdefault to this)

#   1 - Single user mode

#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)

#   3 - Full multiuser mode

#   4 - unused

#   5 - X11

#   6 - reboot (Do NOT set initdefault to this)

#

id:5:initdefault: //默認運行級別

 

開機服務設置:

命令的處理方法:1ntsysv 2setup-system service 3)腳本一鍵完成處理

 

腳本:

# LANG=en

# for SS in 'chkconfig --list | grep 3:on | awk '{print $1}'';do chkconfig --level 3 $SS off;done #把所有服務關閉

# for SS in crond network syslog sshd;do chkconfig --level 3 $SS on;done #只開啓自己想要的服務

 

# chkconfig --list|grep 3:on #查詢開啓的服務

acpid                  0:off        1:off        2:on        3:on        4:on        5:on        6:off

atd                    0:off        1:off        2:off        3:on        4:on        5:on        6:off

auditd                 0:off        1:off        2:on        3:on        4:on        5:on        6:off

 

設置開機自啓動服務原則:最小化原則---儘量不安裝不適用的軟件,儘量不開啓不需要開啓的而服務。即只要不用就不要開啓,這樣的系統的性能和安全性纔是最好的。

 

sudo權限管理

 

# visudo //授權給各用戶

user    MACHINE(授權哪個角色的權力)      COMMANDS(對應命令)

 ## Allow root to run any commands anywhere

 root    ALL=(ALL)       ALL

 rex     ALL=(ALL)       NOPASSWDALL //無敵,密碼都不用

            rex2    ALL=(root)      !/usr/bin/passwd,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root

授權後,對應用戶用sudo+命令然後輸入自己密碼即可以root身份執行,短時間內再操作,可不需要密碼

[rex2@rex ~ 15:56:22]$ sudo /usr/sbin/useradd kkk

[sudo] password for rex2:

 

Which //查看命令所在位置

 

重要的環境變量:

 

PATH //路徑變量,路徑變量裏面有的路徑,就可以直接執行路徑裏面的命令

#echo $PATH //查看路徑變量

#vim .bash_profile //修改路徑變量(全局)

 

SSH服務優化:

//優化配置,防止***

主配置文件:/etc/ssh/sshd_config

Port 1631 //修改端口號,對應防火牆要開啓

PermitRootLogin no //root很敏感,不允許root遠程登錄

PermitEmptyPasswords no //禁止空密碼

UseDNS no//不適用DNS

/etc/init.d/sshd restart //重啓服務,生效配置

netstat -n | grep -i est//查看ssh連接情況

 

合適字符集設置:

簡單的說就是一套文字符號及其編碼。常用的字符集有:

GBK 定長 雙字節 不是國際標準,支持的系統不少

UTF-8 非定長 1-4字節 廣泛支持,mysql也使用

 

通過快捷的命令方式在/etc/sysconfig/il8n中添加內容即可//設置字符集

 

cat /etc/sysconfig/i18n //查看字符集

LANG="C"

SYSFONT="latarcyrheb-sun16"

 

cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori

echo 'LANG="zh_CN.GB18030"' > /etc/sysconfig/i18n //中文顯示配置要跟SSH客戶端一樣

source /etc/sysconfig/i18n

//修改爲中文顯示

ps:當然能不用中文就不用中文,這裏只是以中文爲例子

 

時間同步:

# ntpdate time.nist.gov  //手動更新

# echo '*/5 * * * * /sbin/ntpdate time.nist.gov > /dev/null 2>&1' >> /var/spool/cron/root  //建立定時更新,正確錯誤信息不顯示


加大服務器描述符:

 

內核(kernel)利用文件描述符(file descriptor)來訪問文件。文件描述符是非負整數。打開現存文件或新建文件時,內核會返回一個文件描述符。讀寫文件也需要使用文件描述符來指定待讀寫的文件。

習慣上,標準輸入(standard input)的文件描述符是 0,標準輸出(standard output)是 1,標準錯誤(standard error)是 2。儘管這種習慣並非

Unix內核的特性,但是因爲一些 shell 和很多應用程序都使用這種習慣,因此,如果內核不遵循這種習慣的話,很多應用程序將不能使用。

文件描述符是由

無符號整數表示的句柄,進程使用它來標識打開的文件。文件描述符與包括相關信息(如文件的打開模式、文件的位置類型、文件的初始類型等)的文件對象相關聯,這些信息被稱作文件的上下文。

ulimit -n //查看當前描述符限制量爲多少

設置描述符數量:

1.在文件/etc/security/limits.conf末尾配置 *     -        nofile        65535

2.ulimit -SHn 65535 //openfile   ulimit -s 65535//stacksize    #也可以加入/etc/rc.local,每次重啓生效

 

調整內核參數文件/etc/sysctl.conf

#此優化適合apachenginxsquid多種等web應用,特許業務也可能需要略作調整

所謂內核優化,主要是在linux系統中針對業務服務應用而進行的系統內核參數優化,優化並無特殊的標準,

下面以常見生產環境linux的內核優化條目,自行百度其意義&測試適合自己的配置值

net.ipv4.tcp_fin_timeout

net.ipv4.tcp_tw_reuse

net.ipv4.tcp_tw_recycle

net.ipv4.tcp_syncookies

net.ipv4.tcp_keepalive_time

net.ipv4.tcp_local_port_range

net.ipv4.tcp_max_syn_backlog

net.ipv4.tcp_max_tw_buckets

net.ipv4.tcp_synack_retries

net.ipv4.tcp_syn_retries

net.ipv4.tcp_max_orphans

net.core.somaxconn

net.core.netdev_max_backlog

sysctl -p //激活生效

 

鎖定關鍵系統文件:

chattr +i /etc/passwd

chattr +i /etc/shadow

chattr +i /etc/group

chattr +i /etc/gshadow

chattr +i /etc/inittab

 

然後把chattr改名,也就是把鎖命令隱藏

 mv /usr/bin/chattr /usr/bin/yincang

 

隱藏我們的版本(放煙幕彈給***):

修改 /etc/issue

 

更多優化可參考:http://oldboy.blog.51cto.com/2561410/988726





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章