Най-добрите примери за Linux

Linux е мощна операционна система, която захранва повечето сървъри и повечето мобилни устройства. В това ръководство ще ви покажем примери за това как да използвате някои от най-мощните му функции. Това включва използването на командния ред на Bash.

12 прости и полезни Linux команди

Командите, изброени тук, са основни и ще ви помогнат да започнете бързо. Но те също са мощни и ще продължат да бъдат полезни, тъй като вашият опит в Linux се разширява.

  1. echoКоманда: Това отвежда текста, който му давате, и го изпраща някъде - обратно на екрана, във файл или в друга команда. Пример:echo "hello!"
  2. catКоманда: За да покажете съдържанието на текстов файл, просто напишете cat myfile.
  3. findКоманда: Прави това, което казва, и е добре в това. Използвайте го, за да намерите файлове по път, размер, дата, собственик и куп други полезни филтри. Пример: find . -type f -mtime -1h # List files in this directory modified in the past hour.
  4. dateКоманда: Просто напишете дата, когато искате да знаете колко е часът. Пример: date "+It's %l:%m%p on %A". Използвайте го в скрипт, за да именувате файлове според текущата дата.
  5. lsКоманда: Какво има в тази директория? Комбинирайте lsс някои полезни флагове, за да покажете и сортирате съдържанието на директорията по дата и размер. Също така ви дава много опции за форматиране на изхода.
  6. pwdКоманда: Къде съм? Linux може да бъде непримирим, особено когато изтриете нещо. Уверете се, че сте наясно, преди да издавате командите си.
  7. mailКоманда: Програмата за поща на Linux не изглежда добре, но може да бъде наистина полезна. Можете да създадете съобщение и да добавите текст, получатели и прикачени файлове в една команда. Пример:echo "We're having a great time." | mail -s "Wish you were here!" -A postcard.png -t [email protected]
  8. cutКоманда: Когато имате низ с разделители в него, използвайте cutза филтриране на определени полета. Пример:echo "this, that, and the other" | cut -d, -f2 # "that"
  9. grepКоманда: За да намерите редове текст, които съдържат определен низ, използвайте grep. Пример:grep 'root' /etc/passwd # root:x:0:0:root:/root:/bin/bash
  10. sedКоманда: Използвайте sedза намиране и промяна на подниз в част от текст. Пример:echo "this, that, and the other" | sed 's/that/those/' # "this, those, and the other"
  11. shutdownКоманда: Използвайте тази команда, за да изключите системата и да изключите захранването. Пример: shutdown -h nowнезабавно изключва системата. shutdown -h +5изключва системата след пет минути.
  12. wgetКоманда: Използвайте wgetза изтегляне на файлове от командния ред.

    Пример: wget //ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

Използвайте тези команди в скриптове и в командния ред. Всички те са много мощни команди и главната страница на Linux има много повече информация за всяка една.

Пример за команди за управление на потребители на Linux

Също така, важни команди, използвани за системни администратори, са следните:

  1. uptime Команда: В Linux командата за ъптайм показва колко дълго системата ви работи и броят на потребителите, които са влезли в момента. Той също така показва средно натоварване за интервали от 1,5 и 15 минути.
  2. wКоманда: Това ще покаже влезлите в момента потребители и техния процес, заедно със средните стойности на натоварване. Също така показва името за вход, tty името, отдалечения хост, времето за влизане, времето на неактивност, JCPU, PCPU, командата и процесите.
  3. usersКоманда: показва влезли в момента потребители. Тази команда няма други параметри освен помощ и версия.
  4. whoКоманда: командата who просто връща потребителско име, дата, час и информация за хоста. Командата who е подобна на командата w. За разлика от командата w, който не отпечатва това, което правят потребителите.
  5. whoamiКоманда: командата whoami отпечатва името на текущия потребител. Можете също да използвате „кой съм аз“, за да покажете текущия потребител. Ако сте влезли като root с помощта на sudo команда, “whoami” връща root като текущ потребител. Използвайте „кой съм аз“, ако искате да знаете точния потребител, влязъл в системата.
  6. ls Команда: ls показва списък с файлове в човешки четим формат.
  7. crontab Команда: избройте заданията за графика за текущия потребител с командата crontab и опцията -l.
  8. lessКоманда: командата по-малко ви позволява бързо да преглеждате файл. Можете да прелиствате нагоре и надолу. Натиснете 'q', за да излезете от прозореца по-малко.
  9. moreКоманда: командата more ви позволява бързо да преглеждате файл и показва подробности в проценти. Можете да прелиствате нагоре и надолу. Натиснете 'q', за да излезете от повече прозореца.
  10. cp Команда: Копирайте файл от неговия източник до местоназначението, като същевременно запазите същия режим.

