top
幾個磁盤
fdisk -l
磁盤空間 df -lh
df -al
查看進程:ps -ef“grep java
殺死進程:kill -9 進程號
more中過濾
more xxx |grep www.makaidong.com
安裝linux後配置ip
Vim /etc/sysconfig/network-scripts/ifcfg-eth5
IPADDR=192.168.42.142
NETMASK=255.255.255.0
GATEWAY=192.168.42.1
啟動關閉網卡
Ifdown eth5
Ifup eth5
service network restart 優先
2:無法上網 配置dns
vim /etc/resolv.conf
dns
nameserver 8.8.8.8
nameserver 114.114.114.114
nameserver 223.5.5.5
nameserver 223.6.6.6
測試:
ping www.makaidong.com
yum安裝軟件
rpm
yum -y install mysql
shell基礎
#!/bin/sh
#print hello world in the console window
a="hello world!hello makaidong"
echo "Hi, $as"
就不會輸出“Hi, hello worlds”,而是輸出“Hi,”。這是因為Shell把$as當成一個變量,而$as未被賦值,其值為空。
正確的方法是:
echo "Hi, ${a}s"
echo $a
ps -aux|grep 'ambari'
tail -f -n 200 add_run_7.sh.log
切換到root
sudo su -
切換到其他用戶
sudo su hive
Top
df -lh
、
find 遞歸查找制定文件名
find 201412/ -type f -name "*.txt"
安裝
復制 通配符
cp -r *_result bak/
wordcount
wc -l 統計 通配符
wc -l 3_net_*/*
scp -r makaidong [email protected]:/mnt/
#!/bin/sh
a=10
b=20
if [ $a == $b ]
then
echo "a is equal to b"
fi
if [ $a != $b ]
then
echo "a is not equal to b"
fi
[ -f "$file" ] 判斷$file是一個文件
[ ! -f "$file" ] 判斷$file不是一個文件
history low great
[ $a -lt 3 ] 判斷$a的值是否小於3,同樣-gt和-le分別表示大於等於或小於等於
num1-eq num2 等於 [ 3 -eq $mynum ]
num1-ne num2 不等於 [ 3 -ne $mynum ]
num1-lt num2 小於 [ 3 -lt $mynum ]
num1-le num2 小於或等於 [ 3 -le $mynum ]
num1-gt num2 大於 [ 3 -gt $mynum ]
num1-ge num2 大於或等於 [ 3 -ge $mynum ]
[ -n "$a" ] 判斷變量$a是否有值,測試空串用-z
文件比較運算符
[-e filename] 如果 filename存在,則為真 [ -e /var/log/syslog ]
-d filename 如果 filename為目錄,則為真 [ -d /tmp/mydir ]
-r filename 如果 filename可讀,則為真 [ -r /var/log/syslog ] read
-w filename 如果 filename可寫,則為真 [ -w /var/.txt ] write
-x filename 如果 filename可執行
-z string 如果 string長度為零,則為真 [ -z "$myvar" ]
-n string 如果 string長度非零,則為真 [ -n "$myvar" ]
string1= string2 如果 string1與 string2相同,則為真 [ "$myvar" = "one two three" ]
string1!= string2 如果 string1與 string2不同,則為真 [ "$myvar" != "one two three" ]
while [ cond1 ] && { || } [ cond2 ] …; do
…
done
for var in …; do
…
done
for (( cond1; cond2; cond3 )) do
…
done
until [ cond1 ] && { || } [ cond2 ] …; do
…
done
linux shell 數組建立及使用技巧
shell數組+for循環
#!/bin/bash
for i in ip1 ip2 ip3 ip4
do
echo ssh root@$i
echo "已重啟$i apache 服務"
done
exit
sh -x *.sh
生成 測試數據的shell腳本
data_create.sh
rm -rf ./data.txt
touch data.txt
for((i=0;i<2000;i++))
do
str=',name';
name=${i}${str}${i}
#echo $name
echo $name>> data.txt
done
echo 'show testdata'
more data.txt
chmod u+x data_create.sh
運行腳本
sh -x data_create.sh
sed 替換 遞歸 正則
sed -i "s/<div class=\"c_r_a c_r_13_a\"><script language=\"javascript\">c_r_13_a();<\/script><\/div>//g" index.shtml
sed -i "s/10.16.60.29/cloud1.xingtu.360.cn/g" *
find /data -name "*" -print | xargs -i sed -i 's/<div class=\"c_r_a c_r_14_a\"><script language=\"javascript\">c_r_14_a();<\/script><\/div>//' {}
find * -name "*" -print | xargs -i sed -i 's/<div class=\"c_r_a c_r_14_a\"><script language=\"javascript\">c_r_14_a();<\/script><\/div>//' {}
#正則
find * -name "*" -print | xargs -i sed -i 's/<div class=\"c_r_a c_r_.*_a\"><script language=\"javascript\">c_r_.*_a();<\/script><\/div>//' {}
find * -name "*" -print | xargs -i sed -i 's/<div class="c_a_tb".* id=c_a_tb.*>.* c_a_tb.*();<\/script> <\/div>//' {}
find * -name "*" -print | xargs -i sed -i 's/<div class="c_a_tb".* id=c_a_tb.>.* c_a_tb.*();<\/script> <\/div>//' {}
9id=c_a_tb9><script type='text/javascript'> c_a_tb9();</script></div>
crontab 定時執行shell
20 * * * * sh -x /root/start.sh >> start.log 2>&1
遠程機器ping不同本機
本機可以ping通遠程,那可以這樣取:
先考到自己的用戶目錄下:
在目標機器上:cp tmpdir.sql.gz /home/makaidong/
然後在本機:
scp -r [email protected]:/home/makaidong/\*.sql.gz .
注 :\*轉義
nohup
nohup hive --service hiveserver 2>&1 &
dos2unix windows-linux shell格式轉換
find . -name "*.conf" | xargs dos2unix
var.sh 就寫:year=2015
shell import source引入其他shell
#!/bin/bash
#在其他目錄:source ./sh/var.sh #sh目錄下 或source sh/var.sh
source var.sh
rm -rf ./data.txt
touch data.txt
for((i=0;i<$year;i++))
do
str=',name';
name=${i}${str}${i}
#echo $name
echo $name>> data.txt
done
awk $(awk -F"=" '$1== {print $2}
壓縮:
zip 遞歸壓縮文件夾(目錄)
zip -r ./201412.zip ./201412/* -r
Linux壓縮保留源文件的方法:
gzip –c filename > filename.gz
Linux解壓縮保留源文件的方法:
gunzip –c filename.gz > filename
呵,基本上我現在常用的四個命令如下:
壓縮成gzip文件:
tar -zcvf shell.tar.gz shell/
將gzip文件解壓:
tar -zxvf shell.tar.gz
壓縮為bz2文件:
tar -jcvf shell.tar.bz2 shell/
將bz2文件解壓:
tar -jxvf shell.tar.bz2
tar -zxvf makaidong.tar.gz -C /zzz/bbs
gunzip makaidong.tar.bz2.gz
tar -jxvf makaidong.tar.bz2
http://xxxxxx/Linuxjc/1173657.html TechArticle