1. What is the Shell?
The Shell is a program that takes keyboard commands and passes them to the operating system to carry out.
提示符
$被称作shell prompt,它表明shell准备好接收输入。
通常是包含了你的用户名和机器名(username@machinename),之后是当前的工作目录,之后是一个dollar符号。
如果最后一个符号不是$符号而是井号(#)(hash mark),当前终端会话具有superuser权限。
这表明要么我们是以root用户登录的,要么我们选择了一个terminal emulator提供了超级用户,也即管理员的权限。
一些简单的命令
date显示当前的时间还有日期
cal展示当前月份的日历
df查看当前硬盘的空间
free查看空闲存储空间
exit结束会话
复制和粘贴
命令行中Ctrl+C,V的复制粘贴方法不再管用,在Linux命令行中的复制粘贴是这样的:
鼠标双击一个文件名,表示复制;
单击鼠标中键,表示粘贴。
2. Navigation
在文件系统中导航,主要要用这三个命令:
pwd—Print name of current working directory. 打印当前工作目录。
cd—Change directory.
ls—List directory contents.
文件系统是树形的,但是不像Windows里面,每个存储设备有一个单独的树;Unix-like system永远只有一个文件系统树形结构。
改变当前目录
改变当前目录的命令是cd(change directory),后面跟目标路径。
目标路径有两种给出的方式,一种是绝对路径,一种是相对路径。
绝对路径名
绝对路径是从root目录开始的,root目录通常用一个开头的斜线(/)表示:
比如cd /usr/bin可以进入程序安装目录。
相对路径名
相对路径的起点是工作目录,需要使用特殊的符号来表示相对位置:
.一个点表示当前目录;
..两个点表示父目录。
比如当前在usr下,想进入bin下:
cd ./bin
在大多数时候,可以省略./
cd bin
不要使用空格。不然一些命令行的任务会变得很难进行。
3. Exploring the System
ls命令
ls可以列出当前工作目录下的文件和子目录名。
除了当前目录,也可以指定路径:
ls /usr
并且可以指定多个路径:
ls ~ /usr
这样可以分别列出用户的home目录和usr目录下的内容。
(home目录用字母~表示)
也可以指定输出方式:ls –l以长格式输出。
命令选项和参数
命令通常跟着一个或多个选项(options),指定行为方式;
另外会跟着一个或多个参数(arguments),指定行为对象。
command –options arguments
选项通常是一个字母,前缀一个连字符,比如-l。
很多命令也支持长选项,由两个连字符后接一个单词组成。
还有很多命令支持多条短选项串接,比如ls –lt。
l选项指定输出格式为长,t选项将结果按照文件的修改时间排序。
如果是ls –lt –reverse
将会逆序排列结果。
一些常用的ls选项:
file命令查看文件类型
前面提到过,Linux中,所有东西都是一个file,文件是不用后缀名的,即从文件名上并不能看出文件的类型。
所以可以用命令file filename来查看文件类型,执行后会输出文件描述。
file filename
less取代了早期Unix的一个叫做more的程序。名字是根据设计中常用的less is more的短语。
4. Manipulating Files and Directories
cp—Copy files and directories. 复制文件或目录。
mv—Move/rename files and directories. 移动和重命名文件和目录。
mkdir—Create directories. 创建目录,可以创建多个。
rm—Remove files and directories. 删除文件和目录。
ln—Create hard and symbolic links.
通配符wildcards or globbing
注意,字母的范围,比如[A-Z]或者[a-z]可能不太好用。
rm命令使用时要注意
由于删除操作是不可逆的,所以使用rm命令的时候要格外注意,尤其是和通配符结合的时候,rm *.html多加一个空格就有可能会删掉所有文件。
所以比较好的方法:首先,仔细检查通配符的使用;其次,先用ls命令看一眼要删除的文件,然后向上返回命令,将ls改成rm。
参考资料
《The Linux Command Line》http://linuxcommand.org/tlcl.php