常用Linux命令、包括vi 、svn

PS: http://man.linuxde.net/vi

/etc/init.d/network restart
//===========================================
更新腳本
cd /www/scripts
更新站點
./staging_deploy.sh -d web
更新resource
./staging_deploy.sh -r resource
./staging_deploy.sh -n webplus

//31上手動獲包
cd /www/staging/svn/php
rm -rf 
wget http://i.fx-func.com/svn/juxiang/php/webplus.tar.gz --user=connect --password=20110609
//===============
/usr/local/nginx/conf/vhosts.enabled

//sed修改文件
sed -e 查看
sed -i '/newbuddy/s/9072/9010/g' /www/wwwroot/website/system/config.php
==============================================
192.168.200.5 svn代碼庫
/home/www/jenkins/jobs/website-package-online/workspace/Application

cd /www/tar/Resource
/www/tar
svn st Resource/
svn ci Resource/ -m "manual"
cd Resource/
svn st pc/
pwd
svn revert -R /www/tar/Resource/pc 
svn up
cd ..
svn st Resource/
svn ci -m "manual"
svn info Resource/
cd Resource/
svn info

SVN 基本操作

  檢出checkout(co)
  svn co ${url}

  更新update(up)
  svn up

  提交commit(ci)
  svn ci -m " 修改xxx 問題"

  查看當前目錄最近5 次提交記錄
  svn log -l 5

  查看當前工作拷貝信息
  svn info

  查看當前未提交的文件status(st)
  svn st
  這個命令輸出每個添加、修改、刪除過的目錄和文件,前面的C 表示衝突,要特別注意。linux 下也可以用svn st | grep ^C 來查看衝突項。

  查看當前修改內容
  svn diff

  撤銷當前修改,覆蓋爲資源庫最新版本
  svn revert path/filename

  遞歸撤銷當前目錄修改,覆蓋爲資源庫最新版本。注意新加的文件不會被刪除,這時也可以刪除工作拷貝,重新checkout
  svn revert . --recursive

合併

  SVN merge

遞歸向版本增文件: svn add * --force
find GameSite/system/ -maxdepth 100 -name .svn
=============================
/etc/init.d/php-fpm restart
/etc/init.d/nginx reload | restart
scp /www/run/fdfsclient/picture.php [email protected]:/www/temp

find ./ -mtime 0:返回最近24小時內修改過的文件

find /home/user -cmin -60 文件夾下最近一個小時內修改過的文件

vi編輯器
:50,100s/new//gn 出現的次數

:%s/a/b/g 全部替換 或者 :s/a/b/ 如果不加/g則指替換第一行
或者用 : set nu

:10,20s/a/b/g 替換10--20行的a

ll | grep .php 列出都是php的文件
ll viso* 列出包含viso關鍵字的文件夾
ls [P-X]* -d 列出p到x開頭的文件

:%s/\/images/http:\/\/static.kunlun.com\/web\/kl\/images/g全部替換

http://static.kunlun.com/web/sg/images/input_bg1.jpg

unzip test.zip

sudo -i 權限

