Time of Update: 2017-01-18
1. Linux 指令碼編寫基礎1.1 文法基本介紹1.1.1 開頭程式必須以下面的行開始(必須放在檔案的第一行):#!/bin/sh 符號#!用來告訴系統它後面的參數是用來執行該檔案的程式。在這個例子中我們使用/bin/sh來執行程式。 當編輯好指令碼時,如果要執行該指令碼,還必須使其可執行。 要使指令碼可執行:編譯 chmod +x filename 這樣才能用./filename 來運行1.1.2
Time of Update: 2017-01-18
動態庫的產生:1、/*mysum.c*/複製代碼 代碼如下:#include <stdio.h>#include "src.h"int sum(int a,int b){return (a+b);} 2、/*mysum.h*/複製代碼 代碼如下:#ifndef __SRC_H__#define __SRC_H__int sum(int a,int b);#endif 3、/*main.c*/複製代碼 代碼如下:#include
Time of Update: 2017-01-18
timer_poll.h複製代碼 代碼如下:/* * File: timer_poll.h * Author: Administrator */#ifndef TIMER_POLL_H#define TIMER_POLL_H#include <sys/types.h>#include <fcntl.h>#include <signal.h>#include <sys/epoll.h>
Time of Update: 2017-01-18
1、前言時間對作業系統來說非常重要,從核心級到應用程式層,時間的表達方式及精度各部相同。linux核心裡面用一個名為jiffes的常量來計算時間戳記。應用程式層有time、getdaytime等函數。今天需要在應用程式擷取系統的啟動時間,通過sysinfo中的uptime可以計算出系統的啟動時間。2、sysinfo結構sysinfo結構保持了系統啟動後的資訊,主要包括啟動到現在的時間,可用記憶體空間、共用記憶體空間、進程的數目等。man sysinfo得到結果如下所示:複製代碼
Time of Update: 2017-01-18
複製代碼 代碼如下:#include <iostream> using namespace std; void ShellQin(int A[],int n) { int gap=n/2; int i,j; for(;gap>0;gap=gap/2)//設定初始gap,按照gap進行分組,gap按照gap/2遞減 {
Time of Update: 2017-01-18
1.使用時間相關的隨機數利用data命令產生輸出unixtimestamp(%s)和目前時間的納秒資料(%N,精確到億分之一秒。)前者保證在不同秒數之內輸出不重複 後者保證在同一秒內數字不重複 兩者組合就可以了複製代碼 代碼如下:date +%s%N這個方法不依賴系統 只要時間不停止,就一直可以得到不重複的為隨機數2.系統shell內部變數 $RANDOM這麼沒啥好說的 依賴shell3.通過Linux的隨機裝置擷取 然後算校正和複製代碼 代碼如下:head -10
Time of Update: 2017-01-18
記得去年找工作面試時,聽到一位同學說自己非常喜歡linux,我相信他說的是真的,我覺得喜歡linux的人很大的快樂來自shell指令碼,因為它能夠整合linux上的各種資源幹大事。下面和大家分享下一個shell指令碼寫的圖片抓取器。使用方法:複製以下代碼,命名為img_downloader.sh。使用時在shell下輸入 ./img_downloader.sh www.baidu.com -d images,該shell指令碼就會把百度首頁上的圖片下下來了。複製代碼
Time of Update: 2017-01-18
1,配置多個server日誌只要在$website變數增加並用空格分開就行。2,迴圈建立日誌目錄3,分割後用xz 壓縮,當然沒安裝可以用gzip bzip2等等。4,注意我配置nginx記錄檔名為 "access_{{網站網站}}.log" "error_{{網站網站}}.log" 複製代碼 代碼如下:# !/usr/bin/bashlog_dir="/usr/local/nginx/logs"back_log_dir="/disk110/nginx_log"time=`date
Time of Update: 2017-01-18
命令替換(command substitution)是指 Shell 執行命令並將命令替換部分替換為執行該命令後的結果。命令替換有兩種方式:1. 使用 backtick 符號(即 ...,反引號,重音符號)。複製代碼 代碼如下:for i in `cd /old/code/dir ; echo *.c`do diff -c /old/code/dir/$i $i | moredone2. 使用 $(…) 的方式。複製代碼 代碼如下:for i in $(cd
Time of Update: 2017-01-18
假設你想測試網頁和一些CGI,而你又不想麻煩Apache安裝完整的包。這個快速的shell指令碼可能只是你所需要的東西。簡而言之,一個web伺服器是一個應用程式,該應用程式將本地文字檔通過網路發送給客戶的請求。如果你讓另一個程式(例如inetd)處理網路情況下,web伺服器可以減少到只有 cat "檔案名稱”發送到stdout。當然,困難將提取部分檔案名稱的HTTP請求字串:任何一個Bash指令碼無法輕易做到。指令碼我們的指令碼應該像其他任何指令碼一樣,加上一些定義:複製代碼
Time of Update: 2017-01-18
代碼如下:複製代碼 代碼如下:#! /bin/bashfunction read_file(){ for line in `cat $1` do if [ `echo $line |grep "^[a-zA-Z0-9_-]*@[A-Za-z_-]*\.[a-zA-Z_-]*$"` ];then &
Time of Update: 2017-01-18
用shell寫的遞迴遍曆目錄的指令碼,指令碼實現遞迴遍曆指定目錄,列印目錄下的檔案名稱。執行個體1:複製代碼 代碼如下:#!/bin/shfunction scandir() { local cur_dir parent_dir workdir workdir=$1 cd ${workdir} if [ ${workdir} = "/" ] &
Time of Update: 2017-01-18
卸載並刪除WScript組件 wscript.shell可以調用系統核心運行DOS基本命令,對系統安全造成危害。我們要卸載並刪除該組件,來防止此類木馬的危害。 命令列模式下執行“regsvr32 /u wshom.ocx” 命令列模式下執行“regsvr32 /u wshext.dll” 搜尋wshom.ocx,刪除所有搜尋到的內容。如果彈出Winodws系統檔案保護對話方塊,則確認刪除 搜尋wshext.dll,刪除所有搜尋到的內容。如果彈出Winodws系統檔案保護對話方塊,則確認刪除
Time of Update: 2017-01-18
檔案傳輸 對於溢出漏洞獲得的cmd shell,最大的問題就是如何上傳檔案。由於蠕蟲流行,串連ipc$所需要的139或445連接埠被路由封鎖。再加上WinXP系統加強了對ipc$的保護,通過ipc$及預設共用上傳檔案的手段基本無效了。ftp和tftp是兩種可行的方法,介於其已被大家熟知,本文就不介紹了。還有三種大家熟悉的辦法,作為總結我再提一下: 1,用Echo命令寫ASP木馬。 前提當然是目標主機上已經安裝了IIS。
Time of Update: 2017-01-18
1) 統計當前檔案夾下檔案的個數複製代碼 代碼如下:ls -l |grep "^-"|wc -l2) 統計當前檔案夾下目錄的個數複製代碼 代碼如下:ls -l |grep "^d"|wc -l 3) 統計當前檔案夾下檔案的個數,包括子檔案夾裡的 複製代碼 代碼如下:ls -lR|grep "^-"|wc -l 4) 統計檔案夾下目錄的個數,包括子檔案夾裡的 複製代碼 代碼如下:ls -lR|grep "^d"|wc -l 說明:複製代碼 代碼如下:ls -l
Time of Update: 2017-01-18
今天突然間想起昨天有個問題還沒動手實踐下,就是利用shell批量修改檔案的尾碼,現在動手實踐一下。需求:家目錄下有一些sql檔案,想批量重新命名成txt的1、find + xargs +sed複製代碼 代碼如下:find /root -name ‘*.sql' |xargs -i echo {} {} |sed ‘s/sql/txt/2′ |xargs mvfind /root/ -name ‘*.sql' |sed -e ‘s/\(.*\).sql$/mv
Time of Update: 2017-01-18
array作為一種資料結構,在一些進階語言中都是有直接提供和實現的,當然我shell中也是有的哈。PS:寫這篇文章的原因是B哥在群裡發了一個截圖:我大B哥依然是全能型人才哈。。。廢話少說,說下正題1、怎麼聲明一個陣列變數?直接賦值:複製代碼 代碼如下:array[0]=”Zero” array[1]=”One” array[2]=”Two”declare聲明:複製代碼 代碼如下:declare -a array小括弧空格法:複製代碼 代碼如下:array=(Zero One Two)引號空格法:
Time of Update: 2017-01-18
在多機叢集環境中,經常面臨修改設定檔後拷貝到多台伺服器的情況,傳統的執行scp比較麻煩,所以寫了以下shell指令碼,可以將指定檔案拷貝到多台機器。使用方法請參見HELP部分代碼。#!/bin/bash help() { cat << HELP --------------HELP------------------------ This shell script can copy file to many computers. Useage:
Time of Update: 2017-01-18
Set os=CreateObject("wscript.shell") Set os0=CreateObject("shell.application") Do input1=InputBox(" 請選擇:"+chr(13)+chr(13)+ _ "1. 全部視窗最小化"+chr(13)+ _
Time of Update: 2017-01-18
shell的迴圈主要有3種,for,while,untilshell的分支判斷主要有2種,if,case一,for迴圈複製代碼 代碼如下:#!/bin/bashfor file in $(ls /tmp/test/mytest |grep sh) //for in格式是shell for的基本格式,根js的for