Time of Update: 2017-01-13
核心代碼當你遇到一個date命令不給力的系統時,可以試試這幾個小函數。 #日期轉天數 function date2days { echo "$*" | awk '{ z=int((14-$2)/12); y=$1+4800-z; m=$2+12*z-3; j=int((153*m+2)/5)+$3+y*365+int(y/4)-int(y/100)+int(y/400)-2472633; print j }' } date2days
Time of Update: 2017-01-13
生產環境中,有可能會出現被其他管理員或使用者修改hosts.allow允許更多的ip登陸機器;為了方便統一管理,我們可以在使用者退出的時候統一修改allow和deny檔案成預設設定。同時也能自動擷取機器所配ip的整個ip段為允許登陸test -f /root/.bash_logout && chattr -i /root/.bash_logoutcat >/root/.bash_logout <<EOFexport
Time of Update: 2017-01-13
通過shell結合awk可以很好判斷某一進程是不是運行,或者某一程式檔案是否被執行,下面以php為例來說明一下。定義一個crontab,每一分鐘執行一次,時間間隔為一分鐘,可能下一次執行的時候,上次還沒有執行完,所以我們要做一下判斷。1,test.php在啟動並執行情況,查看進程# ps -ef |grep test.php root 29884 29881 0 10:48 ?
Time of Update: 2017-01-13
在工業應用中,有些來自於工業裝置的檔案將會被放到指定的目錄下,由於這些檔案需要再被重新格式化後才能被更高層的軟體進行處理。而此時負責處理的指令碼程式極有可能是多個執行個體同時運行,因此這些執行個體之間就需要一定的同步,以避免多個執行個體同時操作一個檔案而造成的資料不匹配等問題的發生。檔案鎖定命令可以協助我們實現這一同步邏輯。 代碼如下複製代碼 />
Time of Update: 2017-01-13
在Shell指令碼中調用awk是非常自然和簡單的,如果需要調用shell指令碼/命令,則需要使用system()函數,如果需要將變數傳遞給被調用的shell,則寫為 system(“sh my.sh ” $var) 注意第二個引號前有一個空格。awk調用shell,並將變數傳遞給shell,看下面的示範,就一下明白了: 代碼如下複製代碼 jay@jay-linux:/tmp$ cat data.txt var1 var21
Time of Update: 2017-01-13
給各位Photoshop軟體的使用者們來詳細的解析分享一下手機透明殼的修圖教程。教程分享:iphone6手機殼原圖 第一步:做圖之前我習慣在原圖上覆蓋一層純色背景,就是建立一個圖層填充任意顏色,我是填充的黑色,便於修圖第二步:把基本的線條按照原圖用鋼筆工具描出路徑,描邊,不用高光的地方可以用畫筆擦除,這個地方要仔細 質感的地方是先填充白色,然後選擇濾鏡——雜色——添加雜色,勾選單色填充哦,然後數值自己看效果第三步:繼續將需要的線
Time of Update: 2017-01-18
ar命令可以用來建立、修改庫,也可以從庫中提出單個模組。庫是一單獨的檔案,裡麵包含了按照特定的結構組織起來的其它的一些檔案(稱做此庫檔案的member)。原始檔案的內容、模式、時間戳記 、屬主、組等屬性都保留在庫檔案中。ar可讓您集合許多檔案,成為單一的備存檔案。在備存檔案中,所有成員檔案皆保有原來的屬性與許可權。用途說明建立靜態庫。a檔案。用C/C++開發程式時經常用到,但我很少單獨在命令列中使用ar命令,一般寫在makefile中,有時也會在shell腳 本中用到。關於Linux下的庫檔案、
Time of Update: 2017-01-18
在 Linux 系統中,當你輸入一個命令,再按兩次TAB 鍵,就會列出所有以你輸入字元開頭的可用命令。這並不新鮮,可能你已經知道了。這個功能被稱作命令列補全bash completion。預設情況下,bash 命令列可以自動補全檔案或目錄名稱。不過,我們可以增強 bash 命令補全功能,通過 complete 命令讓它達到新的高度。 這個教程說明了我們是怎樣使用可程式化的命令列補全功能(programmable completion)把自動補全功能應用於選項或者命令列參數。
Time of Update: 2017-01-18
前言現在每次分析網站日誌的時候都需要判斷百度蜘蛛是不是真實的蜘蛛,nslookup之後需要判斷結果中是否包含“baidu”字串以下給出一些shell中判斷字串包含的方法,來來源程式員問答網站 stackoverflow 以及segmentfault。方法一:利用grep尋找strA="long string"strB="string"result=$(echo $strA | grep "${strB}")if [[ "$result" != "" ]]then echo "包含"else
Time of Update: 2017-01-18
從網路上下載到的源碼包, 最常見的是 .tar.gz 包, 還有一部分是 .tar.bz2包要解壓很簡單 :.tar.gz 格式解壓命令為 tar -zxvpf xx.tar.gz.tar.bz2 格式解壓命令為
Time of Update: 2017-01-18
核心代碼當你遇到一個date命令不給力的系統時,可以試試這幾個小函數。#日期轉天數function date2days { echo "$*" | awk '{ z=int((14-$2)/12); y=$1+4800-z; m=$2+12*z-3; j=int((153*m+2)/5)+$3+y*365+int(y/4)-int(y/100)+int(y/400)-2472633; print j }'}date2days `echo "2010-08-18 18:59:
Time of Update: 2017-01-18
一 Regex與萬用字元1 Regex是用在檔案中匹配合格字串,正則是包含匹配,grep,awk,sed等命令可以支援Regex2 萬用字元是用來匹配合格檔案名稱,萬用字元是完全符合,ls,find,cp這些命令不支援Regex,所以只能用Shell自己的萬用字元來進行匹配了。二 基礎Regex這裡引用兄弟連的測試文本 1 * 前一個字元匹配0次或任意多次grep “a*” test_rule.txt匹配所有內容,包括空白行(由於*可以匹配0次)grep “aa*”
Time of Update: 2017-01-18
鑒於在調試logback和log4j的檔案切割一直無法成功,隨性用shell寫個指令碼用來切割tomcat下的記錄檔(大家如果有在logback或log4j使用檔案切割成功的話,可以留下使用方式,先謝謝了)1:廢話少說,直接貼上指令碼:#!/bin/shlog_dir=/var/log/tomcatmonitor_file=$1 #tomcat目錄下的catalina.out檔案的絕對路徑file_size=`du $monitor_file | awk '{print $1}'`if [
Time of Update: 2017-01-18
Linux上安裝和卸載rpm軟體包的方法如下所示:1.如何安裝rpm軟體包rmp軟體包的安裝可以使用程式rpm來完成。執行下面的命令rpm -i your-package.rpm其中your-package.rpm是你要安裝的rpm包的檔案名稱,一般置於目前的目錄下。安裝過程中可能出現下面的警告或者提示:... conflict with ... 可能是要安裝的包裡有一些檔案可能會覆蓋現有的檔案,預設時這樣的情況下是無法正確安裝的可以用rpm --force -i 強制安裝即可... is
Time of Update: 2017-01-18
locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建立一個包括系統內所有設定檔名稱及路徑的資料庫,之後當尋找時就只需查詢這個資料庫,而不必實際深入檔案系統之中了。在一般的 distribution 之中,資料庫的建立都被放在 crontab 中自動執行。1.命令格式:Locate [選擇參數] [樣式]2.命令功能:locate命令可以在搜尋資料庫時快速找到檔案,資料庫由updatedb程式來更新,updatedb是由cron
Time of Update: 2017-01-18
今天無意中發現一本挺有意思的shell編程的書,是e文的,內容是101個shell案例,堅持明天看一個,寫點心得。下面是例子001:#!/bin/sh# inpath - Verifies that a specified program is either valid as is,# or that it can be found in the PATH directory list.in_path(){ # Given a command and the PATH, try to
Time of Update: 2017-01-18
經常在 shell 指令碼裡要阻止其它進程,比如 msmtp 內建的mail queue 指令碼,這個指令碼的互斥做法是不正確的,下面介紹下發現的三個通過檔案達到互斥的正確做法。1. util-linux 的 flock這個命令有兩種用法: flock LOCKFILE COMMAND ( flock -s 200; COMMAND; ) 200>LOCKFILEflock 需要保持開啟鎖檔案,對於第二種使用方式並不方便,而且 -s
Time of Update: 2017-01-18
實現代碼:#!/bin/sh# ANSI Color -- Use these variables to make output in different colors# and formats. Color names that end with 'f' are foreground (text) colors,# and those ending with 'b' are background colors.initializeANSI(){ esc="\033" # if this
Time of Update: 2017-01-18
To turn the functions in this chapter into a library for use in other scripts, extract all the functions and concatenate them into one big file. If we call this file library.sh, a test script that accesses all of the functions might look like this:#!
Time of Update: 2017-01-18
前言 這裡就不介紹 git 了,表一看到命令列就怕怕,常用的命令也就這些,基本滿足 99% 以上的項目需求,非常實用。本文 一、常用 git 命令 1.1 git clone <url> [<directory>] 從遠程庫 clone 代碼到本地,directory 用於指定一個新目錄名 1.2 git status 檢查本地狀態,可以查看當前所在分支、新增或被修改的檔案 1.3 git checkout