rsync -aqC /data/app/www/cms1.kunlun.com/mf/* /data/app/www/www.mffy.renren.com/

cp -arf /data/app/www/www.mffy.renren.com/login.php /data/app/www/cms1.kunlun.com/mf/

/usr/sbin/nginx -t -c /data/app/conf/nginx.conf

常用命令
touch 生成空文件 /bin/touch
cd - 回到上次訪問的目錄 
cd !$
cp -a 拷貝目錄 
cp -f強制拷貝 
cp -p 拷貝保留原文件的日期
cat 不管文件多長一次都讀取出來
統計出現的行數
cat xxx.txt |grep "xxx" |wc -l
如果統計出現的次數
awk '{s+=gsub(/目標字符串/,"&")}END{print s}' 目標文件名
awk '{s+=gsub(/w/,"&")}END{print s}' aa.txt

more 分屏讀取文件 f或空格顯示下一頁 回車鍵顯示下一行 q退出
less 分屏查看文件 pageup上一屏 pagedown 下一屏 home回到開頭 end回到結尾
head -n查看文件的前n行
tail -n查看文件的最後n行
find ./ -name .metadata |xargs ls -lt //按時間查看文件

ln -s [源文件] [目標文件] 注意:源文件和目標文件一定要使用絕對路徑,硬鏈接不能跨設備(df -T)
mkdir -p 建子目錄 /a/b/c/d
whereis 顯示系統命令和幫助手冊的命令

find [搜索路徑] [搜索關鍵字] [文件或目錄] find /etc/ -name 'f*'
locate httpd.conf 整個文件搜索【updatedb重新更新索引文件,便於查到】
grep root passwd在文件裏查找匹配的內容 grep -v "#" /etc/passwd 排除帶#的行

壓縮文件
只能壓縮文件,不保留原文件
gzip GUN zip
gzip -1 file 表示快速壓縮
gzip -9 file nine nice 最佳狀態壓縮
gunzip file.gz 解壓縮
gzip -d file.gz

壓縮 gzip route.php
解壓 gunzip route.gz

壓縮目錄
tar 打包
tar -c 產生一個.tar文件
tar -v 觀看壓縮過程
tar -f 指定壓縮後的文件名
tar cvf 可以省略- tar cvf testdir.tar testdir
tar xvf 解壓縮 
解壓到指定目錄 tar zxf testdir.tar.gz -C web
tar zcvf 最佳壓縮 tar zcvf testdir.tar.gz testdir[目錄名]
tar zxvf 解壓縮

tar -tf 查看打包的內容

通信命令
write 發送消息 write yuejide sfdsf
wall 給所有用戶發消息 wall fdfdf
mesg y接受消息
mesg n屏蔽消息
mail 收信
h查看列表
r回信
q退出
mail 收件人 發信

init 0 關機
init 6 重啓
shutdown -h now
reboot

導出 sz test.txt
導入 rz

Linux 網絡命令
write 給用戶發信息 ctrl+D 保存結束
write linzhilin 
xiang he ni chifan ctrl+D 保存退出
ping 測試網絡連通性
ping 192.168.0.1
ifconfig 查看和設置網卡信息
ifconfig eth0 192.168.0.2
mail 查看系統發送的文件
輸入序列號直接查看
h 查看列表
d 序列號 刪除郵件
q 退出
last 顯示計算機所有用戶登錄的時間信息
lastlog 命令查看所有用戶登錄信息
last -u uid 查看某個用戶登錄信息
traceroute 顯示數據包到主機間的路徑
netstat 【選項】 顯示網絡相關信息
-t 查看TCP協議的信息
-u 查看UDP協議的信息
-l 監聽
-r 路由
-n 顯示IP地址和端口號
netstat -tlun 查看本機監聽的端口
netstat -an 查看本機所有的網絡連接 netstat -an | grep -v "10.10.208.84" | grep ESTABLISHED 查看當前和本機連接的用戶
netstat -rn 查看本機路由表

setup 配置網絡、
mount 掛載
創建掛載點 mkdir /mnt/cdrom
mount /dev/src0[設備名稱] /mnt/cdrom
umount /dev/src0 卸載掛載點

strace 跟蹤進程的命令 strace -p 10747
#已易讀的格式顯示指定目錄或文件的大小,-s選項指定對於目錄不詳細顯示每個子目錄或文件的大小
du -sh [dirname|filename]
如:
當前目錄的大小:
du -sh .
當前目錄下個文件或目錄的大小:
du -sh *
顯示前10個佔用空間最大的文件或目錄:
du -s * | sort -nr | head

vi編輯
i a o
ctrl+f 下一頁
ctrl+b 上一頁
ctrl+d 下一屏
ctrl+u 上一屏
G 最後一行
gg 第一行

i 光標所在處插入
I 光標定位到行首插入

a 光標所在的字符後插入
A 光標所在的行末尾插入

o 插入定位到下一行
O 插入定位到上一行

0 定位到某行的開頭
$ 定位到某行的末尾

R 從光標所在處開始替換字符

n 向下查找
N 向上查找

:/1067,1060s/logs/PHP/g n1行---n2行全部替換

x向後刪除
X向前刪除
dd刪除一行
ndd刪除n行
dG刪除光標所在行到最後一行的所有數據
d1G刪除光標所在行到第一行的所有數據
d$刪除光標所在行到該行的最後一個字符
d0刪除光標所在行到該行的最前面一個字符
p複製光標所在的向下n列
P複製光標所在的向上N列
u撤銷操作

:r /etc/issue 導入到光標所在的位置 :r +文件名
:r !date 導入命令結果到當前文件

:map 快捷鍵 觸發命令
:map ^P(ctrl+v+p) I#<ESC>
:map ^B 0x
:map ^M [email protected]<ESC>

註釋多行
:4,8s/^/#/g
取消註釋
:4,8s/^#//g
:4,8s/^/\/\//g

:ab mymail [email protected] 只要輸入mymail則就顯示郵箱地址

創建保存快捷vim命令
vi /root/.vimrc root用戶
vi /home/yuejide/.vimrc 普通用戶
set nu
map ^P I#<ESC>

一次性安排計劃任務命令 at
某個時間點執行某個程序(命令),一定要使用命令的全路徑
at 17:40
>/bin/cp /www/test/* /www/xsphp/
ctrl+d退出
at -l或者atq 查看任務執行情況
at -d 或者atrm 任務號
at 17:30 月/日/年
at -f 文件 時間點
at < one.txt 時間點
at配置文件 
/etc/at.allow 文件中列出的用戶都能使用此命令
/etc/at.deny 文件中列出的用戶都不能使用此命令
兩個文件都不存在,只有root用戶才能使用此命令,都存在且都爲空則所有用戶都能使用此命令

週期性安排計劃任務crontab
service crond status //查看狀態
ps aux | grep crond
啓動 /sbin/service crond start
停止 /sbin/service crond stop
* * * * * /www/test/btest.sh
分 時 日 月 周
crontab -l 列表
crontab -e 編輯
crontab -r 刪除
/etc/cron.allow 如果這個文件存在,文件中包含的用戶名可以使用crontab。
/etc/cron.deny 如果這個文件存在,文件中包含的用戶名不能使用crontab。
*/5 * * * * /usr/local/php/bin/php /www/faetest/yuejide/tt.php //5分鐘往數據庫添加下記錄

