Linux支持的不同类型的文件系统
传统硬盘文件系统:ext2,ext3,ext4,XFS,Btrfs,JFS,NTFS,etc.闪存文件系统:ubifs,JFFS2,YAFFS,etc.数据库文件系统特殊文件系统:PRocfs,sysfs,tmpfs,debugfs,etc.分区和文件系统
| _ | Windos | Linux |
|---|---|---|
| 分区 | Disk1 | /dev/sda1 |
| 文件系统类型 | NTFS/FAT32 | EXT3/EXT4/XFS.. |
| Mounting Parameters | DriveLetter | MountPoint |
| OS所在根目录 | C盘 | / |
3. 文件系统层次 Linux使用/分割路径,(Windows使用/),并且没有盘符。New drives作为目录挂载在单个文件系统中,通常再/media目录下。(举例来说一个CD-ROM FEDORA的目录可能是/meida/FEDORA) 4. Boot Process 启动过程 
锁屏 CTRL-ALT-L 查看隐藏文件 CTRL-H 删除文件.local/share/Trash/files

man topic man -f topic列出包含topic的所有项相当于whatis man -k topic列出关于topic的项目(可以不含topic这几个字本身)相当于apropos man 3 topic列出第三章的相关内容 man -a topic列出所有章的相关内容 cmd --help列出关于某个指令的帮助

1. Logging In and Out 使用ssh username@server.com远程连接 2. Rebooting and Shutting Down shutdown halt和poweroff相当于shutdown -h reboot相当于shutdown -r
which可以定位应用,如果which没有找到,可以是使用whereis,它会查找范围更大的目录。访问目录 第一次登陆系统或打开终端时,默认目录是家目录。可以使用echo $HOME| Command | Result |
|---|---|
| pwd | 输出当前目录 |
| cd ~或cd | 转到家目录 |
| cd.. | 转到上级目录 |
| cd - | 转到之前目录 |
5. 绝对路径和相对路径 6. 浏览文件系统 tree命令可以浏览整个文件系统树,使用tree -d可以只看目录而不列出文件。
| Command | Usage |
|---|---|
| cd/ | 更改到根目录 |
| ls | 展示当前目录内容 |
| ls -a | 展示所有文件(包括隐藏文件) |
| tree | 展示文件系统树 |
7. 硬链接和软(符号)链接 ln可以用来创建硬链接和软链接(使用-s选项),也叫symbolic或symlinks。 为file1创建一个硬链接 $ ln file1 file2 使用命令$ ls -li file1 file2可以看到两个文件有相同的inode编号,说明只有一个文件,而另一个文件跟它链接在一起。 符号链接 $ ln -s file1 file4 $ ls -li file1 file4 file4不再是一个常规文件,它是一个链接文件,指向了file1,并且有不同的inode编号。 符号链接不占文件系统的额外空间。它非常方便因为可以指向不同的地方。 符号链接可以指向不同的甚至当前不存在的文件系统,当指向不存在的位置时,获得一个**dangling**link。 导航目录历史 cd - pushd popd dirs显示目录信息
查看文件
| Command | Usage |
|---|---|
| cat | 查看不是很长的文件,不提供滚屏 |
| tac | 从文件末尾查看 |
| less | 用来查看更大的文件,Use / to search for a pattern in the forward direction and ? for a pattern in the backward direction. |
| tail | 默认输出最后10行 使用-n参数更改行数 |
| head | 默认输出开头10行 |
touch and mkdir touch创建文件或修改文件时间 $ touch <filename>创建空文件 $ touch -t 03201600 myfile设置特定时间戳 mkdir创建目录 rmdir删除目录,目录必须为空否则会失败。删除目录和目录中内容使用rm -rf Removing a File
| Command | Usage |
|---|---|
| mv | 重命名 |
| rm | 删除文件 |
| rm -f | 强制删除 |
| rm -i | 交互式删除 |
Renaming or Removing a Directory
| Command | Usage |
|---|---|
| mv | 重命名目录 |
| rmdir | 删除空目录 |
| rm -rf | 强制递归删除目录 |

