本章目标
学习并且熟悉Linux操作系统下的一些基础指令
能够在Linux下进行简单的编程
基础指令
ls指令
语法规则
ls [选项] [目录/文件]
作用
列出该目录下的所有文件或者该文件的文件信息
常用选项:
-a //列出目录下的所有文件,包括隐藏文件 -d //将目录像文件一样显示目录名不会展示该目录下的文件 -i //输出文件i节点的索引信息 -k //以k字节的形式表示文件大小 -l //列出文件的详细信息 -t //以时间排序 -R //列出所有子目录下的文件(递归)
举例:
ls -a .
ls -d aaa
ls -i .
什么是i节点的索引信息呢?
简单讲就是Linux下的保存标记文件的一种方式,通过该索引信息操作系统内部组织文件!
ls -alk .
ls -tl以时间降序排序!
ls -R aaa
ls -l可以简写成 ll
pwd指令
语法
pwd
1
作用
显示用户当前所在目录
举例
pwd
cd指令
语法
cd 目录名
作用
改变工作目录,将当前用户所在目录,改变到指定目录!
举例
cd ..返回上级目录!
cd 绝对路径
cd 相对路径
相对路径
..表示上一级路径
.表示当前路径
touch指令
语法
touch [选项][文件名]
1
常用选项
-a //或--time=atime或--time=access或--time=use只更改存取时间。 -d //使用指定的日期时间,而非现在的时间。 -f //此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。 -m //或--time=mtime或--time=modify 只更改变动时间。 -r //把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。 -t //使用指定的日期时间,而非现在的时间
作用
touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件!(人话就是创建一个文件)
举例
touch test.c创建文件
touch -m test.c 更改文件时间
mkdir指令
语法
mkdir [选项][目录名]
1
作用
在当前目录下创建一个目录!
常用选项
-p // --parents 可以是一个路径名称! //如果有些目录已经存在就直接创建不存在目录,如果都不存在就直接创建这个路径目录!
举例
mkdir ccc
在当前目录下创建一个名为ccc的目录!
mkdir -p ddd/eee/fff
在当前目录下创建一个ddd/eee/fff的多级目录!
rmdir指令
语法
rmdir [-p][目录名]
常用选项
-p //指定一整条路径,删除一个路径(里面无文件!) //注意: //当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除
作用
删除当前目录下的目录文件(注意该目录下不能有文件,否则删除失败!)
举例
rmdir eee
rmdir -p eee
rmdir只能删除空目录(里面不能包含文件)
rmdir ccc 删除当前目录下的ccc目录
rmdir -p ddd/eee/fff删除这个多级目录
rm指令
语法
rm [-f/-i/-r/-v][文件名/路径名]
作用
删除文件或者目录!
常用选项
-f //忽略文件只读权限,直接删除! -i //删除前逐一询问确认 -r //删除目录及其下的所有文件
rm -r a
将a目录下的所有可删除文件删除!
rm -rf bbb
将bbb下所有文件(包括只读文件)删除!
删除的终极武器!!!
慎用!!!
man指令
语法
man [选项][命令]
作用
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man
常用选项
-k 根据关键字搜索联机帮助
num 只在第num章节找
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下
q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
解释一下,面手册分为8章
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
举例
man printf
查看printf命令
man -k mk
联机查找mk开头的命令!
cp指令
语法
cp [选项] [源目录/文件] [目标目录/文件]
作用
复制文件或目录!
注意:
cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则
它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息!
通俗讲就是目录/文件可以复制到目录中,而目录不能复制到文件中!
常用选项
-f //或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在 -i //或 --interactive 覆盖文件之前先询问用户 -r //递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理 -R //或 --recursive递归处理,将指定目录下的文件及子目录一并处理!
举例
cp -rf ggg eee
强制将ggg目录复制到eee目录下!
cp -i t1.txt fff/test.c
将t1.txt文件复制到 fff/test.c中,并且覆盖!
mv指令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
语法
mv [选项] [源文件/目录] [目标文件/目录]
作用
视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中
常用选项
-f //:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖 -i //:若目标文件 (destination) 已经存在时,就会询问是否覆盖!
举例
rm t1.txt fff/test.c
将t1.txt文件移动(重写覆盖)到test.c
rm test1.c eee/ggg
将test1.c文件移动到eee/ggg目录下!
cat指令
语法
cat [选项][文件名]
作用
查看文件内容!
常用选项
-b //对非空输出行标号(不计空行标号) -n //输出所有行标号 -s //不输出多行空行(多行空行就输出一行空行标号)
举例
cat -b eee/test.c
cat -n eee/test.c
V
tac指令
看这个指令是不是有点眼熟,这不是刚刚cat倒过来嘛!
确实如此
这个指令的作用就是逆序输出目标文件内容!
tac没有选项!
tac eee/test.c
date指令
date 指定格式显示时间: date +%Y:%m:%d
date 用法:date [OPTION]… [+FORMAT]
1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
%H : 小时(00..23) %M : 分钟(00..59) %S : 秒(00..61) %X : 相当于 %H:%M:%S %x : 相当于 %m/%d/%Y %d : 日 (01..31) %m : 月份 (01..12) %Y : 完整年份 (0000..9999) %F : 相当于 %Y-%m-%d
2.在设定时间方面:
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′′ //这样可以设置全部时间
3.时间戳
时间->时间戳
date +%s
时间戳->时间
date +%Y:%m:%d -d @1599642565
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
top指令
Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器!
常用选项
-u<用户名> //指定用户名 -p<进程号> //指定进程 -n<次数> //循环显示的次数
查看进程id为2的进程!
shutdown - 关机
语法
shutdown [选项]
常见选项
-h //将系统的服务停掉后,立即关机 -r //将系统的服务停掉后,立即重启 -t sec //sec指定秒数,过sec秒就关机 -c //取消关机操作!
如果是虚拟机就可以使用shutdown指令!
云服务器不建议使用,我们可以使用快捷键ctrl+d退出或者exit指令退出!
30秒后关机!
取消关机!
重要的几个快捷键
[Tab]按键—具有『命令补全』和『档案补齐』的功能
[Ctrl]-c按键—让当前的程序『停掉』
[Ctrl]-d按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit
ca + Tab键
查看所有以 ca开头的命令!
通过Ctrl+c 停掉当前程序!
这里的Ctrl+c并不是Windows下的复制了!!!
Linux下的复制粘贴操作!
复制: Ctrl + insert
粘贴:Shift+insert