查看進程
ps -el
ps -aux
S 休眠 D不可中斷的休眠 R運行 Z僵死狀態 T停止狀態
殺死進程
killall httpd 殺死所有和httpd相關的進程
kill 進程號
kill -9 殺死僵死進程
日期 date +%Y-%m-%d

Linux用戶
1、超級用戶root 具有操作系統的一切權限uid爲0
2、普通用戶 具有操作系統有限的權限 uid 500 -- 6000
3、僞用戶 是爲了方便系統管理,滿足相應的系統進程文件屬主的要求,不能登錄 uid 1 -- 499
passwd /etc/passwd 通過這個文件管理用戶,只定義賬號不定義口令

賬號名稱:root
用戶密碼:x
用戶標識(用戶ID):0
用戶標識(用戶組ID):0
用戶相關信息:root
用戶家目錄:用戶自己的目錄
用戶環境:/bin/bash

useradd 創建用戶
-u -g -G -d -s -c -e -k -m -M -r
userdel 刪除用戶
tail -5 /etc/passwd 用戶信息
tail -5 /etc/shadow 密碼
-r 刪除用戶家目錄及所有信息
更改用戶名
usermod -l thisueser myuser
usermode -L thisuser 鎖定用戶
usermode -U thisuser 解鎖用戶

passwd -l 
passwd -u
passwd -s 解鎖
Linux用戶組
/etc/group
1、組名
2、組口令
3、GID
4、組內用戶列表(屬於該組的所有用戶名錶)

useradd -g mygroup myuser1 添加用戶到所屬組
userdel -r myuser1 刪除用戶
groupadd 添加
groupmod 修改
groupdel 刪除
gpasswd -a redhat newgroup 修改用戶所屬組
gpasswd -d redhat newgroup 刪除所屬用戶組

id 查看一個用戶的uid和gid
id[選項] 用戶名
id -g yuejide
id -G yuejide
finger 查看用戶的相關信息,包括的用戶的組目錄啓動shell
finger yuejide

chmod -R 權限 文件
chown 改變文件或者目錄的所有人
chown -R 包括子目錄
chown -R www:www /www/run 同時修改所有者和所屬組
chgrp 改變文件或者目錄的所屬組
find views/ -maxdepth 100 -type d -name .svn | xargs chown -R www:www
find / -iname *?//不區分大小寫,精準搜索用?
find / -size +204800 大於100M的文件
find / -size -204800 小於100M的文件
find /home -user www//根據所有者來查找
find /home -group www//所屬組
find /home -cmin -5 5分鐘內修改過屬性的文件和目錄
-amin//訪問過的
-cmin//改變屬性
-mmin//修改內容
-type d目錄
f文件
find /etc -name initab -exec ls -l {} \;查到後把文件屬性列出來

查找目錄下的所有文件中是否含有某個字符串 
find .|xargs grep -ri "IBM" 
查找目錄下的所有文件中是否含有某個字符串,並且只打印出文件名 
find .|xargs grep -ri "IBM" -l

shell編程
查看歷史指令 history列出所有 !99 執行第99條指令 !str 離最近的一條命令
history -c 清楚所有指令
輸入輸出 ls > test.txt 寫入到test.txt文件中,輸出重定向 >>追加輸出重定向
多少行 ll | wc -l

set查看系統裏所有變量 unset刪除變量
env全局變量
export把局部變量變成全局變量
重啓後不讓環境變量失效
vi /etc/profile

運算
expr $aa \* $bb 乘法,中間必須要有空格

$# 命令中位置參數的個數
$* 所有位置參數的內容
$? 上一條命令執行後返回的狀態,當前返回狀態0時表示正常,非0值時表示異常或者出錯
$$當前所在進程的進程號
$!後臺運行的最後一個進程號
$0當前執行的進程/程序名

-d是否爲目錄文件directory
-e文件是否存在exist
-f是否爲文件file
-r是否有讀的權限read
-w是否有寫的權限write
-x是否有執行權限excute
-L是否爲符號連接文件Link

-eq:等於equal
-nq:不等於no equal
-gt:大於greater than
-lt:小於lesser than
-le:小於或等於lesser or equal
-ge:大於或等於greater or equal
字符串比較
= 字符串內容相同
!= 字符串內容不相同
-z 字符串內容爲空
&&與
||或
!取反

語句
if ;then 
elif ;then
else
fi

for 變量名 in 取值列表
do
命令序列
done

while[ true ]
do
命令序列
done

case $i in
start)
echo "start......"
;;
stop)
echo "stop......."
;;
restart)
echo "restart......"
;;
esac

rpm
rpm -qa|grep yum|xargs rpm -e --nodeps
rpm -e --nodeps卸載

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