여기 사람들이 일상 생활에 도움이되는 작은 스크립트 / 프로그램이 무엇인지 궁금해하는 것만으로도 일이 관련이 없습니다.
획기적인 것이 든 아니든간에. 지금 당장은 거리와 시간이 경과하면 달리는 속도를 계산하는 작은 파이썬 스크립트입니다.
여기 사람들이 일상 생활에 도움이되는 작은 스크립트 / 프로그램이 무엇인지 궁금해하는 것만으로도 일이 관련이 없습니다.
획기적인 것이 든 아니든간에. 지금 당장은 거리와 시간이 경과하면 달리는 속도를 계산하는 작은 파이썬 스크립트입니다.
답변:
내 o
키는 내 노트북에 떨어졌다; 그래서 0
서로 200 MS 내 o
에서 두 개의 0
키 입력을 서로 700 MS 내 에서 두 개의 키 입력 을 대체 0
하고 나머지는 무시하는 프로그램을 작성했습니다. 키보드를 교체하기 전에 랩톱을 사용할 수있었습니다.
와; 나는 이것이 너무 인기가 있다는 것을 몰랐다 : p
방법-Microsoft는 Hooks 라는 멋진 API 기능을 공개합니다 .
그 고리를 사용하여; 내가해야 할 일을 한 "필터"를 작성할 수있었습니다 (힌트 : 콜백 창에서 1을 반환하면 키 입력을 처리하지 않습니다).
내가 이것에 대해 알고있는 이유는 실제로 키로거를 작성했기 때문이 아니라 얼마 전에 Synergy에 프로그램 스마일 러를 작성했기 때문 입니다.
그리고 그렇습니다. 나는 영숫자 키를 임의의 영숫자 키로 바꾸고 다른 프로그램을 작성했습니다. 정말 재밌었어요 : D
더 이상 코드가 없지만 VBA에서 내가 작성한 가장 유용한 스크립트는 믿거 나 말거나하지 않았습니다. 나는 그에게 체리 폭탄이라고 불리는 짧은 퓨즈를 가진 성가신 동료가 있었다. 고객이 전화를 걸고 일어 서서 칸막이 벽 너머로 날 뛰기 시작했을 때 종종 화가 나서 생산성과 사기를 떨어 뜨 렸습니다.
나는 항상 Microsoft Excel을 열었습니다. 그가 그렇게 할 때 Excel로 Alt-Tab을 누르면 툴바에 체리 폭탄 이미지가있는 새로운 아이콘이 있습니다. 나는 신중하게 클릭하고 아무 일도 일어나지 않을 것입니다.
그러나 그 후 얼마 지나지 않아 전화를 받고 "그렇습니다. 예, 좋지 않습니다. 좀 더 잘 살펴 보았습니다." 그런 다음 일어나서 체리 폭탄에 사과하고 걸어 나갔습니다.
무슨 일이 있었는지 우리는 NetWare를 사용했고 기본 메시징 시스템이 내장되어있었습니다. 버튼을 클릭하면 작은 VBA 스크립트가 친구에게 NetWare 폭탄 메시지를 보내 체리 폭탄이 다시 있었다는 것을 알려줍니다. 전화주세요 그는 그것을 이해하지 못했습니다 :)
라는 bash는 스크립트 까지 내가에있어 경우에 너무 /a/very/deeply/nested/path/somewhere
내가 가서 "까지"할 N의 디렉토리, 내가 입력 할 수 있습니다 :up N
#!/bin/bash
LIMIT=$1
P=$PWD
for ((i=1; i <= LIMIT; i++))
do
P=$P/..
done
cd $P
예를 들면 다음과 같습니다.
/a/very/deeply/nested/path/somewhere> up 4
/a/very>
gmatt의 NB :
위의 위대한 작업을 수행하면 다음을 bashrc에 배치하여 백 기능으로 확장 할 수 있습니다.
function up( )
{
LIMIT=$1
P=$PWD
for ((i=1; i <= LIMIT; i++))
do
P=$P/..
done
cd $P
export MPWD=$P
}
function back( )
{
LIMIT=$1
P=$MPWD
for ((i=1; i <= LIMIT; i++))
do
P=${P%/..}
done
cd $P
export MPWD=$P
}
back
방법 을 포함하도록 확장 했으므로, 쓸모가있을 때마다 쉽게 앞뒤로 움직일 수 있습니다. 이것을 사용하려면 이것을 bashrc에 넣으십시오 (똥 형식에 대해 죄송합니다) : function up () {((i = 1; i <= LIMIT; i ++)에 대한 LIMIT = $ 1 P = $ PWD P = $ P / .. done cd $ P 내보내기 MPWD = $ P} 함수 back () {((i = 1; i <= LIMIT; i ++))에 대한 {LIMIT = $ 1 P = $ MPWD do P = $ {P % / ..} done cd $ P 내보내기 MPWD = $ P}
슈퍼 원격 리셋 버튼. 세계의 반대편에있는 사용자가 이른 아침 시간에 충돌 할 수있는 슈퍼 특수 시뮬레이션 하드웨어
랙 (VME 상자가 가득 찬 방이 GPU보다 적었던 시절). 실험실에 들어가 보안을 통과하는 데 1 시간이 걸렸습니다.
그러나 우리는 슈퍼 특수 컨트롤러 에 연결 하거나 하드웨어를 수정할 수 없었습니다 . 해결책은 엡손 도트 매트릭스 프린터가 장착 된 오래된 DEC 워크 스테이션이었고 플라스틱 눈금자를 용지 공급 손잡이에 테이프로 고정하고 프린터를 재설정 버튼 근처에 놓습니다.
WS에 일반 사용자 (루트가 허용되지 않고 모든 외부 포트가 잠김)로 로그인하고 24 개의 빈 줄이있는 문서를 인쇄하십시오. 이렇게하면 용지 공급 노브가 회전하고 눈금자가 슈퍼 특수 하드웨어 의 재설정을 눌렀습니다 .
Windows XP에서는 매일 C : \에서이 명령을 실행하도록 AT 작업을 설정했습니다.
dir /s /b * > dirlist.txt
C 드라이브에있는 모든 파일의 전체 경로가 나열됩니다. 그런 다음 파일을 찾아야 할 때마다을 사용할 수 있습니다 findstr
. 전체 경로에서 정규식 일치를 허용하기 때문에 Windows 탐색기 검색을 사용하는 것이 좋습니다. 예를 들면 다음과 같습니다.
findstr ".jpg" dirlist.txt
findstr /i /r "windows.*system32.*png$" dirlist.txt
이것은 설치가 매우 빠른 솔루션이며 인터넷에 연결되어 있지 않고 새로 설치 한 Windows를 사용하는 경우 유용합니다.
특정 파일 형식 내에서 패턴을 검색해야하는 경우 먼저 확인해야하는 모든 파일을 나열한 다음 해당 파일 내에서 검색하십시오. 예를 들어 이미지를 뒤집는 Java 또는 Python 프로그램을 찾으려면 다음과 같이하십시오.
findstr "\.java \.py" dirlist.txt > narrowlist.txt
findstr /i /r /f:narrowlist.txt "flip.*image"
디지털 카메라를 꽂으면 자동으로 실행되는 Python 스크립트가 있습니다.
카메라의 카드에서 모든 사진을 복사하여 백업 한 다음 Flickr에 업로드합니다.
Flickr로 업로드 조각은 uploadr.py (내가 신용 할 수 없음)에서 가져 옵니다 .
카메라 언로드를위한 Python 코드는 다음과 같습니다. SRCDIR을 통해 반복되고 이미지를 DESTDIR에 복사하기 전에 날짜와 시간으로 각 이미지의 이름을 지정합니다.
#!/usr/bin/python
import os
import string
import time
import shutil
###################################################
__SRCDIR__ = "/mnt/camera"
__DESTDIR__ = "/home/pictures/recent"
###################################################
def cbwalk(arg, dirname, names):
sdatetime = time.strftime("%y%m%d%H%M")
for name in names:
if string.lower(name[-3:]) in ("jpg", "mov"):
srcfile = "%s/%s" % (dirname, name)
destfile = "%s/%s_%s" % (__DESTDIR__, sdatetime, name)
print destfile
shutil.copyfile( srcfile, destfile)
###################################################
if __name__ == "__main__":
os.path.walk(__SRCDIR__, cbwalk, None)
필자는 읽은 모든 웹 만화에 가서 새로운 만화를 다운로드하는 Python 스크립트를 작성했습니다. 하루에 한 번만 실행하면 각 사이트를 개별적으로 방문 할 필요가 없으며 / Comics / 폴더를 방문하십시오. ;)
내 .cmd 백업 스크립트 매일 밤 내 서버에서 실행되며 요일에 따라 백업 파일 이름을 지정합니다. 일주일에 한 번의 백업으로 여러 번 저와 가족을 구했습니다.
:: 백업 인수 : :: / V 확인? (예 아니오) :: / R 소유자에 대한 액세스를 제한 하시겠습니까? (예 아니오) :: / RS 이동식 저장소? (예 아니오) :: / HC 하드웨어 압축 (켜기 / 끄기) :: / M 백업 유형 (일반 / 복사 / 차동 / 증분 / 일일) :: / L 로그 파일 형식 (f / s / n) :: / D "설명" :: / J "직업 이름" :: / F "파일 이름" SETLOCAL :: 네트워크 드라이브가 마운트되었는지 확인 전화 C : \ bat \ configs \ MapShares-home.cmd 에코 오늘 설정 = % DATE : ~ 0,3 % % today % == Mon이 어제 = 0 일요일로 설정된 경우 % today % == 화가 어제 = 1 월요일 인 경우 % today % == 수요일을 어제로 설정 한 경우 = 2 화요일 % today % == 목으로 설정 한 경우 = 3 수요일 % today % == 금요일 어제 = 4 목요일 인 경우 % today % == 토요일 어제 = 5 금요일 인 경우 % today % == Sun이 어제 = 6 토요일 인 경우 configsDir = % ~ dp0 설정 storePath = C : \ mybackups 설정 :: (예 : 월요일 C 파일) 제목 설정 = % yesterday % 백업 세트 echo % DATE % % TIME % % title %> "% storePath % \ % yesterday % _backup.log" CALL BackupConfigs.bat :: 새로운 BKF 파일 생성 C : \ WINDOWS \ system32 \ ntbackup.exe 백업을 호출 ^ "@ % configsDir % \ daily.bks"^ / V : 예 / R : 아니오 / RS : 아니오 / HC : 끄기 / M 보통 / L : s ^ / D "% title %"^ / J "% title % .job"^ / F "% storePath % \ % yesterday % .bkf"^ >> "% storePath % \ % yesterday % _backup.log" echo % DATE % % TIME % Completed >> "% storePath % \ % yesterday % _backup.log" "% storePath % \ % yesterday % .bkf" "V : \ Backups \ NEPTUNE"복사 전화 C : \ bat \ clean-temps.bat 조각 모음 -v C :> "% storePath % \ % yesterday % _defrag.log" :: 백업 디렉토리 표시 / D "C : \ bat \ Backups \"checkbkf.bat 시작 내향 ::중지
나는 매일 팀에서 사용되는 스크립트를 작성했습니다. 인텔에서 일할 때 우리는 액세스 데이터베이스와 통신하여 레지스터 정보 덤프를 가져 오는 앱을 가지고있었습니다 (칩셋 검증 작업을했습니다). SQL 쿼리에서이 정보를 가져 와서 CSV 파일, HTML 파일 및 Excel 파일로 덤프합니다. 전체 프로세스는 거의 2 시간이 걸렸습니다. 농담이 없습니다. 왜 그렇게 오래 걸 렸는지 모르겠습니다. 점심 먹기 한 시간 전에 시작해서 점심 식사를 한 다음 다시 돌아옵니다.
나는 이것을하는 더 좋은 방법이 있어야한다고 생각했다. 나는 레지스트리 데이터베이스를 유지 관리하고 그들로부터 SQL 코드를 얻은 팀과 이야기했다. 그런 다음 데이터를 가져 와서 CSV, HTML 및 Excel 형식으로 출력하는 펄 스크립트를 작성했습니다. 실행 시간? 1-2 초 정도. 큰 속도 향상.
또한 2006 년 이라크에 배치되는 동안 몇 가지 스크립트를 작성했습니다 (9 년 동안 방위군에서 복무했습니다-12 월에 나왔습니다). 우리는 ADA로 작성되었고 원래 DOS에서 실행되었던 ULLS-G (Unit Level Logistics System-Ground)라는이 오래된 앱을 사용했습니다. 그들은 명령 쉘에서 Windows XP가 실행될 곳까지 충분히 해킹했습니다. 이 시스템에는 마우스 인터페이스가 없었습니다. 모든 것은 키보드를 통해 이루어졌으며 배치 기능이 없었습니다. 모든 차량 운전자를위한 라이센스를 인쇄하고 싶다고 가정 해 봅시다. 글쎄 ... 우리 부대에는 150 명의 군인이 있었는데 오랜 시간이 걸렸다. 모든 사람이 새 차량에 대한 자격을 갖추 었으며 모든 사람의 운전자 자격에 추가하려고한다고 가정 해 봅시다. 당신은 그것을 하나씩해야했습니다.
SAGE 데이터베이스 (ULLS-G가 사용한 것)에 대한 ODBC 드라이버를 찾을 수 있었으므로 SAGE 데이터베이스와 통신 할 수있는 perl 스크립트를 작성했습니다. 한 시간 이상 걸리던 일이 이제 몇 초 밖에 걸리지 않았습니다. 또한 스크립트와 드라이버를 사용하여보고했습니다. 매일 아침 모든 정보를 대대에보고해야했습니다. 다른 부서에서는 매일 아침 정보를 직접 작성합니다. 나는 같은 드라이버를 사용하고 SAGE 데이터베이스와 대화하고 Excel 스프레드 시트를 그런 식으로 업데이트 한 Excel 매크로를 채웠습니다. 내가 작성한 것 중 가장 복잡하고 유일한 Excel 매크로입니다. 그들이 나에게 육군 표창 메달을 수여했기 때문에 돈을 지불했다. 그래, 나는 군대에서 펄 스크립트를 쓰는 메달을 받았다. :) 얼마나 많은 사람들이 말할 수 있습니까? ;)
나는 개인 조종사입니다. 나는 aviationweather.gov에서 지역 공항의 날씨 정보를 얻는 두 개의 대본을 썼습니다. "오늘은 좋은 날 이오?"라는 질문에 대한 빠른 답변에 유용했습니다.
게임 사이트 Kotaku.com에서 명백하게 바보 [*] 주석 을 제거 하는 Greasemonkey 스크립트
[*] 일반적인 철자 실수, 모든 대문자 쓰기, "LOL"의 과도한 사용 및 유사한 휴리스틱으로 식별됩니다.
alias dir = 'ls -al' 은 내가 선호하는 스크립트입니다.
사용하기 어려운 사이트에서 시리즈 / 동영상에 사용할 수있는 모든 자막을 다운로드 할 수있는 스레드 HTML 스크레이퍼 (검색 페이지에서 다운로드를 받으려면 4 번 클릭해야 더 많은 광고를 표시 할 수 있음) 이제 검색 기준을 정하고 다운로드를 누릅니다.
끌어서 놓기를 통한 대량 파일 이름 바꾸기
오래 전에 RegEx를 허용하고 그에 따라 파일 이름을 바꾸는 작은 VBScript를 만들었습니다. 당신은 단순히 그것에 많은 파일이나 폴더를 드롭합니다. 나는 수년 동안 매우 유용하다는 것을 알았습니다.
gist.github.com/15824 (주석은 독일어로되어 있음)
5 초마다 google.com의 DNS를 조회하여 성공하면 한 번, 실패하면 두 번 울리는 빠르고 더러운 Python 스크립트입니다.
나는 매우 얇은 홈 네트워크와 함께 살아야 할 때 이것을 썼습니다. 네트워크 케이블로 가득 찬 양손과 입안의 손전등으로 방을 가로 질러 책상 아래로 처음 머리를 향한 상태에서도 네트워크 상태를 즉시 알 수있었습니다.
이것은 몇 달 전 내 블로그에 올린 글 에서 최근 메모리에서 기침 한 최고의 작은 해킹 중 하나에 시원하다고 생각한 아이디어가 아닙니다. 나는 여기에 전체 인용 :
==================
나는 bash에서 많은 시간을 보낸다. 초기에 bash는 대부분의 유닉스 머신과 일부 윈도우와 모든 Mac에서 찾을 수있는 시스템입니다. 처음에는 홍당무가 명령 줄 인터페이스에 지나지 않으므로 잊어 버린 구애와 같은 것을 보는 대부분의 사용자의 레이더에서 멀어집니다.
나는 bash에서 거의 모든 것을한다. COMMAND LINE에서 이메일을 읽었으므로 마크 업 이메일을 피했습니다. 디렉토리를 탐색하고, 파일을 편집하고, 매일의 소스 코드 체크 아웃 및 전달, 파일 검색, 파일 내부 검색, 시스템 재부팅, 명령 줄에서 웹 페이지 탐색 등을 수행합니다. bash는 나의 디지털 존재의 마음과 영혼입니다.
문제는 한 번에 약 6 개의 bash 창을 여는 경향이 있다는 것입니다. 오늘 직장에서 하나는 웹 서버를 운영하고, 다른 하나는 내 데이터베이스를 조작하고, 세 번째, 네 번째 및 다섯 번째로 다른 파일을 편집하는 중 여섯 번째는 내 컴퓨터를 통해 시스템의 모든 파일 이름을 기록하려고 시도했습니다. 왜? 파일 이름으로 객체를 찾을 위치를 알고 싶다면 그러한 아카이브를 검색하는 것이 편리하기 때문입니다.
이렇게하면 컨트롤 바에 간단히 "bash"라는 이름의 많은 창이 생깁니다. 당신이 그들 중 하나만 가지고 있다면 괜찮지 만 6 개 이상 .. 하나의 키보드 / 마우스 쌍의 동시 명령하에 세 개의 모니터가 있으며 여전히 더 많은 모니터가 필요하다고 느낍니다. 각 창에는 여러 개의 bash 터미널이 열려 있습니다.
그래서 나는 이것을 함께 뭉쳤다. 먼저 다음 줄을 .bash_profile에 넣으십시오.
export PROMPT_COMMAND='export TRIM=`~/bin/trim.pl`'
export PS1="\[\e]0;\$TRIM\a\]\$TRIM> "
trap 'CMD=`history|~/bin/hist.pl`;echo -en "\e]0;$TRIM> $CMD\007"' DEBUG
나는이 모든 것이 어떻게 작동하고 정확히 어떻게 설정되었는지에 대해 수십 개의 문단을 썼지 만 실제로 관심이 없다. 날 믿어. ...
세 번째 줄에 "CMD = ; echo ..."를 한 이유는 책의 전체 장입니다 . 많은 사람들 (내 다른 도메인이 호스팅되는 블루 호스트 포함)은 여전히 트랩을 처리하는 방법에 큰 버그가있는 오래된 버전의 bash를 사용하고 있기 때문에 우리는 이것에 갇혀 있습니다. bash 버전을 사용하고 연구하고 싶은 느낌이 들면 CMD를 제거하고 $ BASH_COMMAND로 바꿀 수 있습니다.
어쨌든, 내가 사용하는 첫 번째 스크립트가 여기 있습니다. 적당한 이름으로 잘린 시스템 이름과 디렉토리를 포함하는 멋진 프롬프트를 만듭니다.
============trim.pl===========
#!/usr/bin/perl
#It seems that my cygwin box doesn't have HOSTNAME available in the
#environment - at least not to scripts - so I'm getting it elsewhere.
open (IN, "/usr/bin/hostname|");
$hostname = <IN>;
close (IN);
$hostname =~ /^([A-Za-z0-9-]*)/;
$host_short = $1;
$preamble = "..." if (length($ENV{"PWD"})>37);
$ENV{"PWD"} =~ /(.{1,37}$)/;
$path_short = $1;
print "$host_short: $preamble$path_short";
==============================
이 블로그 게시물 상단에 "@ENV를 통해 HOSTNAME 환경 변수를 사용하지 않은 이유는 무엇입니까?"와 같은 어리석은 질문을하기 전에 읽어야한다는 경고가 있습니다. 단순 : 모든 시스템에서 작동하지 않기 때문에 시도했습니다.
이제 정말 멋진 비트입니다. .bash_profile 추가의 3 행을 기억하십니까?
trap 'CMD=`history|~/bin/hist.pl`;echo -en "\e]0;$TRIM> $CMD\007"' DEBUG
이전과 같은 컨테이너에 trim.pl 스크립트 출력을 덤프하여 명령 프롬프트와 창 제목 모두에 인쇄하지만 이번에는 방금 입력 한 명령을 추가합니다! .bashrc 에서이 모든 작업을 수행하지 않으려는 이유는 무엇입니까? 내 컴퓨터에서 사람이 실행하는 스크립트는 모든 줄 에서이 작업을 트리거합니다. 우리가 여기서하는 일로 인해 사람의 결과가 심각하게 왜곡됩니다. 우리는 터미널을 정확하게 플레이하지 않습니다.
방금 입력 한 명령을 잡기 위해 bash의 기록을 가져 와서 조금 깎습니다.
===========hist.pl============
#!/usr/bin/perl
while (<STDIN>)
{
$line = $_
}
chomp $line;
$line =~ /^.{27}(.*)/;
print $1;
==============================
그래서 지금, 나는 bazillion 창문을 가지고 있고 그들은 다음과 같이 말합니다 :
castro: /home/ronb blog
Ron-D630: /C/ronb/rails/depot script/server
Ron-D630: /C/ronb/rails/depot mysql -u ron -p
Ron-D630: /C/ronb/rails/depot find . > /C/ronb/system.map
Ron-D630: /C/ronb/rails/depot vi app/views/cart.html.erb
Ron-D630: /C/perforce/depot/ p4 protect
Ron-D630: /C/perforce/depot/ p4 sync -f
Ron-D630: /C/perforce/depot/
화면 하단의 행복한 작은 막대에서 이제 어느 것을 한 눈에 알 수 있습니다. 그리고 PS1을 설정 했으므로 명령 실행이 완료 되 자마자 명령 이름은 다시 trim.pl의 출력으로 대체됩니다.
업데이트 (당일) :이 물건 (.bash_profile 항목)은 .bashrc에서 시도했을 때 모든 종류의 지옥을 나에게 놓았습니다. bash는 언어로 bash를 호출 할 때마다 비 대화식 스크립트에 의해 실행됩니다. 나는 남자를 사용하려고 할 때 이것을 쳤다. 모든 종류의 쓰레기 (내 .bashrc의 완전한 텍스트와 이스케이프 문자)가 맨 페이지 상단에 나타났습니다. 명령 줄에서이 젬을 빠른 'man man'호출로 테스트하는 것이 좋습니다.
내 .bashrc에서 사용자 지정 쓰레기를 꺼내어 그것이 속한 곳에 넣을 때가 된 것 같습니다 ...
우연히, 나는이 과정의 한 시점에서 'man trap'을 입력한다는 것을 알았습니다.
이전 근무지에서 근무 시간은 어리 석었습니다. 소프트웨어 회사 였고 상사는 빨려 들었다. 그는 오후 5시 30 분 (집에 갈 때가되었을 때)에 일을하게하고 오후 11시 (최상의 생산 시간을 지나서)까지 일을 마치게했습니다. 또는 여전히 진행중인 코드에서 성가신 문제를 발견 할 것입니다.
그래서 배치 파일과 스크립트를 만들어 오후 7시에서 오후 8시 사이에 임의의 시간에 컴퓨터를 끌 수 있습니다. 몇 시간 후에 머물러 있고 종료 프로세스를 중단 해야하는 경우를 대비하여 1 분 타이머가있었습니다.
하지만 오후 5시 전에 책상을 떠나서 체크 아웃 시간에 쓰레기를 버리고 싶다면 나를 찾을 수 없었습니다. 그가 내 책상에 와서 내 컴퓨터를 본다면, 나는 아직도 식료품 저장실 주변이나 근처의 미니 마트에 칩이나 무언가를 움켜 쥐고 있다고 생각했을 것입니다. 그러나 그 시간이 지났을 때, 그는 내 휴대 전화로 전화를 걸어 사무실로 돌아 오라고 말했습니다.
또한 게으름을 느끼고 오전 10시 또는 오전 11 시경에 걸을 때를 대비 하여 내 컴퓨터의 BIOS를 8:00 AM 또는 9:00 AM에 켜도록 예약했습니다 . 책상에 걸어 다니면 "아침에 어디에 있었습니까?"라고 물을 것입니다. "저는 마케팅 팀과 회의 중이었습니다." 또는 "아침 식사를하고 있었어요."
멍청한 개
나는 기술 여름 캠프에서 일 했었고, 우리는 일주일 말에 그룹의 각 아이들을 위해 이러한 기록을 작성해야했으며, 그들은 그 책을 기념품으로 받고 집으로 가져갈 것입니다. 일반적으로 이것들은 많은 일반적인 문장과 1-2 개의 개인화 된 문장으로 구성되었습니다. 필자는 통조림 문장 은행에서 이러한 작문 중 하나를 구성한 python 스크립트를 작성했으며 사용자가 중간에 몇 개의 개인화 된 문장을 추가 할 수있었습니다. 이로 인해 저와 다른 카운슬러들이 비밀을 밝히는 데 많은 시간이 절약되었습니다. 많은 부분이 자동화되어 있었지만, 개인화 된 부분에 더 많은 시간을 투자 할 수 있었기 때문에 우리의 글은 여전히 많은 '정직한'것보다 나아졌습니다.
#! /bin/bash
# check to see if site is up
# if it is, don't worry
# if it's down, restart apache after get a process listing
#
# v.1 Warren M Myers - initial stab
# 31 Aug 06
#
ERRCOD='7'
WHEN=`date +%d%b%y`
REPT="~/psaux.$WHEN.txt"
STARS='********************'
curl -I http://www.shodor.org > /var/tmp/curlret.txt
if [ "$?" = "$ERRCOD" ]; then
# return was unable to connect to host: save ps -aux; mail report
ps -aux > $REPT
echo $STARS
echo 'curl return results'
echo
cat curlret.txt
echo
echo $STARS
echo 'ps -aux results'
cat $REPT
echo
echo $STARS
echo 'restarting apache'
/etc/init.d/apache2 restart
echo 'apache restarted'
echo
echo "ps -aux results saved in $REPT"
fi
rm -f /var/tmp/curlret.txt
이것을 자동로드 기능으로 사용합니다. "mycd"만 입력하면 자주 CD를 찾는 디렉토리 목록이 나타납니다. 내가 숫자를 알고 있다면 "mycd 2"와 같은 것을 말할 수 있습니다. 디렉토리를 목록에 추가하려면 "mycd / tmp / foo / somedirectory"를 입력하십시오.
function mycd {
MYCD=/tmp/mycd.txt
touch ${MYCD}
typeset -i x
typeset -i ITEM_NO
typeset -i i
x=0
if [[ -n "${1}" ]]; then
if [[ -d "${1}" ]]; then
print "${1}" >> ${MYCD}
sort -u ${MYCD} > ${MYCD}.tmp
mv ${MYCD}.tmp ${MYCD}
FOLDER=${1}
else
i=${1}
FOLDER=$(sed -n "${i}p" ${MYCD})
fi
fi
if [[ -z "${1}" ]]; then
print ""
cat ${MYCD} | while read f; do
x=$(expr ${x} + 1)
print "${x}. ${f}"
done
print "\nSelect #"
read ITEM_NO
FOLDER=$(sed -n "${ITEM_NO}p" ${MYCD})
fi
if [[ -d "${FOLDER}" ]]; then
cd ${FOLDER}
fi
}
스크립트를 작성하여 시작 단추를 클릭 한 다음 0.5 초 안에 다시 클릭하고 30 초마다 반복하십시오.
직장에서 온라인 표시를 유지하고 바로 옆에있는 개인 랩톱에서 실제 작업을 수행 할 수 있습니다. 업무용 소프트웨어에 얽매이지 않습니다.
상사에게 말하지 마십시오 :)
rsync를 사용하여 회전 백업을 수행하는 쉘 스크립트입니다. 또한 다른 사전 백업 활동을 지원하기 위해 임의의 하위 프로그램 실행을 지원합니다 (예 : 맛있는 책갈피 다운로드).