1. 什么是shell
提示符
$被称作shell prompt,它表明shell准备好接收输入。
通常包括你的用户名@ 主机名,紧接着当前工作目录(稍后会有更多介绍)和一个美元符号。
如果最后一个符号不是$符号而是井号(#)(hash mark),当前终端会话具有superuser权限。这表明要么我们是以root用户登录的,要么我们选择了一个terminal emulator提供了超级用户,也即管理员的权限。
一些简单的命令
date显示当前的时间还有日期
cal展示当前月份的日历
df查看当前硬盘的空间
free查看空闲存储空间
exit结束会话
复制和粘贴
命令行中Ctrl+C,V的复制粘贴方法不再管用,在Linux命令行中的复制粘贴是这样的:
鼠标双击一个文件名,表示复制;
单击鼠标中键,表示粘贴。
2. 文件系统中跳转
在文件系统中导航,主要要用这三个命令:
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
关于文件名
1.以句号(.)开头的文件是隐藏文件。
这仅仅是意味着ls不能列出它们,ls –a才能列出它们。
当账户建立的时候,home目录下会出现一些这样的文件,配置一些东西,一些应用也会把它们的配置文件放在这里。
2.文件名和命令都是大小写敏感的。
3.Linux没有后缀名(file extension)的概念。
但是尽管Unix类的系统不使用文件后缀来决定文件内容和用途,一些应用程序还是需要文件名后缀。
4.尽管Linux支持很长的文件名,可以包含空格和标点,但是你最好将文件名中使用的标点限制在句号、连字符和下划线这三种类型内。
最重要的是,在文件名中不要使用空格。不然一些命令行的任务会变得很难进行。
3. 探究操作系统
ls — 列出目录内容 List directory contents
file — 确定文件类型 Determine file type
less — 浏览文件内容 View file contents
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
深入研究长格式输出
-rw-r--r-- 1 root root 3576296 2007-04-03 11:05 Experience ubuntu.ogg
首先,第一个字母说明文件类型,小横线-表示是二进制文件,d表示是目录,也即文件夹,l表示是软链接文件。
less命令查看文件内容
less命令可以查看文本文件(比如配置文件、脚本)的内容。
less filename
执行后可以滚动查看文件内容,可以按Q键退出less。
less常用命令:
less取代了早期Unix的一个叫做more的程序。名字是根据设计中常用的less is more的短语。
Linux 系统中的目录
4. 操作文件和目录
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
shell 提供了特殊字符来帮助你快速指定一组文件名。这些特殊字符叫做通配符。
使用通配符(也以文件名代换著称)允许你依据字符类型来选择文件名。
注意,字母的范围,比如[A-Z]或者[a-z]可能不太好用。
mkdir - 创建目录
使用格式:mkdir directory...
注意表示法: 在描述一个命令时(如上所示),当有三个圆点跟在一个命令的参数后面,这意味着那个参数可以重复。
cp - 复制文件和目录
使用格式:cp item1 item2 复制单个文件或目录“item1” 到文件或目录”item2”
cp item... directory 复制多个项目(文件或目录)到一个目录下。
有用的选项和实例:
mv - 移动和重命名文件
使用格式:mv item1 item2 把文件或目录“item1”移动或重命名为“item2””
mv item... directory 把一个或多个条目从一个目录移动到另一个目录中
rm命令使用时要注意
使用格式:rm item... “item” 代表一个或多个文件或目录。
由于删除操作是不可逆的,所以使用rm命令的时候要格外注意,尤其是和通配符结合的时候,rm *.html多加一个空格就有可能会删掉所有文件。
所以比较好的方法:首先,仔细检查通配符的使用;其次,先用ls命令看一眼要删除的文件,然后向上返回命令,将ls改成rm。
软链接和硬链接
ln是创建链接的命令:
创建硬链接:ln file link
创建软链接:ln -s file link
硬链接(hard link)是Unix系统最早的创建链接的方式。
默认情况下每个文件都有一个硬链接,创建硬链接时,实际上是创建了附加的入口,当且仅当指向文件的所有硬链接都被删除之后文件才被真正删除,即数据块被清理。
为一个文件创建硬链接,类似于拷贝一个文件,但是这个新的拷贝和原先的版本是同步更新的。
这是因为Linux文件系统中所有文件都会分配一个编号,称为索引节点号(Inode Index),创建硬链接,inode是同一个号,所以可以同步更新。
硬链接的两个限制:
1.硬链接不能指向自身文件系统外的文件,即不能跨硬盘分区(软链接可以)。
2.硬链接不能指向目录。
软链接(software link),也称为符号链接(symbolic link),软链接可以类比Windows上的快捷方式。
删除软链接时不会影响指向文件;如果删除了文件没有删除软链接,链接会存在但是什么也不指向,即坏掉了。
总结
硬链接:拷贝+同步
软链接:快捷方式
参考: http://linuxcommand.org/tlcl.php
http://www.cnblogs.com/mengdd/p/3613323.html