Christopher Negus - Linux Bible

Здесь есть возможность читать онлайн «Christopher Negus - Linux Bible» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: unrecognised, на английском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Linux Bible: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Linux Bible»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

The industry favorite Linux guide
Linux Bible, 10th Edition This useful guide assumes a base of little or no Linux knowledge, and takes you step by step through what you need to know to get the job done.
Get Linux up and running quickly Master basic operations and tackle more advanced tasks Get up to date on the recent changes to Linux server system management Bring Linux to the cloud using Openstack and Cloudforms Simplified Linux administration through the Cockpit Web Interface Automated Linux Deployment with Ansible Learn to navigate Linux with Amazon (AWS), Google (GCE), and Microsofr Azure Cloud services 
 is the one resource you need, and provides the hands-on training that gets you on track in a flash.

Linux Bible — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Linux Bible», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

# [ test ] || action # Perform simple single command if test is false dirname="/tmp/testdir" [ -d "$dirname" ] || mkdir "$dirname"

Instead of pipes, you can use two ampersands to test if something is true. In the following example, a command is being tested to see if it includes at least three command-line arguments:

# [ test ] && {action} # Perform simple single action if test is true [ $# -ge 3 ] && echo "There are at least 3 command line arguments."

You can combine the &&and ||operators to make a quick, one-line if…then…else. The following example tests that the directory represented by $dirnamealready exists. If it does, a message says the directory already exists. If it doesn't, the statement creates the directory:

# dirname=mydirectory [ -e $dirname ] && echo $dirname already exists || mkdir $dirname

The case command

Another frequently used construct is the casecommand. Similar to a switchstatement in programming languages, this can take the place of several nested ifstatements. The following is the general form of the casestatement:

case "VAR" in Result1) { body };; Result2) { body };; *) { body } ;; esac

Among other things, you can use the casecommand to help with your backups. The following casestatement tests for the first three letters of the current day ( case 'date +%a' in). Then, depending on the day, a particular backup directory ( BACKUP) and tape drive ( TAPE) are set.

# Our VAR doesn't have to be a variable, # it can be the output of a command as well # Perform action based on day of week case `date +%a` in "Mon") BACKUP=/home/myproject/data0 TAPE=/dev/rft0 # Note the use of the double semi-colon to end each option ;; # Note the use of the "|" to mean "or" "Tue" | "Thu") BACKUP=/home/myproject/data1 TAPE=/dev/rft1 ;; "Wed" | "Fri") BACKUP=/home/myproject/data2 TAPE=/dev/rft2 ;; # Don't do backups on the weekend. *) BACKUP="none" TAPE=/dev/null ;; esac

The asterisk ( *) is used as a catchall, similar to the defaultkeyword in the C programming language. In this example, if none of the other entries are matched on the way down the loop, the asterisk is matched and the value of BACKUPbecomes none. Note the use of esac, or casespelled backwards, to end the casestatement.

The ″for…do″ loop

Loops are used to perform actions over and over again until a condition is met or until all data has been processed. One of the most commonly used loops is the for…doloop. It iterates through a list of values, executing the body of the loop for each element in the list. The syntax and a few examples are presented here:

for VAR in LIST do { body } done

The forloop assigns the values in LIST to VAR one at a time. Then, for each value, the body in braces between doand doneis executed. VARcan be any variable name, and LISTcan be composed of pretty much any list of values or anything that generates a list.

for NUMBER in 0 1 2 3 4 5 6 7 8 9 do echo The number is $NUMBER done for FILE in `/bin/ls` do echo $FILE done

You can also write it this way, which is somewhat cleaner:

for NAME in John Paul Ringo George ; do echo $NAME is my favorite Beatle done

Each element in the LISTis separated from the next by white space. This can cause trouble if you're not careful because some commands, such as ls -l, output multiple fields per line, each separated by white space. The string doneends the forstatement.

If you're a die-hard C programmer, bash allows you to use C syntax to control your loops:

LIMIT=10 # Double parentheses, and no $ on LIMIT even though it's a variable! for ((a=1; a <= LIMIT ; a++)) ; do echo "$a" done

The ″while…do″ and ″until…do″ loops

Two other possible looping constructs are the while…doloop and the until…doloop. The structure of each is presented here:

while condition until condition do do { body } { body } done done

The whilestatement executes while the condition is true. The untilstatement executes until the condition is true—in other words, while the condition is false.

Here is an example of a whileloop that outputs the number 0123456789:

N=0 while [ $N -lt 10 ] ; do echo -n $N let N=$N+1 done

Another way to output the number 0123456789 is to use an untilloop as follows:

N=0 until [ $N -eq 10 ] ; do echo -n $N let N=$N+1 done

Trying some useful text manipulation programs

Bash is great and has lots of built-in commands, but it usually needs some help to do anything really useful. Some of the most common useful programs you'll see used are grep, cut, tr, awk, and sed. As with all of the best UNIX tools, most of these programs are designed to work with standard input and standard output, so you can easily use them with pipes and shell scripts.

The general regular expression parser

The name general regular expression print ( grep) sounds intimidating, but grepis just a way to find patterns in files or text. Think of it as a useful search tool. Gaining expertise with regular expressions is quite a challenge, but after you master it, you can accomplish many useful things with just the simplest forms.

For example, you can display a list of all regular user accounts by using grepto search for all lines that contain the text /homein the /etc/passwdfile as follows:

$ grep /home /etc/passwd

Or you could find all environment variables that begin with HOusing the following command:

$ env | grep ^HO

NOTE

The ^in the preceding code is the actual caret character, ^, not what you'll commonly see for a backspace, ^H. Type ^, H, and O(the uppercase letter) to see what items start with the uppercase characters HO.

To find a list of options to use with the grepcommand, type man grep.

Remove sections of lines of text (cut)

The cutcommand can extract fields from a line of text or from files. It is very useful for parsing system configuration files into easy-to-digest chunks. You can specify the field separator you want to use and the fields you want, or you can break up a line based on bytes.

The following example lists all home directories of users on your system. This grepcommand line pipes a list of regular users from the /etc/passwdfile and displays the sixth field ( -f6) as delimited by a colon ( -d':'). The hyphen at the end tells cutto read from standard input (from the pipe).

$ grep /home /etc/passwd | cut -d':' -f6 - /home/chris /home/joe

Translate or delete characters (tr)

The trcommand is a character-based translator that can be used to replace one character or set of characters with another or to remove a character from a line of text.

The following example translates all uppercase letters to lowercase letters and displays the words mixed upper and lower caseas a result:

$ FOO="Mixed UPpEr aNd LoWeR cAsE" $ echo $FOO | tr [A-Z] [a-z] mixed upper and lower case

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Linux Bible»

Представляем Вашему вниманию похожие книги на «Linux Bible» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Linux Bible»

Обсуждение, отзывы о книге «Linux Bible» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x