目录
指令就是可执行程序:
1.先要在系统中查找对应指令
2.指令一定是在系统的某个位置存在的,即指令是在系统中某个特定的路径下存在的
3.安装软件就是将可执行程序移动到系统的搜索路径下
4.指令就是可执行程序,和我们自己写的编译好的程序本质上没有任何区别
5.为了方便可以对指令进行重命名
ls指令:
语法:ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息
1. ls不指定目录,则显示当前文件夹下的目录:
2. 指定文件路径会显示你所指定的目录下所包含的文件:
3. -a选项,会显示隐藏文件目录:
4.-l选项会显示目录的详细信息,包括拥有者权限,所属组权限,其他用户权限和最近修改时间,文件大小,文件类型等:
pwd指令:
功能:显示用户当前所在的目录
没啥好说的,就是显示你当前所在的文件夹路径:
cd指令:
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。
在一个目录下的子目录中,有两个被隐藏的目录:
第一个 " . "表示的就是当前lesson3这个目录
第二个" .. "表示的是lesson3的上一级目录
我们cd ..试一下:
cd后还可以跟绝对或者相对路径:
相对路径:
touch指令:
touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件
语法:touch [选项]... 文件...
1.新建一个文件
当前目录下的文件:
接下来使用touch指令新建一个文件:
mkdir指令:
在当前目录下新建一个目录.
语法: mkdir [选项] dirname
1.新建目录:
当前目录下的内容:
使用mkdir新建一个目录:
2. -p 选项: 递归式的创建目录
mkdir不加任何指令只能在当前目录下新增一个目录,-p选项可以创建 一连串的目录
用mkdir创建一连串的目录会失败:
加上-p选项:
rmdir指令:
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
1.用rmdir删除上个指令新建的目录:
text目录不为空,text/text1/text2/text2,rmdir指令只能删除空目录.
我们删除text2目录,子目录是一个空目录:
rm指令:
rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
1.rm不加任何选项可以删除当前目录下的空目录和普通文件
2.-r 选项可以删除一个非空目录,即删除指定目录以及该目录下的所有子目录
man指令:
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。man就是来获取帮助手册的指令.
语法: man [选项] 命令
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕
解释一下,man手册分为8章
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
我们man一下ls:
按下q退出.
mv 指令:
![](https://i-blog.csdnimg.cn/blog_migrate/290c80a94d5dbd7d556db164c836642d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/978ad31c2459fcb840c363e3160f2e51.png)
![](https://i-blog.csdnimg.cn/blog_migrate/54788603e16c6d0acbadb54fbd40053e.png)
3.将源文件(目录)移动到当前目录下的一个目标文件(目录)相当于重命名
4.将源目录移动到目标目录下:
echo 指令:
echo ...
Liunx下一切都是文件,软硬件设备,磁盘文件.例如显示器,在Liunx系统下,显示器也可以看成一个文件.
让显示器打印的时候相当于向显示器这个抽象文件中写入,从键盘读取的时候时候相当于从键盘这个抽象文件中fread数据
echo 指令相当于默认向显示器文件中写入文件,>重定向之后即更改它的默认值
echo指令的特点是向文件写入的时候是覆盖写,覆盖文件原有的内容(先清空,后写入)
>>追加重定向,在文件的结尾处进行写入
cat 后无文件,默认从键盘读取,从屏幕输出.
<输入重定向,本来是从键盘读取输入,重定向后可以从文件读取
将echo后面的内容输出在屏幕
echo指令一般配合>重定向符使用,echo 不加重定向符默认将内容输出到屏幕,>后可以加上文件名,表示将内容写入该文件:
cat:
语法:cat [选项][文件]
功能: 查看目标文件的内容
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
-n选项对显示的内容按行编号,包括空行:
-b选项只对非空行编号:
-s选项,当显示的内容中有连续的空行时,只显示一行:
more指令:
语法:more [选项][文件]
功能:more命令,功能类似 cat
cat只能查看内容相对较短的文件,more可以查看相对内容相对较多内容的文件,在当前目录下有一个log.txt文件,其中有10000行的文本数据:
用cat打开只能观察到文件中最后n行内容,用more则可以从头开始按页查看,an回车可以向下查看,但是more指令不可以向上查看:
显示到500行,这里-500选项表示显示到第500行:
less指令:
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜
用less查看刚才的文件,打开后按住向上或者向下的方向键就可以实现文本向上或者向下查看,按q,然后回车退出:
同时还可以进行文本搜索,底行输入/,然后跟上要搜索的内容:
-N显示行号:
head,tail指令:
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾.
语法: head [参数]... [文件]...
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行
-n<行数> 显示的行数
同样是适用于大文本的查看:
head:
显示前50行的内容:
tail:
date指令:
date 指定格式显示时间: date +%Y:%m:%d
date 用法:date [OPTION]... [+FORMAT]
1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
%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
显示年月日和时分秒:
格式之间-表示分隔符,自定义.
2.设置时间 date -s,只有root权限才能设置,以下给出时间设置的格式:
date -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,获取时间戳:
网络实现全球通信,由于时差存在,不同时区的终端显示的时间不同,为了在传递信息时对接时间,指定了格林威治时间为主,也就是零时区,各个国家和地区根据划分的时区在格林威治时间上进行调整.
可以将时间戳转换为年月日的日期格式:
同样可以指定时间格式:
Cal指令:
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”
命令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:
-3 显示系统前一个月,当前月,下一个月的月历
-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
-y 显示当前年份的日历
-j显示当年的第几天:
-3显示前一个月,当前月和下一个月的日历:
find指令:
Linux下find命令在目录结构中搜索文件,并执行指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系(NFS),find命令在该文件系统中同样有效,只你具有相应的权限。在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)
语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项:
-name 按照文件名查找文件
~代表家目录,该指令表示在家目录下寻找test.c文件.
find指令会在指定的文件目录中查找指定文件名的文件,真的是在硬盘中查找.
which是在特定的指令目录(/usr/bin)下搜索
whereis 则是在系统安装指令的目录下进行搜索.包括一些相关的可执行程序,压缩包以及安装包.
grep指令:
行文本过滤工具,将文件打开,并按行对文件中的数据进行读取并打印,如果打印的行中并不包搜寻字符串中的内容直接丢弃.
语法: grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来
常用选项:
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
-n输出行号,这里的行号是符合条件的行在文件中的行数:
-v则是将不符合匹配条件的内容按行显示出来.
tar指令:
tar指令是liunx中的打包压缩指令,将文件打包压缩.打包的意义在于,将数量较多的文件,例如100个文件由A发给B,如果不打包,100个文件依次发,同时在文件的网络传输过程中,可能会出现文件的丢失,100个文件发出只接受到了99个文件,丢失的文件需要经过99次对比才知道丢失哪个文件然后重发,将文件打包成一个文件,要么全部丢失重发,要么一次全部到位.
而压缩则是通过特定的算法将文件内容重新编码让文件中的字节数减少,解压的时候再按照特定的算法还原,压缩文件后体积变小,网络传输较快.
语法: tar [-cxtzjvf] 文件与目录 .... 参数
选项:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录
这里介绍tar指令的三个选项组合:
1.打包压缩:tar czf 文件名
将指定的文件压缩:
2.查看压缩包: tar tzf 文件名
我们先看下我们打包压缩的lesson3文件夹下面的文件:
查看:
tzf选项只是查看,并没有对压缩包进行解压.
3.解压:tar xzf 文件名
bc指令:
liunx中用来进行浮点数计算的指令.
uname –r指令:
语法:uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息
关机:
语法:shutdown [选项] **
常见选项:
-h:将系统服务关停后立即关机
-r:将系统服务关停后重新启动
-t sec: -t后面的sec用秒数替换,即sec秒后关机.
重要的几个热键[Tab],[ctrl]-c, [ctrl]-d:
[Tab]按键---具有『命令补全』和『档案补齐』的功能
[Ctrl]-c按键---让当前的程序『停掉』
[Ctrl]-d按键---通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit