我的linux命令筆記
允許非root使用者使用“sudo”
root身份登入系統,執行“visudo”,根據示例新增新的一個規則(記住輸入的密碼是當前使用者密碼,而不是root密碼)
#不需要密碼執行sudo命令
hadoop ALL=(ALL) NOPASSWD: ALL
日期
時間戳轉日期
date -d ‘1970-01-01 UTC 1312438633.724 seconds’ +”%Y-%m-%d %T”
#顯示現在日期
echo `date -d now +%Y%m%d`
#顯示昨天日期
echo `date -d yesterday +%Y%m%d`
#加減時間
date +%Y%m%d –date=”-1 day”
date +%Y%m%d%H –date=”-1 hour”
檢視網站是什麼伺服器
curl -s –head “http://www.baidu.com”
檢視redhat版本
cat /etc/redhat-release #我這裡顯示“CentOS release 5.5 (Final)”
檢視linux最大可以開啟檔案數量 寫道
ulimit -a
# 關注屏顯其中一行,可以看出最大開啟檔案數量為1024
open files (-n) 1024
設定開啟檔案數量:
echo -ne ”
* soft nofile 65536
* hard nofile 65536
” >>/etc/security/limits.conf
推出終端後,在執行ulimit -a,可以看出修改已經生效
zip壓縮檔案
zip {dist} {src}
zip -P {password} {dist} {src}
只允許root遠端登入
cd /etc
touch nologin
鎖定使用者,檢視機器64位還是32位
uname -m #會顯示:“i686”、“x86_64”
無法遠端登入(root only)
passwd -l hadoop
解鎖使用者(root only)
passwd -u hadoop
列出rpm安裝程式的檔案路徑
rpm -ql hadoop-0.20
檢視系統已經安裝軟體
rpm -qa | grep hadoop
檢視當前伺服器總的cpu core數量(有多少核)
more /proc/cpuinfo | grep ‘processor’ | wc -l
#檢視每個CPU的核數
more /proc/cpuinfo | grep ‘cpu cores’
#計算當前服務cpu數量
總核數 / 每個CPU的核數
#檢視CPU位數
getconf LONG_BIT
檢視程式的安裝路徑
whereis java
檢視執行程式的路徑
which java
修改DNS IP
vi /etc/resolv.conf
檢視記憶體
free
檢視CPU是否支援64作業系統
如果結果大於0,說明支援64bit模式(long mode)
cat /proc/cpuinfo | grep flags | grep ‘ lm ‘ | wc -l
檢視某行內容
sed -n ‘100{p;q}’ filename
檢視使用者所屬組
grep “使用者名稱” /etc/group
檢視rpm包檔案
rpm2cpio hadoop.rpm | cpio -idmv
新增某個路徑到執行時庫,一行一個path
vi /etc/ld.so.conf
/usr/local/lib/
(或者使用環境變數的方式,這種方向不需要root許可權)
export LD_LIBRARY_PATH=/xxxxx:$LD_LIBRARY_PATH
centos下通過shell修改副檔名
rename <oldname> <newname> <*.files>
#將所有html副檔名改為htm副檔名
rename .html .htm *.html
具體參考:http://www.cyberciti.biz/tips/renaming-multiple-files-at-a-shell-prompt.html
#通過mv也可以實現修改副檔名這個功能
mv goodYear.{htm,html}
sort命令
# -u 去除重複行
# -r 降序(預設為升序)
# -o 輸出排序後資料,他與重定向’>’最大的區別是輸出資料到原檔案
sort seq.txt -o > seq.txt
# -n 根據數值大小排序
# -k 指定根據某列排序
sort num.txt -k2 # 根據第二列排序(預設分隔符為空格、tab)
# -t 指定列分隔符,僅支援一個字元
# -m 歸併排序
linux 命令列引數引用
執行命令:
./test.sh 111 222 333 444
echo 執行檔名稱:$0
#./test.sh
echo 第一個引數:$1
#111
echo 引數個數:$#
#4
echo 最後一個:$_
#444
echo 所有引數,引數被認為是多個字串:[email protected]
#111 222 333 444
echo 所有引數,引數被認為是一個字串: $*
#111 222 333 444
echo 程式pid: $$
echo 退出code: $?
less命令
tip1:敲入50p,可以進入50%的文件位置,支援小數,如95.5p
指令碼改密碼
#方法一
echo 123123 |passwd –stdin abc
#方法二
#echo “root:[email protected]#$QW12qw”|chpasswd
#pwdadm -c root
http://www.aixchina.net/club/thread-69699-1-1.html
一行命令建立使用者並設定密碼
useradd -p `openssl passwd <pwd>` -g <group_name> <username>
建立使用者並禁止遠端登入
useradd -s /sbin/nologin ak47
查詢使用者crontab執行記錄
cat /var/log/cron | grep <username>
修改linux使用者目錄
usermod -d /home/hdfs -U hdfs
磁碟速度測試
hdparm -t /dev/sda1
快速查詢檔案(根據檔名)
# locate命令負責查詢,updatedb命令生成檔案索引(daily)
locate *qq*.txt
chkconfig
chkconfig –list | more # 列出所有系統服務
chkconfig <service_name> off|on # 關閉、開啟系統服務
第一次SSH登入不提示
配置ssh conf檔案中StrictHostKeyChecking no
top
c # 顯示程式完整路徑
m # 按照記憶體排序
P # 按照CPU排序
top -p <pid> # 檢視程序top
#RES表示實體記憶體佔用,在ps命令中是rss表示實體記憶體
bz2檔案解壓縮
bunzip2 yy.bz2
檢視重複次數(shell 實現的group by + count)
# uniq前一定要先sort,uniq引數-c,將列印分組重複次數
cat xx.TXT | sort | uniq -c
tar命令使用
tar -zcf my.tgz my # 壓縮打包
tar -cf my.tgz my # 不壓縮打包
tar -zxf my.tgz my # 解壓縮包
tar -xf my.tgz my # 解不壓縮的包
tar -tf # 檢視tar包結構
find
#-o: 或條件
# 查詢當前目錄下所有.htm和.html結尾的檔案
find . \( -name “*.htm” -o -name “*.html” \)
# -a: and條件
grep
#查詢文字中包含boy和girl的行
cat my.txt | grep -E ‘boy|girl’
# 根據文字內容查詢檔名,”-H”用於輸出檔名
find . -name ‘*city*’ -ls -exec zgrep ‘null’ {} -H \;
# “or”查詢
方法一:grep ‘pattern1\|pattern2’ filename
方法二:grep -E ‘pattern1|pattern2’ filename
方法三:egrep ‘pattern1|pattern2’ filename
方法四:grep -e pattern1 -e pattern2 filename
# “and”查詢
方法一:grep -E ‘pattern1.*pattern2’ filename
方法二:grep -E ‘pattern1’ filename | grep -E ‘pattern2’
修改hostname
方法一:hostname <new hostname>
方法二:vi /etc/sysconfig/network
檢視開啟檔案數
lsof |wc -l
lsof -p pid |wc -l
檢視哪些程式在使用磁碟
iotop
建立大檔案
dd if=/dev/zero of=test bs=1M count=1000
#更大檔案可以用下面這個,快些
dd if=/dev/zero of=test bs=1M count=0 seek=100000
文章出處:http://heipark.iteye.com/blog/1083805