本章主要讲解linux指令的知识
ls [选项] [目录或文件]
注:默认展示当前位置下的文件和目录

-a 列出目录下的所有文件,包括以 . 开头的隐含文件
//隐藏文件避免被删除)
-d 将目录象文件一样显示,而不是显示其下的文件(如: ls –d 指定目录)
-i 输出文件的 i 节点的索引信息(如 ls –ai 指定文件)
-k 以 k 字节的形式表示文件的大小(如 ls –alk 指定文件)
-l 列出文件的详细信息
-n 用数字的 UID,GID 代替名称(介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型
//文件类型:“*”表示可执行的普通文件; “/”表示目录; “@”表示符号链接; “|”表示FIFOs; “=”表示套接字(sockets)(目录类型识别)
-r 对目录反向排序
-t 以时间排序
-s 在l文件名后输出该文件的大小(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件 (递归)
-1 一行只输出一个文件


显示用户当前所在的文件路径


cd 目录名
改变工作目录,将当前工作目录改变到指定的目录下

cd ~ //快速进入当前用户家目录 (/home/xxx 对于root是比较特殊的)
cd - //快速回到最近访问过的路径
cd / //快速进入根目录Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件
从根目录开始到目标文件,一直可以被找到
从当前路径开始到目标文件,便捷
多叉树中的路径具有唯一性
touch [选项]… 文件…
touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件(普通文件)
-a 或--time=atime或--time=access或--time=use只更改存取时间
-c 或--no-create 不建立任何文档
-d 使用指定的日期时间,而非现在的时间
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题
-m 或--time=mtime或--time=modify 只更改变动时间
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同
-t 使用指定的日期时间,而非现在的时间
对于linux来说,linux下一切皆文件
-:普通文件(文本文件,可执行文件,各种库文件)
d:目录文件(存放文件及目录)
l:链接文件(指向一个文件的文件,类似于windows中的快捷方式)
p:管道文件
c:字符文件(字符设备,键盘,显示器)
b:设备文件(磁盘)
注:不通过后缀区分不代表不使用后缀,linux系统不使用,但使用linux编译器时需要确定文件类型
stat 文件名
查看文件状态信息

mkdir [选项] dirname…
在当前目录下创建一个名为 “dirname”的目录
-p, --parents
//可以是一个路径名称此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
tree 目录名称
以树的形式展开目录及其子目录

tree . //展开当前文件
tree / //展开根目录rmdir -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除
rm -f 即使文件属性为只读(即写保护),亦直接删除
rm -i 删除前逐一询问确认
rm -r 删除目录及其下所有文件 
man [选项] 命令
对于不记得的命令参数,我们可以进行用 man 查询命令的参数
-k 根据关键字搜索联机帮助
-num 只在第num章节找
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig cp [选项] 源文件或目录 目标文件或目录
复制文件或目录
cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理 
mv [选项] 源文件或目录 目标文件或目录
-f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i : 若目标文件 (destination) 已经存在时,就会询问是否覆盖
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行 
echo [ -n ] 字符串
echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用
> 文本 :echo命令后面跟上输出的文本(输出重定向)
-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
文字输出:
\a 发出警告声
\b 删除前一个字符
\c 最后不加上换行符号
\f 换行但光标仍旧停留在原来的位置
\n 换行且光标移至行首
\r 光标移至行首,但不换行
\t 插入tab
\v 与\f相同
\\ 插入\字符
\nnn 插入nnn(八进制)所代表的ASCII字符
more [选项] [文件]
more命令,功能类似 cat 用来查看文件内容,对文件或其它输出进行分页显示的工具不会刷屏展现内容, more 默认最多展现一整个屏幕,多的内容可以进行向下翻阅(使用Enter键)
注: more 没有办法向前面翻页
-n 对输出的所有行编号
q 退出more
less[参数] 文件
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件,除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜
-i 忽略搜索时的大小写
-N 显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
q: quit
head:
-n<行数> 显示的行数
tail:
-f 循环读取
-n<行数> 显示行数

date [选项]… [+格式]
%H : 小时(00..23)
%M : 分钟(00..59)
%S : 秒(00..61)
%X : 相当于 %H:%M:%S
%d : 日 (01..31)
%m : 月份 (01..12)
%Y : 完整年份 (0000..9999)
%F : 相当于 %Y-%m-%d
date 指定格式显示时间示例: date +%Y:%m:%ddate -s //设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
date -s “01:01:01 20080523″ //这样可以设置全部时间
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
date -s “20080523 01:01:01″ //这样可以设置全部时间
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒
date +%s
date -d @1508749502

时间戳是无重复的且为一直递增的,时间戳对于查找很方便,特别是范围查找,
cal [参数] [月份] [年份]
用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
-3 显示系统前一个月,当前月,下一个月的月历
-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
-y 显示当前年份的日历
find pathname -options
find用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
-name 按照文件名查找文件
alias [name[=value]]

注:一般设置的别名只会在当前有用,退出后不再起效,当然也可以学习一下怎样设置永久有效的别名
grep [选项] 搜寻字符串文件
在文件中搜索字符串,将找到的行打印出来
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
zip 压缩文件.zip 目录或文件
将目录或文件压缩成zip格式
-r 递归处理,将指定目录下的所有文件和子目录一并处理(否则只是打包第一层子目录和文件)
tar [-cxtzjvf] 文件与目录 … 参数
tar 可以将文件和目录压缩成tgz格式,拥有更多的选项,相当于更强大的zip
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录
bc相当于Linux的一个计算器

uname [选项]
uname用来获取电脑和操作系统的相关信息
-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称 
添加新用户账号
强制移除账号
设置新用户账号的密码
展示家目录(查看账号)

su +名字

具有『命令补全』和『档案补齐』的功能

让当前的程序『停掉』

表示『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思,也可以用来取代exit来退出当前用户账号

搜索历史执行的命令
history:展示历史执行命令

注:可以使用上下键切换历史命令
shutdown [选项]
-h : 将系统的服务停掉后,立即关机。
-r : 在将系统的服务停掉之后就重新启动
-t sec : -t 后面加秒数,亦即『过几秒后关机』的意思login、 shutdown、 halt、 reboot、 install、 mount、 umount、 chsh、exit、 last
file、 mkdir、 grep、 dd、 find、 mv、 ls、 diff、 cat、 ln
df、 top、 free、 quota、 at、 lp、 adduser、 groupadd、 kill、 crontab
ifconfig、 ip、 ping、 netstat、 telnet、 ftp、 route、 rlogin、 rcp、 finger、 mail、 nslookup
passwd、 su、 umask、 chgrp、 chmod、 chown、 chattr、 sudo ps、 who
tar、 unzip、 gunzip、 unarj、 mtools、 man、 unendcode、 uudecode