1. Command-line "Terminal"
You can provide additional options to a command; you can pipe the output of one command into another command; you can put a set of commands in a script to automate a task.
bash
(Bourne Again Shell)$ pwd //print working dir .......
2. Unix File System
Root Directory
Everything in Unix is a file - data files. Files are organized in directories (aka folders). The directories are organized in a hierarchical tree structure, starting from the root directory.
"
/usr/lib/jvm/jdk1.7.0_07/bin/javac
". The leading "/
" (forward slash) denotes the root directory. The sub-directories are also separated by a "/
".
There is only one root directory for the entire Unix's file system.
Notes: Windows use "
\
" (back slash) as the directory separator, and may contain multiple root directories - one for each drive (e.g., c:\
, d:\
).
one root dir in UNIX
multiple root dir in Windows,
Home Directory
Unix is a multi-user operating system. home directory (for each user). The users' home directories are allocated under
/home
for Ubuntu. The home directory of the current login user is denoted as "~
". It contains sub-directories such as ~/Desktop
, ~/Downloads
, ~/Documents
, ~/Movies
,~/Music
, and etc.Pathname and Filename
To reference a file, you need to provide the pathname (directory and sub-directories names) and the filename. For example, in "
/usr/lib/jvm/jdk1.7.0_07/bin/javac
", the pathname is "/usr/lib/jvm/jdk1.7.0_07/bin/
" and the filename is "javac
".
The pathname can be specified in two ways:
- Absolute Pathname: An absolute path begins from the root directory (starts with "
/
"), and contains all the sub-directories (separated with "/
") leading to the file, e.g., "/usr/lib/jvm/jdk1.7.0_07/bin/
" (starting with root). An absolute path can also begin with the current user's home directory (starts with "~"), e.g., "~/Downloads/jdk
" (starting with home dir). Suppose the current user is "peter", it maps to "/home/peter/Downloads/jdk
" (in Linux). - Relative Pathname: A relative path is relative to the so-called current working directory (pwd). A relative path does not begin with "
/
" or "~
". For example, if the current working directory is "/usr/lib/jvm
", then the relative pathname "jdk1.7.0_07/bin
" refer to "/usr/lib/jvm/jdk1.7.0_07/bin
".
Unix system is case sensitive, a rose is NOT a Rose, and is NOT a ROSE.
3. Basic Commands
3.1 pwd (Print Current Working Directory)
3.2 cd (Change Working Directory)
To change current working directory, issue command "
cd new-pathname
" (change directory). You can specify new pathname in two ways: absolute or relative. An absolute path begins with a "/
" (root directory) or "~
" (home directory). A relative path is relative to the current working directory and does NOT begin with "/
" or "~
". For example,3.3 ls (List Directory's Contents)
You can use command
ls
to list the contents of the current working directory, e.g.,// List contents of current working directory in short format
$ ls
Desktop Downloads Music Public Videos
Documents examples.desktop Pictures Templates
// List in long format
$ ls -l
total xx
drwxr-xr-x 2 myuser myuser 1024 Mar 22 21:32 Desktop
drwxr-xr-x 2 myuser myuser 1024 Mar 22 21:32 Documents
drwxr-xr-x 2 myuser myuser 1024 Mar 22 21:32 Downloads
-rw-r--r-- 1 myuser myuser 8445 Mar 22 17:30 examples.desktop
......
// Append file indicator (e.g., trailing / indicates a directory)
$ ls -F
Desktop/ Downloads/ Music/ Public/ Videos/
Documents/ examples.desktop Pictures/ Templates/
Wildcard *
You can list selected files using wildcard
*
, which matches 0 or more (any) characters. For example,$ ls *.java // List files ending with ".java" in short format (default)
$ ls -l *.java // List files ending with ".java" in long format
$ ls -ld my* // List files and directories beginning with "my" in long format
3.4 cat, less (Viewing File Contents)
You can use commands
cat
, less
or more
to display contents of a text file on console. cat
shows the entire file, which can be inconvenient for long file. less
shows one page of the file. For example,$ cat /proc/cpuinfo
// Display the entire file
// Use window's scroll-bar to scroll
$ less /proc/cpuinfo
// Display one page of the file
// Use Up|Down|PgUp|PgDown key to scroll, and press "q" to quit
3.5 Shortcut Keys - IMPORTANT
Previous Commands: You can use the up/down arrow keys to retrieve the previous/next command in the command history.
Copy/Paste:
- Copy: shift+ctrl+c
- Copy: shift+ctrl+v
- middle-button: copy, paste, highlight
- interrupt signial: ctrl+c
- end of text input: ctrl+d
- suspending current process: ctrl+z
3.6 Other Frequently-used Commands
$ clear // Clear Screen
$ who // List all login users
$ whoami // Show the current login user
$ which program-name // Show the location of the program, e.g., "which javac"
3.7 Getting Helps
$ help // Show all the available commands
$ help command-name // Show help for a specific command, e.g., "help cd"
$ man command-name // Show the manual page for a specific command, e.g., "man cd"
To enable a user to
sudo
:- In Ubuntu: System Settings ⇒ User Accounts ⇒ Select the user ⇒ Unlock ⇒ Set the account type to "Administrator" (instead of "Standard User"), which adds the user to "
sudo
" group.
4.2 Processes
Unix is a multi-process, multi-user operating system. It can run many processes concurrently.
You can use GUI applications to view all running processes and terminate a particular process (similar to "Task Manager" in Windows).
- In Mac OS X: launch "Activity Monitor" (Under /Applications/Utilities) and select "All Processes".
On command-line, you can use command
ps
to list all the processes and kill
to terminate a particular process:$ ps // Print processes of current user
$ ps -e // Print all processes
$ ps -ef // Print all processes in full-listing
$ ps -ef | grep "mysql" // Print processes containing mysql
$ ps aux | grep "mysql" // same as above
$ top // Display resource usage and top processes
$ kill pid // Kill a particular possess with the given processID
$ kill -9 pid // Force kill
in Windows: taskkill
5.2 Display Text files in Command-line - cat, less, head and tail
If possible, use a graphical text editor to display a text file. Nonetheless, you can use the following commands to display a text file in command-line:
cat filename
: Concantenate file or print the file to console.less filename
: Display the file in pages. You can scroll the display with up, down, pageup, pagedown keys.less
replaces the legacymore
.head|tail filename
: Display the first|last part of the file.
For example, let's display the /proc/cpuinfo file with these commands:
$ cat /proc/cpuinfo
// Show entire file
// Use the window's scroll-bar to scroll
$ less /proc/cpuinfo
// Show one page
// Use the Up|Down|PgUp|PgDown key to scroll
$ head /proc/cpuinfo
// Show first page of the file
$ tail /proc/cpuinfo
// Show last page of the file
More on cat
The command
cat
has many usages. You can use cat
to concatenate (join) a few files. For example,$ cat file1 file2 file3
// display file1, file2 and file3 on the console
$ cat file1 file2 file3 > file4
// Concatenate file1, file2 and file3 as file4
You can also use
cat
command to create a small text file. cat
without argument uses standard input as its input. You could use ctrl+D to signal EOF. For example:$ cat > out.txt
The quick brown fox jumps over the lazy dog[ctrl+D]
$ cat out.txt
The quick brown fox jumps over the lazy dog
done
No comments:
Post a Comment