- NDG: Linux Essentials
- Общие сведения
- Преимущества
- Учебная программа
- Целевая аудитория
- Сертификация
- Linux Essentials
- Version: 1.6
- First Lesson
- LPI is a non-profit organization.
- Linux Professional Institute Linux Essentials
- Show employers that you have the foundational skills required for your next job or promotion.
- Linux Essentials Version 1.6 Update
- LINUX ESSENTIALS
- Index
NDG: Linux Essentials
Общие сведения
Курс NDG Linux Essentials (Основы Linux от NDG), разработанный компанией NDG (партнером Сетевой академии), знакомит слушателей с основами операционной системы Linux, командной строкой и концепциями программ с открытым исходным кодом. Для прохождения курса используется виртуальная машина Linux, позволяющая студентам экспериментировать с командами этой ОС.
Преимущества
Являясь одним из наиболее успешных проектов с открытым исходным кодом, Linux превратился в самую надежную операционную систему на планете. Он используется как встраиваемая система на практически всех суперкомпьютерах. И на то есть своя причина. Почти каждая должность, связанная с ИТ, требует определенного знания Linux. Полученные знания об операционной системе Linux, средствах программирования с открытым исходным кодом, а также о Всеобъемлющем Интернете (IoE) выгодно дополнят вашу подготовку в области сетевых технологий. Соответствует программе сертификации Linux Essentials Professional Development Профессионального института Linux (LPI).
- Познакомьтесь с основными понятиями, связанными с открытым исходным кодом.
- Узнайте, как используются Linux и командная строка.
- Научитесь использовать виртуальную машину Linux, выполняя практические лабораторные работы.
- Заложите фундамент для дальнейшего более подробного изучения команд Linux.
- Присоединяйтесь к глобальному сообществу Сетевой академии Cisco.
Многие вопросы этого курса более подробно раскрыты в курсе NDG Linux I.Без предварительных требований.
Учебная программа
Курс состоит из 16 лекций и 13 лабораторных работ.
Используется интегрированная виртуальная машина для освоения команд Linux
Разработчик материалов курса
Учебный план разработан компанией NDG , которая является партнером Сетевой академии.
Целевая аудитория
Учащиеся начальные курсов вузов или ссузов, лица окончившие вуз или ссуз, инженерных специальностей, имеющие базовую компьютерную грамотность и опыт использования компьютерных приложений.
Сертификация
Данный курс готовит к сертификации LPI Linux Essentials Professional Development Certificate, которая убедительно продемонстрирует работодателям, что вы знаете Linux.
При успешном завершении курса студент получает ваучер скидку на сертификационный экзамен.
повышении квалификации (72 ак. часа)
Форма обучения:
очное, заочное, обучение с применением дистанционных технологий.
Примерное расписание
Длительность обучения: 1 семестр.
Занятия проводятся один-два раза в неделю с 18.00 до 21.00 с 1 ноября до 20 декабря или с 10 марта до 1 мая. Точное время занятий устанавливается на первом занятии.
Источник
Linux Essentials
Version: 1.6
The Linux Essentials certificate is a great way to show employers that you have the foundational skills required for your next job or promotion. It also serves as an ideal stepping stone to the more advanced LPIC Professional Certification track for Linux Systems Administrators.
First Lesson
1.1 Linux Evolution and Popular Operating Systems (1.1 Lesson 1)
Linux Professional Insitute Inc. All rights reserved. Visit the Learning Materials website: https://learning.lpi.org
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
LPI is a non-profit organization.
© 2021 Linux Professional Institute (LPI) is the global certification standard and career support organization for open source professionals. With more than 200,000 certification holders, it’s the world’s first and largest vendor-neutral Linux and open source certification body. LPI has certified professionals in over 180 countries, delivers exams in multiple languages, and has hundreds of training partners.
Our purpose is to enable economic and creative opportunities for everybody by making open source knowledge and skills certification universally accessible.
Spot a mistake or want to help improve this page? Please let us know.
© 1999–2021 The Linux Professional Institute Inc. All rights reserved.
Источник
Linux Professional Institute Linux Essentials
Show employers that you have the foundational skills required for your next job or promotion.
Linux adoption continues to rise world-wide as individual users, government entities and industries ranging from automotive to space exploration embrace open source technologies. This expansion of open source in enterprise is redefining traditional Information and Communication Technology (ICT) job roles to require more Linux skills. Whether you’re starting your career in open source, or looking for advancement, independently verifying your skill set can help you stand out to hiring managers or your management team.
The Linux Essentials certificate also serves as a great introduction to the more complete and advanced Linux Professional certification track.
Current version: 1.6 (Exam code 010-160)
Objectives: 010-160
Prerequisites: There are no prerequisites for this certification
Requirements: Passing the Linux Essentials 010 exam. The Linux Essentials exam contains 40 questions and must be completed within 60-minutes.
Validity period: Lifetime
Cost: Click here for exam pricing in your country.
Languages for exam available in VUE test centers: English, German, Japanese, Portuguese (Brazilian), Dutch
Languages for exam available online via OnVUE: English, Japanese, Portuguese (Brazilian)
To receive the Linux Essentials certificate the candidate must:
- have an understanding of the Linux and open source industry and knowledge of the most popular open source Applications;
- understand the major components of the Linux operating system, and have the technical proficiency to work on the Linux command line; and
- have a basic understanding of security and administration related topics such as user/group management, working on the command line, and permissions.
Источник
Linux Essentials Version 1.6 Update
Besides LPIC-1, the Linux Essential certificate received an update in October 2018, too. It is a minor update which brings the certificate from version 1.5 to version 1.6 and only includes a few changes. In today’s post we take a look at what’s new.
The exam objective 1.1 covers knowledge about the Linux ecosystem. It already mentions several Linux distributions. In the updated exam, SUSE and Raspbian were added. SUSE is a vendor of SUSE Enterprise Linux, and also offers the free openSUSE distribution. Check out openSUSE on wikipedia to learn more about them.
Raspbian is a Debian GNU/Linux derivative which runs on the Raspberry Pi, which also became relevant for objectives 1.1. You’ve most certainly already heard about the Raspberry Pi, which is a super small cheap computer which serves as an excellent tool for experiments and the development of prototypes. If you’re not familiar with the Raspberry Pi yet, watch ‘What is a Raspberry Pi’ on YouTube.
The Raspberry Pi is a great example how Linux runs on numerous devices. The opposite to the small single-board computer are big data centers, today often called ‘clouds’. Here, Linux plays an important role. If you take a look at the big cloud vendors’ offerings for Infrastructure as a Service (IaaS), they all sell so-called ‘instances’, which are basically virtual machines. When creating a new instance, you can choose between multiple images which contain ready to run Linux distributions, so you can start using your instance right away, without any additional installation.
Objective 1.2 tests knowledge about major open source applications. Here, we added Nextcloud and ownCloud. As Nextcloud is a fork of ownCloud, both projects still have a lot of similarities. In their core, both provide the ability to upload, download and share files. In addition, so-called ‘Apps’ can be installed to add functionality such as contact management, a calendar, todo lists and even kanban boards and an RSS feed reader. Both tools provide a web interface as well as integration for mobile devices. Of course you could get these services from some big cloud providers for free, but with Nextcloud and ownCloud, you can host these services on your own, without ads, with the knowledge of where your data is stored — and with the fun of running your cloud services on your own!
When talking about recent web applications, JavaScript cannot be avoided. Objective 1.2 was updated to include JavaScript. Originally intended to provide small functions which websites can run in a browser, JavaScript became increasingly important. Today, almost every web application uses a JavaScript framework for its user interface. And even on the server-side, NodeJS lets you write your server components in JavaScript, too. Of course, you don’t have to learn JavaScript to pass Linux Essentials, but you should know how it is used for these tasks.
Similarly, objectives 1.3, which covers open source licenses, was extended with the terms ‘Copyleft’ and ‘Permissive’. Again, there is a lot to know about these terms, but Linux Essentials is about the basic idea. Both terms relate to what you can do with software under a free software license. Most licenses fall into one of these categories. The major difference is that copyleft licenses, such as the GPL, tries to keep all changes to the software under that specific license. Therefore, whenever a GPL program is shared with someone else, its source code, including all modifications, must be shared as well. Permissive licenses, on the other hand, are very liberal and allow using the software in any way you like, even if it is in proprietary software. Details of Free software licenses are complicated, but, once again, focus on the general idea.
Finally, we made two small cleanups: the term ‘Open Source Philosophy’ was moved from objective 1.1 to 1.3, and, in objective 3.3, we made it explicit that by ‘Awareness of common text editors’ we refer to vi and nano.
As you see, the vast majority of the exam was not changed. This means that study materials for version 1.5 are still mostly valid; just make sure you also collect some information on the topics mentioned in this post. As always, make sure to work with the exam objectives to make sure you focus on the specific tasks LPI asks you to know.
If you’re taking the Linux Essentials exam soon, good luck.
Источник
LINUX ESSENTIALS
Index
Why UNIX?
- Multitasking
- Remote tasking («real networking»)
- Multiuser
- Access to shell, programming languages, databases, open-source projects
- Better performance, less expensive (free), more up-to-date
- Many more reasons
How to get access
- Installation on local machine (not required. )
- Get account on bioinfo.ucr.edu server:
- email tgirke@citrus.ucr.edu
- requirements for Windows and Mac OS X: http://faculty.ucr.edu/
UNIX variants
- UNIX: Solaris, IRIX, HP-UX, Tru64-UNIX, Free’s, LINUX, .
LINUX distributions
- RedHat, Debian, Mandrake, Caldera, Slackware, SuSE, .
Syntax for this manual
- Remember the UNIX/LINUX command line is case sensitive!
«$» indicates start of command
«#» indicates end of command and start of comment
The text in green or red monospace font represents the actual command. The «$» and «#» symbols are not part of it. The commands in red emphasize essential information for beginners.
» » or «my_. » refers to variables and file names that need to be specified by the user. The arrows » » need to be excluded, because they are generic UNIX redirection functions!
Login from Mac OS-X or LINUX
- open terminal and type:
$ ssh @
$ user name: .
$ password: .
Changing password:
- $ passwd # follow instructions
Orientation
- $ pwd # present working directory
$ ls # content of pwd
$ ll # similar as ls, but provides additional info on files and directories
$ ll -a # includes hidden files (.name) as well
$ ll -R # lists subdirectories recursively
$ ll -t # lists files in chronological order
$ stat # provides all attributes of a file
$ whoami # shows as who you are logged in
$ hostname # shows on which machine you are
Files and directories
- $ mkdir # creates specified directory
$ cd # switches into specified directory
$ cd .. # moves one directory up
$ cd ../../ # moves two directories up (and so on)
$ cd # brings you to highest level of your home directory
$ rmdir # removes empty directory
$ rm # removes file name
$ rm -r # removes directory including its content, but asks for confirmation, ‘f’ argument turns confirmation off
$ mv # renames directories or files
$ mv
# moves file/directory as specified in path
$ cp
# copy file/directory as specified in path (-r to include content in directories)
Copy and paste
- Depends on local environment. Usually one of the following methods works:
Copy: Ctrl&Shift&c or right/middle mouse click
Paste: Ctrl&Shift&p or right/middle mouse click
Handy shortcuts
- $ . # refers to pwd
$
/ # refers to user’s home directory
$ history # shows all commands you have used recently
$ ! # starts an old command by providing its ID number
$ up(down)_key # scrolls through command history
$ TAB # completes path/file_name
$ SHIFT&TAB # completes command
$ Ctrl a # cursor to beginning of command line
$ Ctrl e # cursor to end of command line
$ Ctrl d # delete character under cursor
$ Ctrl k # delete line from cursor, content goes into kill buffer
$ Ctrl y # paste content from Ctrl k
- $ man # general help
$ man wc # manual on program ‘word count’ wc
$ wc —help # short help on wc
$ info wc # more detailed information system (GNU)
$ apropos wc # retrieves pages where wc appears
Online help: SuperMan Pages, Linux Documentation Project (LDP)
Finding files, directories and applications
- $ find -name «*pattern*» # searches for *pattern* in and below current directory
$ find /usr/local -name «*blast*» # finds file names *blast* in specfied directory
$ find /usr/local -iname «*blast*» # same as above, but case insensitive
additional useful arguments: -user , -group , -ctime
$ find
-type f -mtime -2 # finds all files you have modified in the last two days
$ locate
# finds files and dirs that are written into update file
$ which # location of application
$ whereis # searches for executeables in set of directories
$ dpkg -l | grep mypattern # find Debian packages and refine search with grep pattern
Finding things in files
- $ grep pattern file # provides lines in ‘file’ where pattern ‘appears’, if pattern is shell function use single-quotes: ‘>’
$ grep -H pattern # -H prints out file name in front of pattern
$ grep ‘pattern’ file | wc # pipes lines with pattern into word count wc (see chapter 8); wc arguments: -c: show only bytes, -w: show only words, -l: show only lines; help on regular expressions: $ man 7 regex or man perlre
$ find /home/my_dir -name ‘*.txt’ | xargs grep -c ^.* # counts line numbers on many files and records each count along with individual file name; find and xargs are used to circumvent the Linux wildcard limit to apply this function on thousands of files.
How does it work
- $ ls -al # shows something like this for each file/dir: drwxrwxrwx
- d: directory
rwx: read write execute
first triplet: user permissions (u)
second triplet: group permissions (g)
third triplet: world permissions (o)
To assign write and execute permissions to user and group:
- $ chmod ug+rx my_file
To remove all permissions from all three user groups:
- $ chmod ugo-rwx my_file
- ‘+’ causes the permissions selected to be added
‘-‘ causes them to be removed
‘=’ causes them to be the only permissions that the file has.
Example for number system:
$ chmod +rx public_html/ or $ chmod 755 public_html/
Change ownership
- $ chown # changes user ownership
$ chgrp # changes group ownership
$ chown : # changes user & group ownership
- $ df # disk space
$ free # memory info
$ uname -a # shows tech info about machine
$ bc # command-line calculator (to exit type ‘quit’)
$ wget ftp://ftp.ncbi.nih. # file download from web
$ /sbin/ifconfig # give IP and other network info
$ ln -s original_filename new_filename # creates symbolic link to file or directory
$ du -sh # displays disk space usage of current directory
$ du -sh * # displays disk space usage of individual files/directories
$ du -s * | sort -nr # shows disk space used by different directories/files sorted by size
- $ who # shows who is logged into system
$ w # shows which users are logged into system and what they are doing
$ ps # shows processes running by user
$ ps -e # shows all processes on system; try also ‘-a’ and ‘-x’ arguments
$ ps aux | grep # shows all processes of one user
$ top # view top consumers of memory and CPU
$ mtop # displays multicomputer/CPU processes
$ Ctrl z bg or fg # suspends a process to bring into back- or foreground
$ Ctrl c # stops an initiated process
$ kill
# Kills specified job; if this doesn’t do it, add -9 as argument. Also, type then .
$ renice -n
# change priority value, which range from 1-19, the higher the value the lower the priority, default is 10
- $ less # more versatile text viewer than ‘more’, ‘G’ moves to end of text, ‘g’ to beginning, ‘/
‘ find backwards
$ more # views text, use space bar to browse, hit ‘q’ to exit
$ cat # concatenates files and prints content to standard output
VI and VIM
- Non-graphical (terminal-based) editor. Vi is guaranteed to be available on any system. Vim is the improved version of vi.
EMACS
- Window-based editor. You still need to know keystroke commands to use it. Installed on all Linux distributions and on most other Unix systems.
XEMACS
- More sophisticated version of emacs, but usually not installed by default. All common commands are available from menus. Very powerful editor, with built-in syntax checking, Web-browsing, news-reading, manual-page browsing, etc.
PICO
- Simple terminal-based editor available on most versions of Unix. Uses keystroke commands, but they are listed in logical fashion at bottom of screen.
VIM MANUAL (essentials marked in red ) BASICS
- $ vim my_file_name # open/create file with vim
$ i # INSERT MODE
$ ESC # NORMAL (NON-EDITING) MODE
$ : # commands start with ‘:’
$ :w # save command; if you are in editing mode you have to hit ESC first!!
$ :q # quit file, don’t save
$ :q! # exits WITHOUT saving any changes you have made
$ :wq # save and quit
$ R # replace MODE
$ r # replace only one character under cursor
$ q: # history of commands (from NORMAL MODE!), to reexecute one of them, select and hit enter!
$ :w new_filename # saves into new file
$ :#,#w new_filename # saves specific lines (#,#) to new file
$ :# go to specified line number
HELP
- $ Useful list of vim commands: Vim Commands Cheat Sheet, VimCard, Vim Basics
$ vimtutor # open vim tutorial from shell
$ :help # opens help within vim, hit :q to get back to your file
$ :help # opens help on specified topic
$ |help_topic| CTRL-] # when you are in help this command opens help topic specified between |. |, CTRL-t brings you back to last topic
$ :help CTRL-D # gives list of help topics that contain key word
$ : # like in shell you get recent commands.
MOVING AROUND IN FILE
- $ $ # moves cursor to end of line
$ A # same as $, but switches to insert mode
$ 0 (zero) # moves cursor to beginning of line
$ CTRL-g # shows at status line filename and the line you are on
$ SHIFT-G # brings you to bottom of file, type line number (isn’t displayed) then SHIFT-G # brings you to specified line#
DISPLAY
- WRAPPING AND LINE NUMBERS
$ :set nowrap # no word wrapping, :set wrap # back to wrapping
$ :set number # shows line numbers, :set nonumber # back to no-number mode
WORKING WITH MANY FILES & SPLITTING WINDOWS
- $ vim *.txt # opens many files at once; ‘:n’ switches between files
$ :wall or :qall # write or quit all open files
$ vim -o *.txt # opens many files at once and displays them with horizontal split, ‘-O’ does vertical split
$ :args *.txt # places all the relevant files in the argument list
$ :all # splits all files in the argument list (buffer) horizontally
$ CTRL-w # switch between windows
$ :split # shows same file in two windows
$ :split # opens second file in new window
$ :vsplit # splits windows vertically, very useful for tables, «:set scrollbind» let’s you scroll all open windows symultaneously
$ :close # closes current window
$ :only # closes all windows except current one
SPELL CHECKING & Dictionary
- $ aspell -c # shell command
$ aspell -l # shell command
$ :! dict # meaning of word
$ :! wn ‘word’ -over # synonyms of word
PRINTING FILE
- $ :ha # prints entire file
$ :#,#ha # prints specified lines: #,#
MERGING/INSERTING FILES
- $ :r # inserts content of specified file after cursor
UNDO/REDO
- $ u # undo last command
$ U # undo all changes on current line
$ CTRL-R # redo one change which was undone
DELETION/CUT (switch to NORMAL mode)
- $ x # deletes what is under cursor
$ dw # deletes from curser to end of word including the space
$ de # deletes from curser to end of word NOT including the space
$ cw # deletes rest of word and lets you then insert, hit ESC to continue with NORMAL mode
$ c$ # deletes rest of line and lets you then insert, hit ESC to continue with with NORMAL mode
$ d$ # deletes from cursor to the end of the line
$ dd # deletes entire line
$ 2dd # deletes next two lines, continues: 3dd, 4dd and so on.
PUT (PASTE)
- $ p # uses what was deleted/cut and pastes it behind cursor
COPY & PASTE
- $ yy # copies line, for copying several lines do 2yy, 3yy and so on
$ p # pastes clipboard behind cursor
SEARCH IN FILE (most regular expressions work)
- $ /my_pattern # searches for my_pattern downwards, type n for next match
$ ?my_pattern # seraches for my_pattern upwards, type n for next match
$ :set ic # switches to ignore case search (case insensitive)
$ :set hls # switches to highlight search (highlights search hits)
REPLACE WITH REGULAR EXPRESSIONS (great intro: A Tao of Regular Expressions)
- $ :s/old_pat/new_pat/ # replaces first occurence in a line
$ :s/old_pat/new_pat/g # replaces all occurence in a line
$ :s/old_pat/new_pat/gc # add ‘c’ to ask for confirmation
$ :#,#s/old_pat/new_pat/g # replaces all occurence between line numbers: #,#
$ :%s/old_pat/new_pat/g # replaces all occurence in file
$ :%s/\(pattern1\)\(pattern2\)/\1test\2/g # regular expression to insert, you need here ‘\’ in front of parentheses ( :%s/\(pattern.*\)/\1 my_tag/g # appends something to line containing pattern ( :%s/\(pattern\)\(.*\)/\1/g # removes everything in lines after pattern
$ :%s/\(At\dg\d\d\d\d\d\.\d\)\(.*\)/\1\t\2/g # inserts tabs between At1g12345.1 and Description
$ :%s/\n/new_pattern/g #Replaces return signs
$ :%s/pattern/\r/g #Replace pattern with return signs!!
$ :%s/\(\n\)/\1\1/g # insert additional return signs
$ :%s/\(^At\dg\d\d\d\d\d.\d\t.\<->\t.\<->\t.\<->\t.\<->\t\).\<->\t/\1/g # replaces content between 5th and 6th tab (5th column), ‘<->‘ turns off ‘greedy’ behavior
$ :#,#s/\( \ <->\|\.\|\n\)/\1/g # performs simple word count in specified range of text
$ :%s/\(E\<6,\>\)/ \1 /g # highlight pattern in html colors, here highlighting of >= 6 occurences of Es
$ :%s/\([A-Z]\)/\l\1/g # change uppercase to lowercase, ‘%s/\([A-Z]\)/\u\1/g’ does the opposite
$ :g/my_pattern/ s/\([A-Z]\)/\l\1/g | copy $ # uses ‘global’ command to apply replace function only on those lines that match a certain pattern. The ‘copy $’ command after the pipe ‘|’ prints all matching lines at the end of the file.
$ :args *.txt | all | argdo %s/\old_pat/new_pat/ge | update # Command ‘args’ places all relevant files in the argument list (buffer); ‘all’ displays each file in separate split window; command ‘argdo’ applies replacement to all files in argument list (buffer); flag ‘e’ is necessary to avoid stop at error messages for files with no matches; command ‘update’ saves all changes to files that were updated.
HTML EDITING
- -Convert text file to html format:
$ :runtime! syntax/2html.vim # run this command with open file in Vim
SHELL COMMAND IN VIM
- $ :! # executes any shell command, hit to return
$ :sh # switches window to shell, ‘exit’ switches back to vim
USING VIM AS TABLE EDITOR
- $ v # starts visual mode for selecting characters
$ V # starts visual mode for selecting lines
$ CTRL-V # starts visual mode for selecting blocks (use CTRL-q in gVim under Windows). This allows column-wise selections and operations like inserting and deleting columns. To restrict substitude commands to a column, one can select it and switch to the command-line by typing ‘:’. After this the substitution sytax for a selected block looks like this: ‘ s///.
$ :set scrollbind # starts simultaneous scrolling of ‘vsplitted’ files. To set to horizontal binding of files, use command ‘:set scrollopt=hor’ (after first one). Run all these commands before the ‘:split’ command.
$ :AlignCtrl I= \t then :%Align # This allows to align tables by column separators (here ‘\t’) when the Align utility from Charles Campbell’s is installed.
To sort table rows by selected lines or block, perform the visual select and then hit F3 key. The rest is interactive. To enable this function one has to include in the .vimrc file from Gerald Lai the Vim sort script.
MODIFY VIM SETTINGS (in file .vimrc)
- — see last chapter of vimtutor (start from shell)
— useful .vimrc sample
— when vim starts to respond very slowly then one may need to delete the .viminf* files in home directory
When you log into UNIX/LINUX the system starts a program called SHELL. It provides you with a working environment and interface to the operating system. Usually there are many different shell programs installed.
- $ finger # shows which shell you are using
$ chsh -l # gives list of shell programs available on your system (does not work on all UNIX variants)
$ # switches to different shell
Useful shell commands
- $ cat > # concatenate files in output file ‘cat.out’
$ paste >
# merges lines of files and separates them by tabs (useful for tables)
$ cmp # tells you whether two files are identical
$ diff # finds differences between two files
$ head — # prints first lines of a file
$ tail — # prints last lines of a file
$ split -l # splits lines of file into many smaller ones
$ csplit -f out fasta_batch «%^>%» «/^>/» «<*>« # splits fasta batch file into many files at ‘>’
$ sort # sorts single file, many files and can merge (-m) them, -b ignores leading white space, .
$ sort -k 2,2 -k 3,3n input_file > output_file # sorts in table column 2 alphabetically and column 3 numerically, ‘-k’ for column, ‘-n’ for numeric
$ sort input_file | uniq > output_file # uniq command removes duplicates and creates file/table with unique lines/fields
$ join -1 1 -2 1
$ sort table1 > table1a; sort table2 > table2a; join -a 1 -t «`echo -e ‘\t’`» table1a table2a > table3 # ‘-a