ls 指令
语法:ls 选项 目录或文件
**功能:**对于目录,该命令列出该目录下的所有子目录域文件。对于文件,将列车文件名以及其他信息。
常用选项:
-
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-
-d 将目录像文件一样显示,而不是显示其下的文件。如:ls - d 指定目录。
-
-i 输出文件的 i 节点的索引信息。如 ls - ai 指定文件。
-
-k 以k字节的形式表示文件的大小。如 ls - alk 指定文件。
-
-l 列出文件的详细信息。
-
-n 用数字的 UID(User ID 用户编号;root 的 UID=0),GID(Group ID 用户组编号)代替名称 。
-
-F 在每个文件名后附上一个字符以说明该文件的类型," * "表示可执行的普通文件;" / "表示目录;" @ "表示符号链接;" | "表示FIFOs(命名管道);" = "表示套接字(sockets)。
-
-r 对目录方向排序。
-
-t 以时间排序。
-
-s 在l文件名后输出该文件的大小。(大小排序,任何找到目录下最大的文件)
-
-R 列出所有子目录下的文件。(递归)
-
-l 一行只输出一个文件。
pwd 命令
语法:pwd
**功能:**显示用户当前所在的目录

cd 指令
语法:cd 目录名
**功能:**改变工作目录,将当前工作目录改变到指定的目录下

Linux 理论知识:路径的认识
^ Linux 系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件
^ 其中普通文件一定是目录树的叶子节点
^ 目录可能是叶子(空目录),也可能是路上节点
^ 理解路径存在的意义:树状组织方式,都是为了保证快速定位查找到指定的文件,而定位文件就需要具有唯一性的方案来进行定位文件。其中任何一个节点,都只有一个父节点,所以,从根目录开始,定位指定文件,路径具有唯一性
^ 绝对路径:一般从" / "开始,不依赖其他目录的定位文件的方式
^ 相对路径:相对于当前用户所处目录,定位文件的路径方式
^ 相对路径因为它的便捷性,一般在命令行中使用较多


touch 指令
语法:touch 选项 文件
**功能:**touch 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件
常用选型:
-
-a 只更新访问时间
-
-m 只更新内容修改时间
-
-c 文件不存在就不创建,存在则更新时间



mkdir 指令
语法:mkdir 选项 dirname
**功能:**在当前目录下创建一个名为 " dirname "的目录
常用选型:
- -p / --parents:dirname可以是一个路径名称。此时若路径中的某些目录上不存在,加上此选项后,系统将自动建立那些不存在的目录,即一次可以建立多个目录。

**注意:**tree 命令是一个递归以树状结构显示指定目的命令,如果没有安装
如果当前用户是root:yum install -y tree (运行这行指令会自动下载)
如果当前用户是普通用户:sudo yum install -y tree (运行这行指令会自动下载)
rmdir 指令
rmdir 是一个与 mkdir 相对应的命令,mkdir 是建立目录,而 rmdir 是删除命令
语法:rmdir -p dirName
**适用对象:**具有当前目录操作权限的所以使用者
**功能:**删除目录
常用选项:
- -p 当子目录被删除后,如果父目录也变成空目录的话,就连带父目录一起删除;指定目录中有不为空的目录,边无法删除。

rm 指令
rm 指令可以同时删除文件或目录
语法:rm 选项 dirName / dir
**适用对象:**所以使用者
**功能:**删除文件或目录
常用选项:
-
-f 即使文件属性为只读(即写保护),亦直接删除
-
-i 删除前逐一询问确定
-
-r 删除目录及其下所有文件

