好記性不如爛筆頭,記錄幾個常用的Linux操作

作者:老王

Shell公共函數庫

Linux系統里有一些公共的Shell函數庫可供使用,最重要的是/etc/rc.d/init.d/functions,在/etc/init.d目錄下有很多腳本都用到了這個函數庫,里面提供了很多有用的方法,比如:killproc()等等。所以編寫自己的Shell腳本時可以套用這個函數庫:

if [ -f /etc/init.d/functions ]; then
??? . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
??? . /etc/rc.d/init.d/functions
else
??? exit 0
fi


Shell里循環的幾種方式

for i in `seq 1 10`; do echo $i; done
for ((i=1; i<=10; i++)); do echo $i; done

設置linux系統里打開文件描述符的最大值

通過ulimit -n命令可以查看linux系統里打開文件描述符的最大值,一般缺省值是1024,對一臺繁忙的服務器來說,這個值偏小,所以有必要重新設置linux系統里打開文件描述符的最大值。那么應該在哪里設置呢?

比如說想把linux系統里打開文件描述符的最大值設置為65535, 命令是ulimit -n 65535。需要說明的是這是一個和會話相關的命令,比如說你打開兩個命令行終端,分別設置一個不同的值,再查詢,會發現彼此不受影響。那么到底應該在哪里設置linux系統里打開文件描述符的最大值呢?一個最常見的錯誤就是在/etc/rc.local里設置,因為rc.local是在最后才被加載的,所以前面加載的程序,如/etc/init.d里的程序都沒有機會使用到這個設置值,只有rc.local文件里ulimit -n 65535聲明后面的命令才能使用到這個設置值,因為它們在同一個會話里。

最正確的做法是在/etc/security/limits.conf里設置:

* hard nofile 65535
* soft nofile 65535


這樣設置后所有的程序,所有的會話就都能使用到這個設置值了。

找出大文件

磁盤空間被耗盡的時候,免不了要清理一下,比如說/home目錄太大,就可以使用下面命令看看到底是誰:

du -s /home/* | sort -nr

根據負載自動重啟Apache


#!/bin/sh

APACHE=/usr/local/bin/apachectl
LOG=/var/log/apache.log

if [ `awk -F. '{print $1}' /proc/loadavg` -gt 100 ]; then
??? echo "Stop Apache at `date`" >> $LOG

??? $APACHE stop

??? while [ `ps -ef | grep httpd | grep start | wc -l` -gt 0 ]; do
??????? killall httpd
??????? sleep 1
??? done

??? echo "Start Apache at `date`" >> $LOG

??? $APACHE start
fi


查看服務器型號

dmidecode -s system-product-name

我在Dell的PowerEdge 1950服務器上使用上述命令能看到結果,但是在HP的ProLiant DL380 G5服務器上使用system-product-name卻無效,什么也找不到,此時只能用dmidecode | more自己慢慢查了。

限制可以使用su命令的用戶

vi /etc/pam.d/su

# Uncomment the following line to require a user to be in the "wheel" group.
# auth required pam_wheel.so use_uid


取消相應的注釋僅讓wheel組用戶能使用su命令

/usr/sbin/visudo(vi /etc/sudoers)

# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL

# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL


一個是輸入密碼的,一個是不用輸入密碼的,選一個取消注釋。

剩下的就是把用戶加到wheel組,可以先在/etc/group文件里查詢wheel的GID,然后修改密碼文件:

/usr/sbin/vipw(vi /etc/passwd)

或者直接使用命令:

/usr/sbin/vigr(vi /etc/group)

把用戶名加到wheel行的末尾,如果是多個用戶名的話用逗號分隔,group文件的詳細介紹看man group

但更好的方法是使用gpasswd命令:

gpasswd -a 用戶名 wheel

設置好之后可以用groups命令查看一下:

groups 用戶名

Debian下自動生成最快的sources.list

老版Debian可以使用base-config來設置sources.list,但是在新版中這個軟件包已經被取消了,取而代之的是netselect-apt,先安裝這個軟件包:

aptitude install netselect-apt
cd /etc/apt
netselect-apt stable


這樣就能自動生成最快的sources.list文件了。

題外話,aptitude install build-essential,裝完系統順手就裝上這個,免得以后麻煩。

CentOS下有一個功能差不多的軟件包,可以這樣安裝:yum install yum-fastestmirror( 參考鏈接)

萬能的“-”參數

橫線“-”參數在Linux里有很多奇妙的應用。

RewriteRule . - [F]

在rewrite里,橫線"-"表示什么也不做,整句的含義直接按標志位[F]的意思來,也就是禁止。

cd -命令:An argument of - is equivalent to $OLDPWD(man cd)
su -命令:Make the shell a login shell(man su)

在tar命令里,橫線“-”還代表著輸入,輸出:

tar zcvf - /path/to/foo | (cd /path/to/bar; tar zxvf -)
tar zcvf - /path/to/foo | ssh ip "cd /path/to/bar; cat > filename.tgz"


gzip -cd foobar.tar.gz | tar xf -

使用/dev/zero,/dev/null兩個設備分別測試磁盤的讀寫性能

假設256M的數據,分別按4k, 8k的BlockSize大小進行讀寫測試:

time dd if=/tmp/testfile of=/dev/null bs=4k(4k讀)
time dd if=/tmp/testfile of=/dev/null bs=8k
(8k讀)

time dd if=/dev/zero of=/tmp/testfile bs=4k count=65536 (4k寫)
time dd if=/dev/zero of=/tmp/testfile bs=8k count=32768 (8k寫)

可以man zero或者man null看具體介紹。

查看Apache編譯的模塊

httpd -l (for static modules)
httpd -M (for shared/dynamic modules)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453440.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453440.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453440.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用matlab簡單電路模型,基于MATLAB的電路模型仿真應用

基于MATLAB的電路模型仿真應用實驗指導書一、實驗目的1、掌握采用M文件及SIMULINK對電路進行仿真的方法。2、熟悉POWERSYSTEM BLOCKSET 模塊集的調用、設置方法。3&#xff0e;進一步熟悉M腳本文件編寫的方法和技巧。二、實驗原理1、通過M文件實現電路仿真的一般仿真步驟為&…

春節期間小游戲同時在線人數最高達2800萬人/小時

微信官方發布2018年春節期間微信數據報告&#xff1a;除夕至初五&#xff0c;總共有2,297億條微信消息&#xff0c;28億條微信朋友圈成功發出&#xff0c;音視頻通話總時長175億乙分鐘。其中&#xff0c;90后用廣的消息發送量占總量的42.5%&#xff0c;80后用戶25.9%&#xff0…

C語言中* 和

&x是對x變量取地址&#xff0c;也就是返回的是x的地址。 int *i;這里面的*說明變量i是一個指針&#xff0c;存的是一個地址。 而 *i整體代表的是一個數值&#xff0c;例如可以int *i 5 這里整體的*i代表的是5&#xff0c;而i代表的是這個值存儲的地址

餐館的故事-淺析職責鏈模式

我們在餐館吃飯的時候&#xff0c;一般都是在拿到菜單后&#xff0c;選擇喜歡的菜&#xff0c;然后通知服務員。服務員會將我們的定單交給大廚&#xff0c;大廚可能會親自去做這道菜&#xff0c;也可能安排給小廚來做&#xff0c;總之&#xff0c;我們不用擔心他們沒有人做菜&a…

JDBC數據對象存儲

一&#xff1a;將查詢的結果生成對象&#xff0c;儲存在數組中。 1 package day31;2 3 import java.sql.Connection;4 import java.sql.PreparedStatement;5 import java.sql.ResultSet;6 import java.sql.SQLException;7 import java.util.ArrayList;8 9 public class java_ob…

個人工作13年的一些人生真實領悟

此文不定期的更新&#xff0c;想起來就寫一些&#xff0c;我都忘了我曾經會過什么了。你可能會在許多的文章里看到類似的&#xff0c;但這些是我個人的真實體會。 1 技術服從于業務 此問題以前的一個文章提過&#xff0c;不再多說。 適用于大多數對技術的盲目崇拜者。在絕大…

matlab非齊次方程組的通解,用matlab求非齊次線性方程組的通解?

先向大家介紹一下非齊次線性方程組。所謂非齊次線性方程組就是方程組等號右邊的常數項不全為零的線性方程組。全部等于零時&#xff0c;就稱為齊次線性方程組。下面我們就講解一下如何利用matlab快速求非齊次線性方程組的通解。工具/材料matlab電腦操作方法01線性方程組Axb的求…

Linux 終端仿真程序Putty

PuTTY是一個Telnet、SSH、rlogin、純TCP以及串行接口連接軟件。較早的版本僅支持Windows平臺&#xff0c;現在的版本中開始支持各類Unix平臺。 用linux作為桌面系統&#xff0c;身為工程師很多時候需要通過Telnet、SSH協議進行遠程管理&#xff0c;通過串口進行設備配置。Putty…

Mysql 數據庫水平分表 存儲過程

數據庫存儲量達到一定程度的時候&#xff0c;就需要進行分表以減輕檢索的消耗。 常用的分表方式包括水平和垂直分表。本次進行的是按照uid進行水平分表。 ##分表思路&#xff1a; 水平分表平均的將數據按照特定方式分配到多個表中。理論上每個表的訪問頻次和數據量都是同一水平…

中國架構師,名符其實有多少?

先說一下讀后感&#xff1a;我前段時間去過幾個公司面試架構師&#xff0c;要求還是蠻高的&#xff0c;要熟悉大數據量處理&#xff0c;要熟悉高并發&#xff0c;要熟悉XX體系架構&#xff0c;要能在關鍵技術上實現突破。總之&#xff0c;架構錯了&#xff0c;就啥都錯了。呵呵…

粗識靜態鏈表

為了彌補鏈表在內存分配上的不足&#xff0c;出現了靜態鏈表這么一個折中的辦法。靜態鏈表比較類似于內存池&#xff0c;它會預先分配一個足夠長的數組&#xff0c;之后鏈表節點都會保存在這個數組里&#xff0c;這樣就不需要頻繁的進行內存分配了。 當然&#xff0c;這個方法的…

php用date語句獲取時間,關于php date()函數獲取時間的設置和使用方法

date()函數是PHP自帶的時間函數&#xff0c;可以獲取當前服務器的時間echo date(Y-m-d H:i:s); //輸出:2020-05-18 11:02:35date()函數中可以使用的字母含義&#xff1a;a-"am"(上午)或者"pm"(下午)A-"AM"或者"PM"Y-年&#xff0c;顯示…

Django_form補充

問題1: 注冊頁面輸入為空&#xff0c;報錯&#xff1a;keyError&#xff1a;找不到passworddef clean(self): print("---",self.cleaned_data) # if self.cleaned_data["password"]self.cleaned_data["repeat_password"]: …

WF4.0:NativeActivity中的錯誤處理

備注&#xff1a;這篇文章的使用環境是.NET framework 4.0 RC 1 在WF4中創建native活動時&#xff0c;NativeActivity是非常強大的。其眾多的功能之一是圍繞錯誤處理。 調度子活動的時的基本錯誤處理。 當NativeActivity執行的時候&#xff0c;它是通過一個NativeActivityConte…

程序員提高建議之踏踏實實“扎馬步”

踏踏實實“扎馬步” 今天無意中看了“校長”的“程序員&司機”&#xff0c;其中談到了關于程序員速成的問題。其實速成班畢業的“系統殺手”早已在遍布大江南北&#xff0c;只是在互聯網時代&#xff0c;互聯網的應用型軟件生命周期越來越短&#xff0c;業務驅動主導…

c語言scanf返回值

1. scanf 函數是有返回值的&#xff0c;它的返回值可以分成三種情況1) 正整數&#xff0c;表示正確輸入參數的個數。例如執行 scanf("%d %d", &a, &b);如果用戶輸入"3 4"&#xff0c;可以正確輸入&#xff0c;返回2&#xff08;正確輸入了兩個變量…

gpgga格式讀取MATLAB,GPS編碼格式及讀取.doc

GPS接收機只要處于工作狀態就會源源不斷地把接收并計算出的GPS導航定位信息通過串口傳送到計算機中。前面的代碼只負責從串口接收數據并將其放置于緩存&#xff0c;在沒有進一步處理之前緩存中是一長串字節流&#xff0c;這些信息在沒有經過分類提取之前是無法加以利用的。因此…

Cadence 電源完整性仿真實踐(二)

轉載于:http://blog.csdn.net/wu20093346/article/details/38050917 通過以上步驟對每個平面進行了單節點分析并觀測了響應曲線&#xff0c;接下來將觀測平面對的目標阻抗是否滿足要求&#xff0c;通過選擇電容器的方法來減小含有電容器阻抗響應曲線中的反諧振波峰。在SigWave窗…

Johnson 全源最短路徑算法

解決單源最短路徑問題&#xff08;Single Source Shortest Paths Problem&#xff09;的算法包括&#xff1a; Dijkstra 單源最短路徑算法&#xff1a;時間復雜度為 O(E VlogV)&#xff0c;要求權值非負&#xff1b; Bellman-Ford 單源最短路徑算法&#xff1a;時間復雜度為 O…

單循環鏈表中設置尾指針比設置頭指針更好的原因

尾指針是指向終端結點的指針&#xff0c;用它來表示單循環鏈表可以使得查找鏈表的開始結點和終端結點都很方便。 設一帶頭結點的單循環鏈表&#xff0c;其尾指針為rear&#xff0c;則開始結點和終端結點的位置分別是rear->next->next和rear,查找時間都是O(1)。 若用頭指…