1.标准文件流 文件流,描述符 stdin 0 stdout 1 stderr 2 2. I/O重定向 $ do_something < input-file更改程序的输入,使得其读取file中的数据。 $ do_something > ouutput-file,将程序的输出定向到file。 因为stderrr和stdout不同,所以错误信息仍然会输出到终端。 如果想要重定向stderr到一个不同的文件,需要使用stderr的文件描述符编号2, $ do_something 2 > error-file 将stdout和stderr的输出到相同文件 $ do_something > all-output-file 2>&1 bash终端允许一个更简单的语法: $ do_something >& all-output-file 3. 管道pipes 可以将一个指令的输出作为另一个指令的输入。 $ command1 | command2 | command3 4. locate locate命令通过查询一个预先建立好的数据库搜索包含关键词的目录或文件,可以使用grep命令过滤查询结果 $ locate zip | grep bin。 locate命令使用的数据库是通过updatedb命令建立的,一般该命令一天执行一次,也可以手动执行。 5. Wildcards 匹配文件名
| Wildcard | Result |
|---|---|
| ? | 匹配单个字符 |
| * | 匹配任意字符串 |
| [set] | 匹配集合中的任意字符 |
| [!set] | 匹配任意不在集合中的字符 |
6. 使用find在目录中查找 find会列出所有当前目录和子目录下的文件。 选项参数有 -name,只列出名字中含有特定模式的。 -iname忽略含特定模式的。 -type指定文件类型,d目录,l符号链接,f常规文件。 7. 使用高级find选项 find能够运行指令在其列出的结果上,使用-exec选项实现。 查找并删除所有以.swp结尾的文件 $ find -name "*.swp" -exec rm {} ';' {}花括号是一个占位符,用来填充find的结果。 注意该指令要以';'(包括单引号)或/;结尾。 也可以使用-ok选项,会提示确认再执行指令,更安全。 8. 基于时间和大小查找文件 