man 指令
语法:man 选项 命令
常用选项:
-
-k 根据关键字搜索联机帮忙
-
num 只在第num 章节查找
-
-a 将所有章节的都显示出来,比如 man printf 它缺省从第1章开始搜索,默认执行 man printf man会从第1章开始一次查找,一旦找到第1章的printf,直接展示,不再往后找,看不到第3章的printf;加上 -a(man -a printf)就会全部章节挨个展示,先弹出第1章的printf手册,你看完按 q键退出当前页面,不会直接结束, 会自动继续查找下一个章节(第3章),弹出第3章的printf,没看完一章按 q键退出,持续循环,所有存在该名字的章节全部看完,才会彻底退出。
man手册分为9章(不同系统可能会有差别):
章节1 用户指令:普通用户可执行的 shell 命令(如:ls, cp, mkdir)
章节2系统调用:内核提供的接口,用户态陷入内核的函数,可查看头文件,参数,返回值(如:open,write,read)
章节3 库函数:C标准库 / 共享库函数,封装了系统调用,不属于内核(如:printf,fread,malloc)
章节4特殊文件:/dev目录下设备文件,驱动相关(如:/dev/null,/dev/tty)
章节5 文件格式:配置文件的语法,字段含义(如:/etc/passwd,/etc/fstab)
章节6 游戏:早期 Unix 小游戏,现代系统基本废弃(如:老式字符游戏)
章节7杂项:宏,全局变量,协议,概念说明,无函数/命令(如:environ 全局变量,signal,regex)
章节8系统管理命令:系统运维命令,大多需要 root 权限(如:ifconfig,mount,iptables)
章节9 内核例程:内核内部函数,供内核开发人员查阅,普通用户基本不用(如:内核源码函数)

cp 指令
语法:cp 选项 源文件或目录 目标文件或目录
**功能:**复制文件或目录
说明:
^ 如果同时指定两个以上的文件或目录,且最后的目的地时一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中
常用选项:
-
-f 或 --force 强行复制文件或目录,不论目的文件或目录是否已经存在
-
-i 或 --interactive 覆盖文件之前先询问用户
-
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理





mv 指令
mv 指令是 move 的缩写,可以用来移动文件或者将文件改名(move(rename))files,经常用来备份文件或者目录
语法:mv 选项 源文件或目录 目录文件或目录
功能:
-
视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其一至一个新的目录中。
-
当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
-
当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
常用选项:
-
-f:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-
-i:若目标文件已将存在时,就会询问是否覆盖



cat 指令
语法:cat 选项 文件
**功能:**查看目标文件的内容
常用选型:
-
-b 对非空输出行编号,空行不做编号
-
-n 对输出的所有行编号(包括空行)
-
-s 压缩多行连续空行,只保留1个空行

more 指令
语法:more 选项
**功能:**分页显示文本内容,适合查看大文件或很长的命令输出,不会一行全部刷屏。和 cat指令一次性输出全部内容不同,more指令一屏一屏展示。
常用选项:
-
-n 指定输出行数
-
q 退出more指令

less 指令
^ less 工具也是对文件或其他输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能及其强大。
^ less 的用法比起 more 更加的有弹性,在 more 的时候,我们并没有办法向前面翻,只能往后面看。
^ 若使用了 less 时,就可以使用 pageup⬆️ pagedown⬇️等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容。
语法:less 选项 文件
**功能:**less 与 more 类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件
常用选项:
-
-i :忽略搜索时的大小写
-
-N: 显示每行的行号
-
/字符串:代表往下搜, 往文件后面、屏幕下方找(如:/hello,回车,从当前光标位置,向后找 hello。找到后光标跳到匹配处。)
-
?字符串 :代表往上搜,往文件开头、屏幕上方找(如:
?hello,回车,从当前光标位置,向前找 hello。) -
n: 重复前一个搜索(与 / 或 ?有关)。如果刚才用
/向下搜的,按 n → 继续往下 找下一个匹配;如果刚才用?向上搜的,按 n → 继续往上找下一个匹配。 -
N :反向重复前一个搜索,和上一次搜索方向相反(与 / 或 ?有关)。如果刚才
/向下搜,按 N → 回头向上 找上一个;如果刚才?向上搜,按 N → 回头向下找下一个。 -
q;quit
head 指令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头只标准输出中,而 tail 就是看档案的结尾。
语法:head 选项 文件
常用选项:
- -n <行数> 显示的行数

tail 指令
tail 指令从指定点开始将文件写到标准输出,使用 tail 命令的 -f 选项可以方便的查阅正在改变的日志文件,tail -f filename 会把 filename 里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。
语法:tail 选项 文件
**功能:**用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件
常用选项:
-
-f 循环读取
-
-n <行数> 显示行数

date 指令
指定格式显示时间:date + %Y:%m:%d
用法:date OPTION +FORMAT
在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,常用标记:
-
%H:小时
-
%M:分钟
-
%S:秒
-
%X:相当于 %H:%M:%S
-
%d:日
-
%m:月
-
%Y:完整月份
-
%F:相当于 %Y-%m-%d
在设定时间方面:
-
date -s :设置当前时间,只有 root 权限才能设置,其他只能查看
-
date -s 20060121,这条命令只给了年月日,没有给几点几分几秒,系统不知道你要几点,就默认把时分秒设为 00:00:00
-
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″ :这样可以设置全部时间
时间戳:
-
时间 -> 时间戳:date + %s
-
时间戳 -> 时间:date -d@1508749502
-
Unix 时间戳是从 1970 年 1 月 1 日开始所经过的秒数,不考虑闰秒