Как да създадете потребител

Използвайте командата adduserили, за useraddда добавите нов потребител към вашата система.

$ sudo adduser username

Не забравяйте да замените usernameс потребителя, който искате да създадете.

Използвайте passwdкомандата, за да актуализирате паролата на новия потребител.

$ sudo passwd username

Силната парола е силно препоръчителна!

Как да създадете потребител на Sudo

За да създадете sudoпотребител, трябва първо да създадете обикновен потребител, като използвате командата по-горе, след което да добавите този потребител към групата за sudoersизползване на usermodкомандата.

В системите на Debian (Ubuntu / LinuxMint / ElementryOS) членовете на sudoгрупата имат права на sudo.
$ sudo usermod -aG sudo username
На базирани на RHEL syatems (Fedora / CentOs), членовете на wheelгрупата имат sudo привилегии.
$ sudo usermod -aG wheel username

Как да изтриете потребител

За Debian (Ubuntu)
$ sudo deluser username
За RHEL (Fedora / CentOS)
$ sudo userdel username
Създаване на групи и добавяне на потребители
$ sudo groupadd editorial $ sudo usermod -a -G editorial username

Note: All the above commands can be executed without sudo in root mode

To switch to root on ubuntu, run the  su -i command followed by the password of the user logged in. Prompt changes to # instead of $.

On Debian systems (Ubuntu/LinuxMint/ElementryOS), members of the sudo group have sudo privileges.
$ sudo usermod -aG sudo username

How to Create a Group

To create a group, use the command groupadd

$ sudo groupadd groupname

How to delete group

To delete a group, use the command ‘groupdel’

$ sudo groupdel grouname

The Linux Find Command Example

Using the Find Command

The Linux find command is a powerful tool to help you locate files and directories on your server. With a little practice, you can easily track things down based on name, type, size, or date (when they were created or last updated).

Think of find as your eager helper:

You: “I’m looking for something on my server.”

Find: “I can help! What can you tell me about it?”

You: “It was a file, bigger than 2GB, somewhere under my home directory, updated in the last 48 hours.”

Find: “Tada!”

Find is a program, so really you’d have to tell it find ~ -type f -size +2G.

Here are some sample commands using find:

  • find ~ -type d # Show me all the subdirectories inside my home directory
  • find / -type f -name 'todo.txt' # Show me files named 'todo.txt' anywhere under the root directory (i.e. anywhere)

The first parameter always names the directory in which we’ll look. In our examples above, these are ~ (home directory of the current user) and / (root directory of the filesystem).

Other parameters are optional and can be combined in any ways you find useful:

  • The type parameter allows you to constrain the search for files only (f), directories only (d) or symbolic links (l). If you omit the type parameter, you’ll be searching for all of these types.
  • The name parameter lets you specify what you want to find by name, either with a literal string (‘filename.txt’) or using wildcards (‘file?.*’).

man find will show you many more parameters, and is worth reviewing. Find can locate files by name, user, creation date, size and much more. Next time you’re looking for something, find it!