mount可以将一个文件系(可以使本地的也可以是网络的)附加在文件系统树上面。 参数包括device node和mount point $ mount /dev/sda5 /home 单独使用mount可以列出当前已挂载的文件系统。 命令df -Th(disk-free)将会展示关于挂载文件系统使用统计量的信息。网络文件系统 服务器端NFS 使用sudo service nfs start命令启动NFS。 文本文件/etc/exports包括了主机将要和其他系统通过NFS共享的目录和访问权限。每一项具有如下格式 /projects *.example.com(rw) 该项允许目录/projects通过NFS以读写(rw)权限被挂载并与example.com域的主机共享。 修改完配置文件后,使用exportfs -av命令通知Linux更新,或通过sudo service nfs restart重启NFS,但是这会比较慢。 客户机端NFS 通过修改/etc/fstab文件完成系统启动后自动挂载远程文件系统。文件中的一项如下: servername:/projects /mnt/nfs/projects nfs defaults 0 0 也可以通过下命令一次性挂载而不重新启动 $ mount servername:/projects /mnt/nfs/projects 如果/etc/fstab文件没有被修改,那么远程挂载在下次启动时将不会出现。ps,ls,cp。 单用户模式下的非基本命令被放在/usr/bin目录,/sbin目录存放管理员所需的二进制文件,如ifconfig,shutdown。还有一个 /usr/bin目录存放不太必要的管理员程序。 现代Linux操作系统/usr/bin和/bin实际上是一样的。/sbin和/usr/sbin也是。/dev目录 包含设备结点。/var和/etc目录 /var目录中包含可能改变大小和内容的文件。如 系统日志文件/var/log包和数据库文件/var/lib打印队列/var/spool临时文件/var/tmp/etc目录是系统配置文件的存放地,不包含二进制程序,包含一些可执行脚本。 4. /boot目录 该目录包含很少的系统启动必需的文件。 如vmlinz,initramfs,config,System.map 5. /lib和/media目录 /lib目录包括了/bin和/sbin中的应用程序运行所需的通用代码。库文件名以ld或lib开头。 大部分是dll动态链接库,也叫做共享库,共享对象SO. /media目录包括可以移除的媒介(如CD,DVD,USB),linux自动挂载这些可移除媒介到/media 6. /目录下其他目录
| 目录名 | 用途 |
|---|---|
| /opt | 可选应用软件包 |
| /sys | Virtual pseudo-filesystem giving information about the system and the hardware. Can be used to alter system parameters and for debugging purposes |
| /srv | Site-specific data served up by the system. Seldom used. |
| /tmp | Temporary files; on some distributions erased across a reboot and/or may actually be a ramdisk in memory. |
| /usr | 多用户应用,工具和数据 |
7. /usr目录下的子目录 
diff用来比较文件和目录。选项参数如下
| diff Option | Usage |
|---|---|
| -c | Provides a listing of differences that include 3 lines of context before and after the lines differing in content |
| -r | Used to recursively compare subdirectories as well as the current directory |
| -i | 忽略大小写 |
| -w | 忽略空格和制表符 |
diff <filename1> <filename2> 2. 使用diff3 和 patch diff3可以同时将两个文件与同一个文件进行比较 $ diff3 myfile file1 file2
3. file命令查看文件类型
使用cp或rsync可以备份数据。 rsync效率更高,因为它会检查待复制的文件是否已经存在,而且只会拷贝改变的部分,相当于增量备份。 cp只能在本地机器上进行拷贝工作(除非是一个通过NFS挂载的文件系统)。但是rsync可以在不同机器上进行复制,位置通过如下格式指定 target:path,target格式可以是[user@]host,可选项是当远程机器和本地的用户不同时指定。 1. 使用rsync $ rsync -r project-X archive-machine:archives/project-X 使用-dry-run参数来测试rsync命令是否产生想要的结果。 rsync sourcefile destinationfile 2. 压缩数据
| Command | Usage |
|---|---|
| gzip | 最频繁使用的压缩工具 |
| bzip2 | 产生比gzip更小的压缩结果 |
| xz | 最空间高效的压缩工具 |
| zip | 经常用来检查和解压来自其他系统的压缩文件 |
tar工具通常用来打包和一次性解压缩。 3. 使用gzip压缩数据
| Command | Usage |
|---|---|
| gzip * | 将当前目录下所有文件分别压缩,添加.gz后缀 |
| gzip -r projectx | 将指定目录及其子目录下的所有文件压缩 |
| gunzip foo | 解压缩foo.gz中的foo。在底层,gunzip实际上和gzip -d一样 |
4. 使用bzip2压缩数据 bzip2使用了与gzip不同的压缩算法,可以产生更小的文件但需要更长的时间,通常用来压缩大文件。
| Command | Usage |
|---|---|
| bzip2 * | 压缩当前目录下所有文件并添加后缀.bz2 |
| bunzip2 *.bz2 | 解压以.bz2结尾的所有文件,和bzip2 -d 一样 |
5. 使用xz压缩数据 xz是一种最空间高效的压缩工具,牺牲了压缩速度。
6. 使用zip处理文件 zip一般不用来在Linux中压缩文件,而用来校验和解压缩来自Windows的压缩文件。
| Command | Usage |
|---|---|
| zip backup * | 压缩当前目录下的所有文件到backup.zip中 |
| zip -r backup.zip ~ | 将家目录及其子目录中的所有文件打包至backup.zip |
| unzip backup.zip | 解压到当前目录下 |
7. 使用tar压缩和解压缩
8.硬盘之间的拷贝 
who列出当前登陆用户 whoami列出当前用户 who的-a选项会列出详细信息添加和删除用户 $ sudo useradd newuser $ sudo userdel newuser 删除用户时使用-r选项可以同时删除该用户的家目录。 使用id可以查看当前用户信息,使用 id username查看指定用户信息。添加和删除用户组 $ sudo /usr/sbin/groupadd newgrooup $ sudo /usr/sbin/groupdel newgroup 向一个已经存在的组添加用户使用usermode,可以先查看用户已经所属的组$ group username ,然后使用$ sudo /usr/sbin/usermod -G newgroup username为用户添加组。 删除一个用户所属的组要将其保留下来的组作为参数传递 $ sudo /usr/sbin/usermod -G newgroup username 这样用户所属组只有newgroup存在。提升root权限 使用su可以转换到管理员模式,使用sudo可以临时以管理员权限运行指令。 sudo配置文件存储在/etc/sudoers文件和/etc/sudoers.d目录中。默认情况下sudoers.d目录为空。Startup Files 刚登陆时,/etc/profile会被读取,之后会哦按序查找以下文件 ~/.bash_prifile,~/.bash_login,~/.profile。Linux 登陆shell会加载搜索到的第一个文件并忽略后面的 
使用set,env,export命令可以查看环境变量。 1. 设置环境变量 默认情况下,在一个脚本中创建的变量只能在当前的shell中使用,子进程不能访问。如果想让子进程访问,需要使用export命令。
| Task | Command |
|---|---|
| 查看特定变量的值 | echo $SHELL |
| 设置新变量 | export VARIABLE=value (or VARIABLE=value; export VARIABLE) |
| 永久添加变量 | 1.Edit ~/.bashrc and add the line export VARIABLE=value 2.Type source ~/.bashrc or just. ~/.bashrc (dot ~/.bashrc); or just start a new shell by typing bash |
2. HOME变量 代表家目录,也是用户登陆目录。不带参数的cd命令会跳转到HOME所指的目录。等同于~。 3. PATH变量 PATH是一个指令用来寻找合适的程序或脚本的有序列表。路径用:分割,空路径或./代表当前目录。 添加一个私有的bin目录到PATH:
SHELL变量 
bash保留了历史命令,使用方向键可以查看,使用history命令也可以查看。历史命令存储在~/.bash_history中。 1. 使用History环境变量 HISTFILE存储历史文件位置 HISTFILESIZE存储历史文件最大行数。 HISTSIZE存储当前会话历史文件的最大行数。 2. 寻找和使用历史命令
| key | Usage |
|---|---|
| Up/Down arrow key | 浏览历史命令列表 |
| !!(bang-bang) | 执行上一条命令 |
| CTRL-R | 搜索之前的命令 |
3. 执行历史命令
| Syntax | Task |
|---|---|
| ! | 开始历史替代 |
| !$ | 指向最后一个参数 |
| !n | 指向第n条命令 |
| !string | 指向最近的以string开头的命令 |
4. 键盘快捷键 
通常别名存在~/.bashrc文件中,因此在任何shell都可以使用他们。 alias会列出当前定义的别名。注意别名定义中=两边没有空格,且定义要放在单引号或双引号包括的字符串中。
| Command | Usage |
|---|---|
| chown | 更改文件或目录的所有者 |
| chgrp | 更高组的所有权 |
| chmod | 更改文件的访问权限 |
1. 文件访问权限和chmod 2. chown $ sudo chown user file-1 3.chgrp
新闻热点
疑难解答