cal 指令
cal 指令可以用来显示公历日历。公历是现在国际通用的历法,又称格列历,通称阳历。"阳历"又名"太阳历",系以地球绕行太阳一周为一年,为西方各国所通用,故又名"西历"。
命名格式:cal 选项 年份
**功能:**用于查看日历等时间信息,如只有一个参数,则表示年份,如有两个参数,则表示月份和年份
常用选项:
-
-3 显示系统前一个月,当前月,下一个月的月历
-
-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数
-
-y 显示当前年份的日历

find 指令
语法:find pathname -options
**功能:**用于在文件树中查找文件,并做出相应的处理(可能访问磁盘)
常用选项:
-
-name 按照文件名查找文件
-
-type 按文件类型查找(f:普通文件;d:目录;l:软链接)
-
-size 按大小
-
-mtime 按时间

which 指令
功能:搜索系统指定的指令

whereis 指令
功能:用于找到程序的源,二进制或手册

alias 指令
功能:设置命令的别名

grep 指令
语法:grep 选项 搜寻字符串 文件
**功能:**在文件中搜索字符串,将找到的行打印出来
常用选项:
-
-i:忽略大小写的不同,将大小写视为相同
-
-n:顺便输出行号
-
-v:反向选择,亦即显示出没有 "搜索字符串" 内容的那一行

zip / unzip 指令
语法:zip 压缩文件 . zip 目录或文件
**功能:**将目录或文件压缩成 zip 格式
常用选项:
- -r:递归处理,将指定目录下的所有文件和子目录一并处理

tar 指令
语法:tar 选项 文件与目录
常用选项:
-
-c:建立一个压缩文件的参数指令
-
-x:解开一个压缩文件的参数指令
-
-t:查看 terfile 里面的文件
-
-z:是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-
-j:是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-
-v:压缩的过程显示文件!这个常用,但不建议用在背景执行过程!
-
-f:使用档名,请留意,在 f 之后要立即接挡位喔!不要在加参数!
-
-C:解压到指定目录
bc 指令
bc = Basic Calculator ,任意精度计算器语言,Linux 下常用,直接浮点数,高精度计算,进制转换,Shell 脚本里做小数运算很常用。
语法:选项 文件
常用选项:
-
-l:加载数学库(三角函数,ln,e等),默认 scale = 20
-
-q:静默模式,不输出版本版权信息
-
-i:强制交互模式
-
-v:输出版本

重要的几个热键 Tab , Ctrl - c, Ctrl -d
-
Tan 按键:具有命令补全和档案补齐的功能
-
Ctrl -c 按键:让当前的程序停顿
-
Ctrl -d 按键:通常代表着:键盘输入结束的意思:另外也可以用来取代 exit
关机
语法: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;
其他命令: tar,unzip,gunzip,unarj,mtool,man,unendcode,uudecode。
Shell 命令以及运行原理
Linux 严格意义上说的是一个操作系统,我们称之为 "核心(kernel)",但我们一般用户,不能直接使用kernel。而是同 kernel 的 "外壳" 程序,也就是所谓的 shell,来与 kernel 沟通。如何理解,为什么不能直接使用 kernel?
从技术角度,Shell 的最简单定义:命令行解释器主要包含:
-
将使用者的命令翻译给核心(kernel)处理
-
同时,将核心的处理结果翻译给使用者
对比 windows GUI,我们操作 windows 不是直接操作 windows 内核,而是通过图形接口,点击,从而完成我们的操作
Linux 权限的概念
Linux 下有两种用户:超级用户(root),普通用户
**^ 超级用户:**可以在 linux 系统下做任何事情,不受限制
**^ 普通用户:**在 linux 下做有限的事情
^ 超级用户的命令提示符是 " # ",普通用户的命令提示符是 " $ "
语法:su 用户名
**功能:**切换用户
例如:要从 root 用户切换到普通用户 user,则使用 su user;用从普通用户user切换到 root 用户则使用 su root(root可以省略),此时系统会提示输入 root 用户的口令。