Linux dd Command Example

The “dd” command can be used to create a file of a specific size. This is useful if you would like to test download speeds, or any other tests, and need a file of a specific size.

dd if=/dev/zero of=file_name.txt bs=1024k count=10

This will create a file of 1MB called file_name.txt.

bs is your byte size and count represent the number of blocks. An easy way to look at is 1024K X 10.

Here is an even simpler way to create a 1MB file:

dd if=/dev/zero of=file_name.txt bs=1MB count=1

Example of how to write a Linux Bash Script

Writing a Bash Script

By typing commands on the Linux command line, you can give the server instructions to get some simple tasks done. A shell script is a way to put together a series of instructions to make this easier. Shell scripts become even more powerful when you add logic like if and while to automatically control how they behave as circumstances change.

What’s Bash?

Bash is the name of a command line interpreter, a program that makes sense of the Linux commands you enter at the command prompt, or in your script.

What’s in a Script?

A script is just a file. A basic script is made up of an introductory line that tells the server what to make of it, and one or more instructions to execute. Here’s an example:

#!/bin/bash echo "Hi. I’m your new favorite bash script."

The first line has special meaning, which we’ll discuss below. The second line is just a Linux command, one you could type out on the command line.

What’s a Comment?

Comments are text you add to your script that you intend bash to ignore. Comments start with a pound sign, and are useful for annotating your code so you and other users can understand it.

To add a comment, type the # character, followed by any text that’s helpful you. Bash will ignore the # and everything after it.

Note: the first line of the script is not a comment. This line is always first, always starts with #! and has special meaning to bash.

Here’s the script from before, commented:

#!/bin/bash # Designates the path to the bash program. Must start with '#!' (but isn't a comment). echo "Hi. I’m your new favorite bash script." # 'echo' is a program that sends a string to the screen.

Executing a Script

You can open a text editor, paste that example code and save the file, and you’ve got a script. Scripts are conventionally named ending in ‘.sh,’ so you might save that code as myscript.sh.

The script won’t execute until we do 2 things:

First, make it executable. (We’ll only have to do this once.) Linux relies extensively on file permissions. They determine a lot about how your server behaves. There’s a lot to know about permissions, but for now we only need to know this: you can’t run your script until you give yourself execute permissions. To do that, type:

chmod +x my script.sh

Second, run it. We execute the script from the command line just like any other command like ls or date. The script name is the command, and you need to precede it with a ‘./’ when you call it:

./myscript.sh # Outputs "Hi. I'm your new favorite bash script." (This part is a comment!)

Conditionals

Sometimes you want your script to do something only if something else is true. For example, print a message only if a value is below a certain limit. Here’s an example of using if to do that:

#!/bin/bash count=1 # Create a variable named count and set it to 1 if [[ $count -lt 11 ]]; then # This is an if block (or conditional). Test to see if $count is 10 or less. If it is, execute the instructions inside the block. echo "$count is 10 or less" # This will print, because count = 1. fi # Every if ends with fi

Similarly, we can arrange the script so it executes an instruction only while something is true. We’ll change the code so that the value of the count variable changes:

#!/bin/bash count=1 # Create a variable named count and set it to 1 while [[ $count -lt 11 ]]; do # This is an if block (or conditional). Test to see if $count is 10 or less. If it is, execute the instructions inside the block. echo "$count is 10 or less" # This will print as long as count <= 10. count=$((count+1)) # Increment count done # Every while ends with done

The output of this version of myscript.sh will look like this:

"1 is 10 or less" "2 is 10 or less" "3 is 10 or less" "4 is 10 or less" "5 is 10 or less" "6 is 10 or less" "7 is 10 or less" "8 is 10 or less" "9 is 10 or less" "10 is 10 or less"

Real World Scripts

These examples aren’t terribly useful, but the principles are. Using while, if, and any command you might otherwise type manually, you can create scripts that do valuable work.