Author:GoalKicker.com
for learning linux . for linux users. enjoy
Tags
Support Statistics
¥.00 ·
0times
Text Preview (First 20 pages)
Registered users can read the full content for free
Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.
Page
1
Linux Notes for ProfessionalsLinux® Notes for Professionals GoalKicker.com Free Programming Books Disclaimer This is an unocial free book created for educational purposes and is not aliated with ocial Linux® group(s) or company(s). All trademarks and registered trademarks are the property of their respective owners 50+ pages of professional hints and tricks
Page
2
Contents About 1 ................................................................................................................................................................................... Chapter 1: Getting started with GNU/Linux 2 ..................................................................................................... Section 1.1: Useful shortcuts 2 .......................................................................................................................................... Section 1.2: File Management Commands 3 .................................................................................................................. Section 1.3: Hello World 5 ................................................................................................................................................. Section 1.4: Basic Linux Utilities 5 .................................................................................................................................... Section 1.5: Searching for files by patterns in name/contents 6 ................................................................................. Section 1.6: File Manipulation 7 ........................................................................................................................................ Section 1.7: File/Directory details 8 ................................................................................................................................. Chapter 2: Detecting Linux distribution name and version 11 .................................................................. Section 2.1: Detect what debian-based distribution you are working in 11 ............................................................... Section 2.2: Detect what systemd-based distribution you are using 11 .................................................................... Section 2.3: Detect what RHEL / CentOS / Fedora distribution you are working in 12 ............................................ Section 2.4: Uname - Print information about the current system 13 ........................................................................ Section 2.5: Detect basic information about your distro 13 ........................................................................................ Section 2.6: Using GNU coreutils 13 ................................................................................................................................ Section 2.7: Find your linux os (both debian & rpm) name and release number 14 ................................................ Chapter 3: Getting information on a running Linux kernel 15 ................................................................... Section 3.1: Getting details of Linux kernel 15 ................................................................................................................ Chapter 4: Shell 16 ........................................................................................................................................................... Section 4.1: Changing default shell 16 ............................................................................................................................ Section 4.2: Basic Shell Utilities 17 .................................................................................................................................. Section 4.3: Create Your Own Command Alias 18 ........................................................................................................ Section 4.4: Locate a file on your system 18 ................................................................................................................. Chapter 5: Check Disk Space 19 ................................................................................................................................ Section 5.1: Investigate Directories For Disk Usage 19 ................................................................................................. Section 5.2: Checking Disk Space 21 .............................................................................................................................. Chapter 6: Getting System Information 23 ......................................................................................................... Section 6.1: Statistics about CPU, Memory, Network and Disk (I/O operations) 23 .................................................. Section 6.2: Using tools like lscpu and lshw 23 .............................................................................................................. Section 6.3: List Hardware 24 .......................................................................................................................................... Section 6.4: Find CPU model/speed information 25 ..................................................................................................... Section 6.5: Process monitoring and information gathering 26 .................................................................................. Chapter 7: ls command 28 ........................................................................................................................................... Section 7.1: Options for ls command 28 ......................................................................................................................... Section 7.2: ls command with most used options 28 .................................................................................................... Chapter 8: File Compression with 'tar' command 30 ...................................................................................... Section 8.1: Compress a folder 30 ................................................................................................................................... Section 8.2: Extract a folder from an archive 30 .......................................................................................................... Section 8.3: List contents of an archive 30 .................................................................................................................... Section 8.4: List archive content 31 ................................................................................................................................ Section 8.5: Compress and exclude one or multiple folder 31 .................................................................................... Section 8.6: Strip leading components 31 ...................................................................................................................... Chapter 9: Services 32 .................................................................................................................................................... Section 9.1: List running service on Ubuntu 32 .............................................................................................................. Section 9.2: Systemd service management 32 .............................................................................................................
Page
3
Chapter 10: Managing Services 33 ........................................................................................................................... Section 10.1: Diagnosing a problem with a service 33 .................................................................................................. Section 10.2: Starting and Stopping Services 33 ........................................................................................................... Section 10.3: Getting the status of a service 34 ............................................................................................................. Chapter 11: Modifying Users 35 .................................................................................................................................. Section 11.1: Setting your own password 35 ................................................................................................................... Section 11.2: Setting another user's password 35 .......................................................................................................... Section 11.3: Adding a user 35 .......................................................................................................................................... Section 11.4: Removing a user 35 .................................................................................................................................... Section 11.5: Removing a user and its home folder 35 ................................................................................................. Section 11.6: Listing groups the current user is in 35 ..................................................................................................... Section 11.7: Listing groups a user is in 35 ...................................................................................................................... Chapter 12: LAMP Stack 36 ........................................................................................................................................... Section 12.1: Installing LAMP on Arch Linux 36 ............................................................................................................... Section 12.2: Installing LAMP on Ubuntu 37 ................................................................................................................... Section 12.3: Installing LAMP stack on CentoOS 38 ....................................................................................................... Chapter 13: tee command 40 ...................................................................................................................................... Section 13.1: Write output to stdout, and also to a file 40 ............................................................................................. Section 13.2: Write output from the middle of a pipe chain to a file and pass it back to the pipe 40 ..................... Section 13.3: write the output to multiple files 40 .......................................................................................................... Section 13.4: Instruct tee command to append to the file 40 ....................................................................................... Chapter 14: Secure Shell (SSH) 42 ............................................................................................................................ Section 14.1: Connecting to a remote server 42 ............................................................................................................. Section 14.2: Installing OpenSSH suite 42 ....................................................................................................................... Section 14.3: Configuring an SSH server to accept connections 43 ............................................................................ Section 14.4: Passwordless connection (using a key pair) 43 ...................................................................................... Section 14.5: Generate public and private key 43 ......................................................................................................... Section 14.6: Disable ssh service 43 ................................................................................................................................ Chapter 15: SCP 45 ............................................................................................................................................................ Section 15.1: Secure Copy 45 ............................................................................................................................................ Section 15.2: Basic Usage 45 ........................................................................................................................................... Chapter 16: GnuPG (GPG) 46 ........................................................................................................................................ Section 16.1: Exporting your public key 46 ...................................................................................................................... Section 16.2: Create and use a GnuPG key quickly 46 .................................................................................................. Chapter 17: Network Configuration 47 .................................................................................................................. Section 17.1: Local DNS resolution 47 .............................................................................................................................. Section 17.2: Configure DNS servers for domain name resolution 47 ........................................................................ Section 17.3: See and manipulate routes 47 .................................................................................................................. Section 17.4: Configure a hostname for some other system on your network 48 .................................................... Section 17.5: Interface details 49 ..................................................................................................................................... Section 17.6: Adding IP to an interface 50 ...................................................................................................................... Chapter 18: Midnight Commander 52 ..................................................................................................................... Section 18.1: Midnight Commander function keys in browsing mode 52 .................................................................... Section 18.2: Midnight Commander function keys in file editing mode 52 ................................................................. Chapter 19: Change root (chroot) 54 ...................................................................................................................... Section 19.1: Requirements 54 ......................................................................................................................................... Section 19.2: Manually changing root in a directory 54 ............................................................................................... Section 19.3: Reasons to use chroot 55 .......................................................................................................................... Chapter 20: Package Managers 56 ..........................................................................................................................
Page
4
Section 20.1: How to update packages with the apt package manager 56 .............................................................. Section 20.2: How to install a package with the pacman package manager 56 ...................................................... Section 20.3: How to update packages with the pacman package manager 56 ..................................................... Section 20.4: How to update packages with yum 57 ................................................................................................... Chapter 21: Compiling the Linux kernel 58 ........................................................................................................... Section 21.1: Compilation of Linux Kernel on Ubuntu 58 ............................................................................................... Credits 59 .............................................................................................................................................................................. You may also like 61 ........................................................................................................................................................
Page
5
GoalKicker.com – Linux® Notes for Professionals 1 About Please feel free to share this PDF with anyone for free, latest version of this book can be downloaded from: https://goalkicker.com/LinuxBook This Linux® Notes for Professionals book is compiled from Stack Overflow Documentation, the content is written by the beautiful people at Stack Overflow. Text content is released under Creative Commons BY-SA, see credits at the end of this book whom contributed to the various chapters. Images may be copyright of their respective owners unless otherwise specified This is an unofficial free book created for educational purposes and is not affiliated with official Linux® group(s) or company(s) nor Stack Overflow. All trademarks and registered trademarks are the property of their respective company owners The information presented in this book is not guaranteed to be correct nor accurate, use at your own risk Please send feedback and corrections to web@petercv.com
Page
6
GoalKicker.com – Linux® Notes for Professionals 2 Chapter 1: Getting started with GNU/Linux Section 1.1: Useful shortcuts Using The Terminal The examples in this document assume that you are using a POSIX-compliant (such as bash, sh, zsh, ksh) shell. Large portions of GNU/Linux functionality are achieved using the terminal. Most distributions of Linux include terminal emulators that allow users to interact with a shell from their desktop environment. A shell is a command- line interpreter that executes user inputted commands. Bash (Bourne Again SHell) is a common default shell among many Linux distributions and is the default shell for macOS. These shortcuts will work if you are using Bash with the emacs keybindings (set by default): Open terminal Ctrl + Alt + T or Super + T Cursor movement Ctrl + A Go to the beginning of the line you are currently typing on. Ctrl + E Go to the end of the line you are currently typing on. Ctrl + XX Move between the beginning of the line and the current position of the cursor. Alt + F Move cursor forward one word on the current line. Alt + B Move cursor backward one word on the current line. Ctrl + F Move cursor forward one character on the current line. Ctrl + B Move cursor backward one character on the current line. Text manipulation Ctrl + U Cut the line from the current position to the beginning of the line, adding it to the clipboard. If you are at the end of the line, cut the entire line. Ctrl + K Cut the line from the current position to the end of the line, adding it to the clipboard. If you are at the beginning of the line, cut the entire line. Ctrl + W Delete the word before the cursor, adding it to the clipboard. Ctrl + Y Paste the last thing from the clipboard that you cut recently (undo the last delete at the current cursor position). Alt + T Swap the last two words before the cursor. Alt + L Make lowercase from cursor to end of word. Alt + U Make uppercase from cursor to end of word. Alt + C Capitalize to end of word starting at cursor (whole word if cursor is at the beginning of word). Alt + D Delete to end of word starting at cursor (whole word if cursor is at the beginning of word). Alt + . Prints the last word written in previous command. Ctrl + T Swap the last two characters before the cursor. History access Ctrl + R Lets you search through previously used commands. Ctrl + G Leave history searching mode without running a command. Ctrl + J Lets you copy current matched command to command line without running it, allowing you to
Page
7
GoalKicker.com – Linux® Notes for Professionals 3 make modifications before running the command. Alt + R Revert any changes to a command you’ve pulled from your history, if you’ve edited it. Ctrl + P Shows last executed command, i.e. walk back through the command history (Similar to up arrow). Ctrl + N Shows next executed command, i.e. walk forward through the command history (Similar to down arrow). Terminal control Ctrl + L Clears the screen, similar to the clear command. Ctrl + S Stop all output to the screen. This is useful when running commands with lots of long output. But this doesn't stop the running command. Ctrl + Q Resume output to the screen after stopping it with Ctrl+S. Ctrl + C End currently running process and return the prompt. Ctrl + D Log out of the current shell session, similar to the exit or logout command. In some commands, acts as End of File signal to indicate that a file end has been reached. Ctrl + Z Suspends (pause) currently running foreground process, which returns shell prompt. You can then use bg command allowing that process to run in the background. To again bring that process to foreground, use fg command. To view all background processes, use jobs command. Tab Auto-complete files and directory names. Tab Tab Shows all possibilities, when typed characters doesn't uniquely match to a file or directory name. Special characters Ctrl + H Same as Backspace. Ctrl + J Same as Return (historically Line Feed). Ctrl + M Same as Return (historically Carriage Return). Ctrl + I Same as Tab. Ctrl + G Bell Character. Ctrl + @ Null Character. Esc Deadkey equivalent to the Alt modifier. Close Terminal Ctrl + Shift + W To close terminal tab. Ctrl + Shift + Q To close entire terminal. Alternatively, you can switch to the vi keybindings in bash using set -o vi. Use set -o emacs to switch back to the emacs keybindings. Section 1.2: File Management Commands Linux uses some conventions for present and parent directories. This can be a little confusing for beginners. Whenever you are in a terminal in Linux, you will be in what is called the current working directory. Often your command prompt will display either the full working directory, or just the last part of that directory. Your prompt could look like one of the following: user@host ~/somedir $ user@host somedir $ user@host /home/user/somedir $ which says that your current working directory is /home/user/somedir.
Page
8
GoalKicker.com – Linux® Notes for Professionals 4 In Linux .. represents the parent directory and . represents the current directory. Therefore, if the current directory is /home/user/somedir, then cd ../somedir will not change the working directory. The table below lists some of the most used file management commands Directory navigation Command Utility pwd Get the full path of the current working directory. cd - Navigate to the last directory you were working in. cd ~ or just cd Navigate to the current user's home directory. cd .. Go to the parent directory of current directory (mind the space between cd and ..) Listing files inside a directory Command Utility ls -l List the files and directories in the current directory in long (table) format (It is recommended to use -l with ls for better readability). ls -ld dir-name List information about the directory dir-name instead of its contents. ls -a List all the files including the hidden ones (File names starting with a . are hidden files in Linux). ls -F Appends a symbol at the end of a file name to indicate its type (* means executable, / means directory, @ means symbolic link, = means socket, | means named pipe, > means door). ls -lt List the files sorted by last modified time with most recently modified files showing at the top (remember -l option provides the long format which has better readability). ls -lh List the file sizes in human readable format. ls -lR Shows all subdirectories recursively. tree Will generate a tree representation of the file system starting from the current directory. File/directory create, copy and remove Command Utility cp -p source destination Will copy the file from source to destination. -p stands for preservation. It preserves the original attributes of file while copying like file owner, timestamp, group, permissions etc. cp -R source_dir destination_dir Will copy source directory to specified destination recursively. mv file1 file2 In Linux there is no rename command as such. Hence mv moves/renames the file1 to file2. rm -i filename Asks you before every file removal for confirmation. IF YOU ARE A NEW USER TO LINUX COMMAND LINE, YOU SHOULD ALWAYS USE rm -i. You can specify multiple files. rm -R dir-name Will remove the directory dir-name recursively. rm -rf dir-name Will remove the directory dir recursively, ignoring non-existent files and will never prompt for anything. BE CAREFUL USING THIS COMMAND! You can specify multiple directories. rmdir dir-name Will remove the directory dir-name, if it's empty. This command can only remove empty directories. mkdir dir-name Create a directory dir-name. mkdir -p dir-name/dir-name Create a directory hierarchy. Create parent directories as needed, if they don't exist. You can specify multiple directories. touch filename Create a file filename, if it doesn't exist, otherwise change the timestamp of the file to current time. File/directory permissions and groups Command Utility
Page
9
GoalKicker.com – Linux® Notes for Professionals 5 chmod <specification> filename Change the file permissions. Specifications = u user, g group, o other, + add permission, - remove, r read, w write,x execute. chmod -R <specification> dir- name Change the permissions of a directory recursively. To change permission of a directory and everything within that directory, use this command. chmod go=+r myfile Add read permission for the owner and the group. chmod a +rwx myfile Allow all users to read, write or execute myfile. chmod go -r myfile Remove read permission from the group and others. chown owner1 filename Change ownership of a file to user owner1. chgrp grp_owner filename Change primary group ownership of file filename to group grp_owner. chgrp -R grp_owner dir-name Change primary group ownership of directory dir-name to group grp_owner recursively. To change group ownership of a directory and everything within that directory, use this command. Section 1.3: Hello World Type the following code into your terminal, then press Enter : echo "Hello World" This will produce the following output: Hello World Section 1.4: Basic Linux Utilities Linux has a command for almost any tasks and most of them are intuitive and easily interpreted. Getting Help in Linux Command Usability man <name> Read the manual page of <name>. man <section> <name> Read the manual page of <name>, related to the given section. man -k <editor> Output all the software whose man pages contain <editor> keyword. man -K <keyword> Outputs all man pages containing <keyword> within them. apropos <editor> Output all the applications whose one line description matches the word editor. When not able to recall the name of the application, use this command. help In Bash shell, this will display the list of all available bash commands. help <name> In Bash shell, this will display the info about the <name> bash command. info <name> View all the information about <name>. dpkg -l Output a list of all installed packages on a Debian-based system. dpkg -L packageName Will list out the files installed and path details for a given package on Debian. dpkg -l | grep -i <edit> Return all .deb installed packages with <edit> irrespective of cases. less /var/lib/dpkg/available Return descriptions of all available packages. whatis vim List a one-line description of vim. <command-name> --help Display usage information about the <tool-name>. Sometimes command -h also works, but not for all commands. User identification and who is who in Linux world Command Usability hostname Display hostname of the system.
Page
10
GoalKicker.com – Linux® Notes for Professionals 6 hostname -f Displays Fully Qualified Domain Name (FQDN) of the system. passwd Change password of current user. whoami Username of the users logged in at the terminal. who List of all the users currently logged in as a user. w Display current system status, time, duration, list of users currently logged in on system and other user information. last Who recently used the system. last root When was the last time root logged in as user. lastb Shows all bad login attempts into the system. chmod Changing permissions - read,write,execute of a file or directory. Process related information Command Usability top List all processes sorted by their current system resource usage. Displays a continually updated display of processes (By default 3 seconds). Use q key to exit top. ps List processes currently running on current shell session ps -u root List all of the processes and commands root is running ps aux List all the processes by all users on the current system Section 1.5: Searching for files by patterns in name/contents A common and task of someone using the Linux Command Line (shell) is to search for files/directories with a certain name or containing certain text. There are 2 commands you should familiarise yourself with in order to accomplish this: Find files by name find /var/www -name '*.css' This will print out the full path/filename to all files under /var/www that end in .css. Example output: /var/www/html/text-cursor.css /var/www/html/style.css For more info: man find Find files containing text grep font /var/www/html/style.css This will print all lines containing the pattern font in the specified file. Example output: font-weight: bold; font-family: monospace; Another example: grep font /var/www/html/
Page
11
GoalKicker.com – Linux® Notes for Professionals 7 This doesn't work as you'd hoped. You get: grep: /var/www/html/: Is a directory You need to grep recursively to make it work, using the -R option: grep -R font /var/www/html/ Hey nice! Check out the output of this one: /var/www/html/admin/index.php: echo '<font color=red><b>Error: no dice</b></font><br/>'; /var/www/html/admin/index.php: echo '<font color=red><b>Error: try again</b></font><br/>'; /var/www/html/style.css: font-weight: bold; /var/www/html/style.css: font-family: monospace; Notice that when grep is matching multiple files, it prefixes the matched lines with the filenames. You can use the - h option to get rid of that, if you want. For more info: man grep Section 1.6: File Manipulation Files and directories (another name for folders) are at the heart of Linux, so being able to create, view, move, and delete them from the command line is very important and quite powerful. These file manipulation commands allow you to perform the same tasks that a graphical file explorer would perform. Create an empty text file called myFile: touch myFile Rename myFile to myFirstFile: mv myFile myFirstFile View the contents of a file: cat myFirstFile View the content of a file with pager (one screenful at a time): less myFirstFile View the first several lines of a file: head myFirstFile View the last several lines of a file: tail myFirstFile Edit a file:
Page
12
GoalKicker.com – Linux® Notes for Professionals 8 vi myFirstFile See what files are in your current working directory: ls Create an empty directory called myFirstDirectory: mkdir myFirstDirectory Create multi path directory: (creates two directories, src and myFirstDirectory) mkdir -p src/myFirstDirectory Move the file into the directory: mv myFirstFile myFirstDirectory/ You can also rename the file: user@linux-computer:~$ mv myFirstFile secondFileName Change the current working directory to myFirstDirectory: cd myFirstDirectory Delete a file: rm myFirstFile Move into the parent directory (which is represented as ..): cd .. Delete an empty directory: rmdir myFirstDirectory Delete a non-empty directory (i.e. contains files and/or other directories): rm -rf myFirstDirectory Make note that when deleting directories, that you delete ./ not / that will wipe your whole filesystem. Section 1.7: File/Directory details The ls command has several options that can be used together to show more information. Details/Rights The l option shows the file permissions, size, and last modified date. So if the root directory contained a dir called test and a file someFile the command:
Page
13
GoalKicker.com – Linux® Notes for Professionals 9 user@linux-computer:~$ ls -l Would output something like -rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt drwxrwxrwx 2 user users 4096 Jul 21 07:18 test The permissions are in format of drwxrwxrwx. The first character represents the file type d if it's a directory - otherwise. The next three rwx are the permissions the user has over the file, the next three are the permissions the group has over the file, and the last three are the permissions everyone else has over the file. The r of rwx stands for if a file can be read, the w represents if the file can be modified, and the x stands for if the file can be executed. If any permission isn't granted a - will be in place of r, w, or x. So from above user can read and modify someFile.txt but the group has only read-only rights. To change rights you can use the chmod ### fileName command if you have sudo rights. r is represented by a value of 4, w is represented by 2, and x is represented by a 1. So if only you want to be able to modify the contents to the test directory Owner rwx = 4+2+1 = 7 Group r-x = 4+0+1 = 5 Other r-x = 4+0+1 = 5 So the whole command is chmod 755 test Now doing a ls -l would show something like drwxr-xr-x 2 user users 4096 Jul 21 07:20 test Readable Size Used in conjunction with the l option the h option shows file sizes that are human readable. Running user@linux-computer:~$ ls -lh Would output: total 4166 -rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt drwxrwxrwx 2 user users 4.0K Jul 21 07:18 test Hidden To view hidden files use the a option. For example user@linux-computer:~$ ls -a Might list
Page
14
GoalKicker.com – Linux® Notes for Professionals 10 .profile someFile.txt test Total Directory Size To view the size of the current directory use the s option (the h option can also be used to make the size more readable). user@linux-computer:~$ ls -s Outputs total 4166 someFile.txt test Recursive View Lets say test directory had a file anotherFile and you wanted to see it from the root folder, you could use the R option which would list the recursive tree. user@linux-computer:~$ ls -R Outputs .: someFile.txt test ./test: anotherFile
Page
15
GoalKicker.com – Linux® Notes for Professionals 11 Chapter 2: Detecting Linux distribution name and version Section 2.1: Detect what debian-based distribution you are working in Just execute lsb_release -a. On Debian: $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux testing (stretch) Release: testing Codename: stretch On Ubuntu: $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.4 LTS Release: 14.04 Codename: trusty In case when you don't have lsb_release installed you may want to try some guessing, for example, there is a file /etc/issue that often contains distribution name. For example, on ubuntu: $ cat /etc/issue Ubuntu 12.04.5 LTS \n \l Don't use file /etc/debian_version because its contents do not match distribution name! Note that this will also work on non-Debian-family distributions like Fedora, RHEL, or openSUSE — but that lsb_release may not be installed. Section 2.2: Detect what systemd-based distribution you are using This method will work on modern versions of Arch, CentOS, CoreOS, Debian, Fedora, Mageia, openSUSE, Red Hat Enterprise Linux, SUSE Linux Enterprise Server, Ubuntu, and others. This wide applicability makes it an ideal as a first approach, with fallback to other methods if you need to also identify older systems. Look at /etc/os-release. In specific, look at variables NAME, VERSION, ID, VERSION_ID, and PRETTY_NAME. On Fedora, this file might look like: NAME=Fedora VERSION="24 (Workstation Edition)" ID=fedora VERSION_ID=24 PRETTY_NAME="Fedora 24 (Workstation Edition)" ANSI_COLOR="0;34"
Page
16
GoalKicker.com – Linux® Notes for Professionals 12 CPE_NAME="cpe:/o:fedoraproject:fedora:24" HOME_URL="https://fedoraproject.org/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=24 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=24 PRIVACY_POLICY_URL=https://fedoraproject.org/wiki/Legal:PrivacyPolicy VARIANT="Workstation Edition" VARIANT_ID=workstation On CentOS, this file might look like this: NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7" This file is documented on the freedesktop web site; in principle, it is not systemd specific — but it will exist on all systemd-based distributions. From the bash shell, one can source the /etc/os-release file and then use the various variables directly, like this: $ ( source /etc/os-release && echo "$PRETTY_NAME" ) Fedora 24 (Workstation Edition) Section 2.3: Detect what RHEL / CentOS / Fedora distribution you are working in Look at the contents of /etc/redhat-release cat /etc/redhat-release Here is the output from a Fedora 24 machine: Fedora release 24 (Twenty Four) As mentioned in the debian-based response, you can also use the lsb_release -a command, which outputs this from a Fedora 24 machine: LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1- amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1- noarch Distributor ID: Fedora Description: Fedora release 24 (Twenty Four) Release: 24 Codename: TwentyFour
Page
17
GoalKicker.com – Linux® Notes for Professionals 13 Section 2.4: Uname - Print information about the current system Uname is the short name for unix name. Just type uname in console to get information about your operating system. uname [OPTION] If no OPTION is specified, uname assumes the -s option. -a or --all - Prints all information, omitting -p and -i if the information is unknown. Example: > uname -a SunOS hope 5.7 Generic_106541-08 sun4m sparc SUNW,SPARCstation-10 All the options: -s, --kernel-name Print the kernel name. -n, --nodename Print the network node hostname. -r, --kernel-release Print the kernel release. -v, --kernel-version Print the kernel version. -m, --machine Print the machine hardware name. -p, --processor Print the processor type, or "unknown". -i, --hardware-platform Print the hardware platform, or "unknown". -o, --operating-system Print the operating system. --help Display a help message, and exit. --version Display version information, and exit. Section 2.5: Detect basic information about your distro just execute uname -a. On Arch: $ uname -a Linux nokia 4.6.4-1-ARCH #1 SMP PREEMPT Mon Jul 11 19:12:32 CEST 2016 x86_64 GNU/Linuxenter code here Section 2.6: Using GNU coreutils So the GNU coreutils should be avaialable on all linux based systems (please correct me if I am wrong here). If you do not know what system you are using you may not be able to directly jump to one of the examples above, hence this may be your first port of call. $ uname -a On my system this gives me the following... Linux Scibearspace 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02) x86_64
Page
18
GoalKicker.com – Linux® Notes for Professionals 14 GNU/Linux Here you can see the following : Scibearspace : the name of my pc Scibearspace : the name of my pc 3.16.0-4-amd64 : the kernel and architecture SMP Debian 3.16.7-CKT25-2+deb8u3 : tells me I am running debian with the 3.16 kernel Finaly the last part I am running debian 8 (update 3). I would welcome any others to add in results for RHEL, and SuSe systems. Section 2.7: Find your linux os (both debian & rpm) name and release number Most of linux distros stores its version info in the /etc/lsb-release (debian) or /etc/redhat-release (RPM based) file. Using below generic command should get you past most of the Debian and RPM derivatives as Linux Mint and Cent-Os. Example on Ubuntu Machine: cat /etc/*release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04 LTS"
Page
19
GoalKicker.com – Linux® Notes for Professionals 15 Chapter 3: Getting information on a running Linux kernel Section 3.1: Getting details of Linux kernel We can use command uname with various options to get complete details of running kernel. uname -a Linux df1-ws-5084 4.4.0-64-generic #85-Ubuntu SMP Mon Feb 20 11:50:30 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux As per man page here few more options Usage: uname [OPTION]... Print certain system information. With no OPTION, same as -s. -a, --all print all information, in the following order, except omit -p and -i if unknown: -s, --kernel-name print the kernel name -n, --nodename print the network node hostname -r, --kernel-release print the kernel release -v, --kernel-version print the kernel version -m, --machine print the machine hardware name -p, --processor print the processor type (non-portable) -i, --hardware-platform print the hardware platform (non-portable) -o, --operating-system print the operating system --help display this help and exit --version output version information and exit
Page
20
GoalKicker.com – Linux® Notes for Professionals 16 Chapter 4: Shell The shell executes a program in response to its prompt. When you give a command, the shell searches for the program, and then executes it. For example, when you give the command ls, the shell searches for the utility/program named ls, and then runs it in the shell. The arguments and the options that you provide with the utilities can impact the result that you get. The shell is also known as a CLI, or command line interface. Section 4.1: Changing default shell Most modern distributions will come with BASH (Bourne Again SHell) pre-installed and configured as a default shell. The command (actually an executable binary, an ELF) that is responsible for changing shells in Linux is chsh (change shell). We can first check which shells are already installed and configured on our machine by using the chsh -l command, which will output a result similar to this: [user@localhost ~]$ chsh -l /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /usr/bin/fish In some Linux distributions, chsh -l is invalid. In this case, the list of all available shells can be found at /etc/shells file. You can show the file contents with cat: [user@localhost ~]$ cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /usr/bin/fish Now we can choose our new default shell, e.g. fish, and configure it by using chsh -s, [user@localhost ~]$ chsh -s /usr/bin/fish Changing shell for user. Password: Shell changed. Now all that is left to do is preform a logoff-logon cycle, and enjoy our new default shell. If you wish to change the default shell for a different user, and you have administrative privileges on the machine, you'll be able to accomplish this by using chsh as root. So assuming we want to change user_2's default shell to fish, we will use the same command as before, but with the addition of the other user's username, chsh -s /usr/bin/fish user_2. In order to check what the current default shell is, we can view the $SHELL environment variable, which points to the path to our default shell, so after our change, we would expect to get a result similar to this,
The above is a preview of the first 20 pages. Register to read the complete e-book.
Comments 0
Loading comments...
Reply to Comment
Edit Comment