В Wikipedia можно вкратце посмотреть о формате с примерами.
Строка может быть трёх типов: комментарий (начинается с #), задание переменной среды (SHELL,MAILTO,PATH,LOGNAME,HOME) или команда для cron. Строки не могут смешиваться, то есть нельзя писать комментарий в строке с командой.
С первым типом всё понятно - комментарий он и есть комментарий.
Второй тип - задание переменной выглядит как "имя_переменной = величина". За подробностями о переменных обращайтесь в справку.
Ну и третий тип, самый интересный для нас, выглядит как шесть полей разделённых пробельными символами (пробелы и/или знаки табуляции). Первые пять полей задают время для команды, шестой - имя программы:
(минуты:0-59) (часы:0-23) (дни месяца:0-31) (месяц:0-12) (день недели:0-6, 0-воскресенье) (программа_с_параметрами)
Каждое из первых пяти полей может быть задано следующим образом:
Звёздочка (*) - обозначает весь диапазон (от первого до последнего)
Диапазон чисел, от и до. Например "5-7" будет означать 5,6 и 7
Списки. Это числа (или диапазоны) разделенные запятыми. Например: "1,5,10,11" или "1-11,19-23".
Звёздочка или диапазон с шагом. Используется для пропусков в диапазонах. Шаг указывается после косой черты. Например "2-10/2" будет значить "2,4,6,8,10", а выражение "*/2" в поле "часы" будет означать "каждые два часа.
Последнее поле (шестое) определяет команду для запуска.
Примеры (взяты из Wikipedia):
# как обычно, с символа '#' начинаются комментарии
# в качестве командного интерпрететора использовать /bin/sh
SHELL=/bin/sh
# результаты работы отправлять по этому адресу
MAILTO=paul@example.org
# добавить в PATH
PATH=$PATH:$HOME/bin
#### Здесь начинаются задания
# выполнять каждый день в 0 часов 5 минут, результат складывать в log/daily
5 0 * * * $HOME/bin/daily.job >> $HOME/log/daily 2>&1
# выполнять 1 числа каждого месяца
15 14 1 * * $HOME/bin/monthly
# каждый рабочий день в 22:00
0 22 * * 1-5 echo «Пора домой» | mail -s «Уже 22:00» john
23 0-23/2 * * * echo «Выполняется в 0:23, 2:23, 4:23 и т. д.»
5 4 * * sun echo «Выполняется в 4:05 в воскресенье»
0 0 1 1 * echo «С новым годом!»
15 10,13 * * 1,4 echo «Каждый понедельник и четверг в 10:15 и 13:15»
Как добавить задачу в crontab?
Формат команды:
crontab { -l | -r | -e }
где:
-l - выводит текущих crontab файл на стандартный вывод.
-r - удаляет текущий crontab файл.
-e - используется для редактирования текущего crontab используя редактор, заданный переменной окружения VISUAL или EDITOR. Таким образом, вводим crontab -e, добавляем нужную строку с командой и нажимаем "Ctrl-D".
Надоело все время с нуля настраивать оболочку под себя.
Вот здесь выкладываю свои настройки.
.bashrc
Для root'а:
# ~/.bashrc: executed by bash(1) for non-login shells. # Note: PS1 and umask are already set in /etc/profile. You should not # need this unless you want different defaults for root. #PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ ' # umask 022 #PS1="\[\033[1;31m\]\h:\[\033[1;33m\](\w)\[\033[0m\]\[\033[0m\]" lightblue='\e[1;34m' lightgreen='\e[1;32m' lightred='\e[1;31m' ###PS1='\[\033[01;32m\]\u\[\033[01;34m\]-\[\033[01;31m\]\h\[\033[00;34m\]{\[\033[01;34m\]\w\[\033[00;34m\]}\[\033[01;32m\]:\[\033[00m\]' PS1="\[\033[1;30m\]\t-\[\033[1;31m\]\h:\[\033[1;33m\](\w)\[\033[0m\]\[\033[0m\]" clear ###echo -e "${lightred}";figlet -c "DEBIAN"; echo -e "${lightgreen}Ядро: \t${lightgreen}" `uname -smr` echo -e "${lightgreen}ОС: \t ${lightgreen}Debian GNU/Linux ${NC}" `cat /etc/debian_version` export LESS_TERMCAP_mb=$'\033[01;31m' export LESS_TERMCAP_md=$'\033[01;31m' export LESS_TERMCAP_me=$'\033[0m' export LESS_TERMCAP_se=$'\033[0m' export LESS_TERMCAP_so=$'\033[01;44;33m' export LESS_TERMCAP_ue=$'\033[0m' export LESS_TERMCAP_us=$'\033[01;32m' # You may uncomment the following lines if you want `ls' to be colorized: export LS_OPTIONS='--color=auto --group-directories-first' eval "`dircolors`" alias ls='ls $LS_OPTIONS' alias ll='ls $LS_OPTIONS -l' alias l='ls $LS_OPTIONS -lA' alias la='ls $LS_OPTIONS -lah' alias l='ls $LS_OPTIONS -CF' # # Some more alias to avoid making mistakes: # alias rm='rm -i' # alias cp='cp -i' # alias mv='mv -i' alias dir='dir --color=auto' alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' if [ -f /usr/bin/grc ]; then alias cvs="grc --colour=auto cvs" alias diff="grc --colour=auto diff" alias esperanto="grc --colour=auto esperanto" alias gcc="grc --colour=auto gcc"
# # Some more alias to avoid making mistakes: # alias rm='rm -i' # alias cp='cp -i' # alias mv='mv -i' alias dir='dir --color=auto' alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' if [ -f /usr/bin/grc ]; then alias cvs="grc --colour=auto cvs" alias diff="grc --colour=auto diff" alias esperanto="grc --colour=auto esperanto" alias gcc="grc --colour=auto gcc" alias irclog="grc --colour=auto irclog" alias ldap="grc --colour=auto ldap" alias log="grc --colour=auto log" alias netstat="grc --colour=auto netstat" alias ping="grc --colour=auto ping" alias proftpd="grc --colour=auto proftpd" alias traceroute="grc --colour=auto traceroute" alias wdiff="grc --colour=auto wdiff" fi if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi extract () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xvjf $1 ;; *.tar.gz) tar xvzf $1 ;; *.tar.xz) tar xvJf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xvf $1 ;; *.tbz2) tar xvjf $1 ;; *.tgz) tar xvzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *.xz) unxz $1 ;; *.exe) cabextract $1 ;; *) echo "\`$1': неизвестный метод сжатия файла" ;; esac else echo "\`$1' нет такого файла" fi }
alias ls='ls $LS_OPTIONS'export LS_OPTIONS='--color=auto --group-directories-first'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
alias la='ls $LS_OPTIONS -lah'
alias l='ls $LS_OPTIONS -CF'
Screen (/etc/screenrc): # -вместо "ctrl+a" назначена клавиша <`> (обычно она под esc и над tab), # так что вместо двух клавиш надо жать одну. Если надо # набрать <`>, что довольно редко требуется, то надо нажать её два раза подряд. # -внизу терминала зеленым на чёрном статусная строка показывающая # активные сессии и часы. Переключение между ними: `1, `2, `3 и т.п., или # `n (next), `p (previous) # - для CERN/Lxplus добавление в конец этого файла строк # # annoying RedHat/SLC backspace problem # bindkey ^? stuff ^H # решает проблему с # - `d => detach session; screen -ls => list of detached session; # screen -r => reattach session. #------------------------------------------------------------------------------ # .screenrc file based on http://www.dotfiles.com/files/3/463_screenrc.txt #------------------------------------------------------------------------------ # SCREEN SETTINGS #------------------------------------------------------------------------------ escape `` # use ` instesd of Cntr-A vbell on # default: off vbell_msg " -- Ring, Ring!! -- " # default: "Wuff,Wuff!!" autodetach on # default: on startup_message off # default: on crlf off # default: off defscrollback 1024 # default: 100 silencewait 15 # default: 30 msgwait 15 pow_detach_msg "Screen session of \$LOGNAME \$:cr:\$:nl:ended." # change the hardstatus settings to give an window list at the bottom of the # screen, with the time and date and with the current window highlighted # caption always "%{=}%?%{b}%H %L=%{+b}%?%{y}%-Lw%47L>%?%{g}%n*%f %t %?%{y}%+Lw%?%{b}%-31=%c %l %Y-%m-%d" hardstatus alwayslastline #hardstatus string '%{= mK}%-Lw%{= KW}%50>%n%f* %t%{= mK}%+Lw%< %{= kG}%-=%D %d %M %Y %c:%s%{-}' hardstatus string '%{= kG} %{G}%H %{g}[%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}]%{D} %d/%m %c %{g}' #------------------------------------------------------------------------------ # TERMINAL SETTINGS #------------------------------------------------------------------------------ #the vt100 description does not mention "dl". *sigh* termcapinfo vt100 dl=5\E[M termcap vt100* ms:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC terminfo vt100* ms:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC termcap xterm hs@:cs=\E[%i%d;%dr:im=\E[4h:ei=\E[4l terminfo xterm hs@:cs=\E[%i%p1%d;%p2%dr:im=\E[4h:ei=\E[4l termcapinfo xterm Z0=\E[?3h:Z1=\E[?3l:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l termcapinfo xterm* OL=100 termcapinfo xterm 'VR=\E[?5h:VN=\E[?5l' termcapinfo xterm 'k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~' termcapinfo xterm 'kh=\EOH:kI=\E[2~:kD=\E[3~:kH=\EOF:kP=\E[5~:kN=\E[6~' termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007' termcapinfo xterm 'vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l' termcapinfo xterm 'XC=K%,%\E(B,[\304,\\\\\326,]\334,{\344,|\366,}\374,~\337' termcapinfo xterm* be termcapinfo linux C8 #------------------------------------------------------------------------------ # SCREEN KEYBINDINGS
Nano - apхив с шаблонами,
мой /etc/nanorc: ## Sample initialization file for GNU nano. ## ## Please note that you must have configured nano with --enable-nanorc ## for this file to be read! Also note that this file should not be in ## DOS or Mac format, and that characters specially interpreted by the ## shell should not be escaped here. ## ## To make sure a value is disabled, use "unset ## ## For the options that take parameters, the default value is given. ## Other options are unset by default. ## ## Quotes inside string parameters don't have to be escaped with ## backslashes. The last double quote in the string will be treated as ## its end. For example, for the "brackets" option, ""')>]}" will match ## ", ', ), >, ], and }. ## Use auto-indentation. # set autoindent ## Backup files to filename~. # set backup ## The directory to put unique backup files in. # set backupdir "" ## Do backwards searches by default. # set backwards ## Use bold text instead of reverse video text. # set boldtext ## The characters treated as closing brackets when justifying ## paragraphs. They cannot contain blank characters. Only closing ## punctuation, optionally followed by closing brackets, can end ## sentences. ## # set brackets ""')>]}" ## Do case sensitive searches by default. # set casesensitive ## Constantly display the cursor position in the statusbar. Note that ## this overrides "quickblank". # set const ## Use cut to end of line by default. # set cut ## Set the line length for wrapping text and justifying paragraphs. ## If fill is 0 or less, the line length will be the screen width less ## this number. ## # set fill -8 ## Enable ~/.nano_history for saving and reading search/replace strings. # set historylog
## The opening and closing brackets that can be found by bracket
## searches. They cannot contain blank characters. The former set must
## come before the latter set, and both must be in the same order.
##
# set matchbrackets "(<[{)>]}"
## Use the blank line below the titlebar as extra editing space.
# set morespace
## Enable mouse support, if available for your system. When enabled,
## mouse clicks can be used to place the cursor, set the mark (with a
## double click), and execute shortcuts. The mouse will work in the X
## Window System, and on the console when gpm is running.
##
# set mouse
## Allow multiple file buffers (inserting a file will put it into a
## separate buffer). You must have configured with --enable-multibuffer
## for this to work.
##
# set multibuffer
## Don't convert files from DOS/Mac format.
# set noconvert
## Don't follow symlinks when writing files.
# set nofollow
## Don't display the helpful shortcut lists at the bottom of the screen.
# set nohelp
## Don't add newlines to the ends of files.
# set nonewlines
## Don't wrap text at all.
# set nowrap
## Set operating directory. nano will not read or write files outside
## this directory and its subdirectories. Also, the current directory
## is changed to here, so any files are inserted from this dir. A blank
## string means the operating directory feature is turned off.
##
# set operatingdir ""
## Preserve the XON and XOFF keys (^Q and ^S).
# set preserve
## The characters treated as closing punctuation when justifying
## paragraphs. They cannot contain blank characters. Only closing
## punctuation, optionally followed by closing brackets, can end
## sentences.
##
# set punct "!.?"
## Do quick statusbar blanking. Statusbar messages will disappear after
## 1 keystroke instead of 26. Note that "const" overrides this.
##
# set quickblank
## The email-quote string, used to justify email-quoted paragraphs.
## This is an extended regular expression if your system supports them,
## otherwise a literal string. Default:
# set quotestr "^([ ]*[#:>\|}])+"
## if you have extended regular expression support, otherwise:
# set quotestr "> "
## Fix Backspace/Delete confusion problem.
# set rebinddelete
## Fix numeric keypad key confusion problem.
# set rebindkeypad
## Do extended regular expression searches by default.
# set regexp
## Make the Home key smarter. When Home is pressed anywhere but at the
## very beginning of non-whitespace characters on a line, the cursor
## will jump to that beginning (either forwards or backwards). If the
## cursor is already at that position, it will jump to the true
## beginning of the line.
# set smarthome
## Use smooth scrolling as the default.
# set smooth
## Use this spelling checker instead of the internal one. This option
## does not properly have a default value.
##
# set speller "aspell -x -c"
## Allow nano to be suspended.
# set suspend
## Use this tab size instead of the default; it must be greater than 0.
# set tabsize 8
## Convert typed tabs to spaces.
# set tabstospaces
## Save automatically on exit, don't prompt.
# set tempfile
## Disallow file modification; why would you want this in an rcfile? ;)
# set view
## The two single-column characters used to display the first characters
## of tabs and spaces. 187 in ISO 8859-1 (0000BB in Unicode) and 183 in
## ISO-8859-1 (0000B7 in Unicode) seem to be good values for these.
# set whitespace " "
## Detect word boundaries more accurately by treating punctuation