{{attachment:kubuntu-banner-13.04-2.png|align="middle"|height=220}} ||<>|| /* start of cli.xml */ = Introduction to the Command Line = This document provides a brief description of the Linux command line. It is not a complete guide, but rather an introduction to complement Kubuntu's graphical tools. Under Linux there are GUI's (graphical user interfaces), where you can point and click and drap and hopefully get work done without first reading lots of documentation. The traditional Unix enviornment is a cli (command line interface), where you type commands to tell the computer what to do. This is faster and more powerfule, but requires finding out what the commands are. * All command names, file names, or paths to directories will be shown using a 'monospace font'. * All command names, file names, and or paths are case-sensitive. User, user, and USER are each different and distinct in Linux. * The commands should be issued from a command prompt within a terminal and will be shown as: [[attachment:konsole.png|{{attachment:konsole.png|ls command|width=600}}]] (Kubuntu's default terminal is called Konsole) == File and Directory Commands == ''' pwd ''' - ''print working directory'' The 'pwd' command displays the directory where the user is currently located. Konsole also displays this information in both the tab and title bar of its window. ''' cd ''' - ''change directory'' The 'cd' command changes directories. When a terminal window is opened, it will be in the user's home directory. Moving around the file system requires the use of the cd command. * To navigate into the root directory, type: 'cd /'. * To navigate to the current user's home directory, type: 'cd' or 'cd ~'. * To navigate up one directory level, type: 'cd ..'. * To navigate up two directory levels, type: 'cd ../../'. * To navigate to the previous directory (go back), type: 'cd -'. To navigate through multiple levels of directories at once, specify the full directory path. For example, type: 'cd /var/log' to go directly to the directory log subdirectory of var. For another example, typing: 'cd ~/Desktop' moves to the directory Desktop subdirectory inside the current user's home directory. ''' ls ''' - ''list files'' The 'ls' command outputs a list of the files in the current directory. For example, typing: 'ls ~' will display the files that are in the current user's home directory. [[attachment:konsole-ls-command.png|{{attachment:konsole-ls-command.png|ls command|width=600}}]] Used with the '-l' option, the 'ls' command outputs other information along with the filename, such as the permissions on the file, the file's owner, and more Used with the '-al' options, the 'ls' command outputs the information associated with the '-l' option in addition to showing hidden files (the '-a' option) ''' touch ''' - ''create empty file'' The 'touch' command is used to change a file's access and modification timestamps or to create a new empty file. For example, 'touch foo' will create a new empty file named foo. If foo is already a file, then using 'touch' will update the timestamps on the file, which show the last time a file was "touched". ''' mkdir ''' - ''make directory'' The 'mkdir' command is used to create a new directory. To create a new directory named foobar, type: 'mkdir foobar'. ''' cp ''' - ''copy files or directories'' The 'cp' command make a copy of a file or directory. To make an exact copy of foo and name it bar, type: 'cp foo bar'. To make an exact copy of the foo dir directory and name it bar dir, type: 'cp -r foo_dir bar_dir'. ''' mv ''' - ''move files or directories'' The 'mv' command moves a file or directory to a different location or renames a file or directory. To rename the file foo to bar, type: 'mv foo bar'. To move the file foo into the current user's Desktop directory, type: 'mv foo ~/Desktop'. This will not rename foo to Desktop, because foo is a file and Desktop is a directory. ''' rm ''' - ''remove files or directories'' The 'rm' command it used to delete files and directories. To delete the file foo from the current directory, type: 'rm foo'. By default, 'rm' will not remove directories. To remove a directory, you must use the '-r' option. For example, 'rm -r foobar' or 'rm -R foobar' will remove the directory and all of its contents. == System Information Commands == /* end of cli.xml */ /* start of basics.xml */ = Linux File System = This document introduces the basics of a Linux system, which are useful for understanding Kubuntu under the graphic interface. This is sometimes referred to as the "cli", short for commandline interface. For more on the Linux filesystem, see [[http://www.howtogeek.com/117435/htg-explains-the-linux-directory-structure-explained/|The Linux Directory Structure]]. A filesystem is a method of storing and organizing files in all computer operating systems. In Linux most files are "regular files", except for 'directories', 'special files', 'links', 'sockets' and 'named pipes'. The most common filetypes that users interact with are regular files, directories, and links. '''/bin''' As you can see it holds important commands to system administrators (with full access privileges) and regular users (with limited access privileges). Command such as ''bash'', ''ls'' (like we have learned), ''cp'', and ''cat'' which are essential to the operation of a Linux system. '''/boot''' Contains the files required for the boot process. In the case of Kubuntu, it contains the files for the GRUB2 boot-loader, master boot records, map files, and the Linux kernel. '''/dev''' Location of special or device files. For example, ''/dev/sda0'' is the first partition on the hard drive. '''/etc''' Contains all system-related configuration files used to control the operation of programs. '''/home''' Contains a home directory for each user on the system. A user's home directory can contain personal configuration files, documents, music, videos, and other user-defined directories and files. '''/initrd-img''' The initrd-img in ''/'' is a symlink to /boot/initrd.img-"kernel-version" the like the one in 13.04 is ''initrd.img-3.8.0-19-generic''. This file is required for system startup. '''/lib''' Contains the kernel modules and shared library images needed to boot the system and run commands. '''/lib32''' Same as '/lib' above, but contains only the 32-bit versions. '''/lib64''' Same as '/lib' above, but contains only the 64-bit versions. '''/lost+found''' Contains the results of any recovery operations due to an improper shut-down of the system or a system crash. '''/media''' Contains the subdirectories which are used as mount points for removable media, such as CD's, DVD's, USB disks, or floppy disks. '''/mnt''' Generic mount point for filesystems or devices. In most cases, '/media' is where most devices will be auto-mounted. '''/opt''' Short for 'optional'. This directory is used for add-on packages that are typically installed manually by the user. '''/proc''' Virtual filesystem that contains runtime system information which is presented in a file-like structure. '''/root''' The home directory of the system administrator known as 'root'. '''/sbin''' Contains programs that are essential to the working of the sytem, such as 'fdisk', 'ifconfig', 'reboot', and 'shutdown'. '''/selinux''' A pseudo-filesystem containing the commands used by the kernel sub-system for the Security-Enhanced Linux feature. '''/srv''' Contains site-specific data which is served by the system. '''/sys''' Contains the Linux kernel, firmware, and system-related files. '''/tmp''' Contains files that are required temporarily. Many programs use this directory to create lock files and for temporary storage of data. '''/usr''' Contains the largest share of data on the system, including read-only user data, as well as files and programs, such as program binaries, documentation, libraries, header files, and more. '''/var''' Contains variable data, such as system log files, mail and printer spool directories, as well as transient and temporary files. '''/vmlinuz''' A symlink to a compressed executable of the Linux kernel. == Users and Groups == Since Linux is a true multi-user system, the principles of both 'users' and 'groups' are important to the internal operation of the system, and also to the day-to-day use of the system. The way Linux handles users and groups makes it one of the most secure operating systems. === Users === ''Physical Users'' are people who use the system physically. They have user ids which are usually unique, as well as group ids. ''Logical Users'' are not tied to a person, but instead are tied to a system function that are used by applications to perform specific tasks. Daemons, mail, and news are examples of logical users. === Groups === Groups are logical expressions of organization. They tie users together and provide group-based, rather user-based, permissions. Common groups include 'admin', 'audio', 'mail'. == Permissions == In a multi-user environment, security of user and system data is important. Linux has three distinct classes: * ''r'' - read permission grants the ability to read a file. * ''w'' - write permission grants the ability to modify a file. * ''x'' - execute permission grants the ability to execute a file. The list above shows the symbolic notation of each permission in ''italic'' text. Each permission also has an octal notation (is represented by digits from 0 to 7): * ''r'' - 4 * ''w'' - 2 * ''x'' - 1 === Permissions Example === To view permissions, open a terminal by using Konsole and then type ''ls -l ~/'' This will output a list of the directories and files in the current user's home directory. For example: "drwxr-xr-x 6 aaron aaron 4096 May 1 17:30 Documents" [[attachment:permissions-snapshot.png|{{attachment:permissions-snapshot.png|ls command|width=600}}]] The first column, which contains ''drwxr-xr-x'', can be interpreted as follows: || File Type || User Permissions || Group Permissions || Others Permissions || || ''d'' - ''directory'' || ''rwx'' - ''read'' ''write'' ''execute'' || ''r-x'' - ''read'' and ''execute'' || ''r-x'' - ''read'' and ''execute'' || === Octal to Symbolic Summary === || Octal || Symbolic || Description || || 0 || --- || no permissions || || 1 || --x || execute only || || 2 || -w- || write only || || 3 (2+1) || -wx || write and execute || || 4 || r-- || read only || || 5 (4+1) || r-x || read and execute || || 6 (4+2) || rw- || read and write || || 7 (4+2+1) || rwx || read, write, and execute || == Processes == Processes are instances of computer programs that are running. Next to files, processes are the second most important part of the Linux system. === Viewing Processes in Kubuntu === The keycombo 'Ctrl + Esc' starts KDE's System Activity dialog where processes can be viewed and killed. /* end of basics.xml */ ---- CategoryDocumentation