一:ls指令
ls不带选项就是显示当前目录下存在的子目录和文件
常用选项:
(1). ls -l
功能: 列出文件的详细信息.
可以简写为ll
补充 : 文件=文件内容+文件属性
名字前所显示的就是文件的一些属性
(2). ls -a
功能: 列出目录下的所有文件,包括以 . 开头的隐含文件
-开头表示普通文件
d开头表示目录
.开头表示隐藏文件,所以我们在创建文件时在文件名前加个.就表示创建了一个隐藏文件
补充:
在Linux的任何一个目录里都存在两个隐藏文件,一个是 . 另一个是 ..
- 一个点的表示当前路径,方便我们找到当前目录的文件(可执行文件)
- 两个点表示上级路径,方便路径的回退,可以用它回退到上一级
(3). ls -d
功能: -d 将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
(4). ls -1
功能: 一行只输出一个文件
二:pwd指令
三:cd指令
cd .. : 返回上级目录cd /home/user/linux/ : 绝对路径cd ../day02/ : 相对路径cd ~ :进入用户家目cd - :返回最近访问目录
- 绝对路径: 从根目录开始定位到指定位置
- 相对路径: 以当前目录为参考点,进行定位
- 家目录:
对于root账号: 默认家目录为/root root表示超级管理员账号
对于普通用户账号:/home/XXX XXX为新建用户名
四:touch命令
五:mkdir指令
六:rmdir指令
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法: rmdir [目录名]
功能: 删除空目录
选项:
rmdir -p [目录名]
七:rm指令
(1). rm -f
f 表示force强制的,不需要询问直接给我删掉这个文件
(2). rm -r
-r表示递归删除,删除目录时要加-r选项,不然不能删,但是这样还是会被提问是否真的删除
所以当要删除一个目录时直接:
rm -rf
表示强制递归删除,这个指令也是最实用的
八:man指令
1 是普通的命令2 是系统调用 , 如 open,write 之类的 ( 通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)3 是库函数 , 如 printf,fread4 是特殊文件 , 也就是 /dev 下的各种设备文件5 是指文件的格式 , 比如 passwd, 就会说明这个文件中各个字段的含义6 是给游戏留的 , 由各个游戏自己定义7 是附件还有一些变量 , 比如向 environ 这种全局变量在这里就有说明8 是系统管理用的命令 , 这些命令只能由 root 使用 , 如 ifconfig
那么这些章节该怎么用呢?
比如我想在man手册中搜索C语言中的printf函数,那应该在第3章中查找
指令: man 3 printf
ps.如果不加章节会默认从第一章从头往后搜,但是碰到叫printf的指令就会停止搜索,搜索到的不一定是第三章中的printf
九:cp指令
-f 或 --force 强行复制文件或目录,不论目的文件或目录是否已经存在-i 或 --interactive 覆盖文件之前先询问用户-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理-R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理
举例:
当前目录中只存在一个叫test.c的文件
复制出一个文件并且重命名为了data
cp src dst
其中src和dst都可以是绝对路径或者相对路径
比如我当前在/root目录下,我想把其子目录mydir目录中的data文件复制到当前目录下
cp ./mydir/data .
十:mv指令
功能:
(1).重命名 mv 文件名 新的名字
(2)移动文件 mv 文件名 新的路径
将文件移动到新的路径下
具体是实现哪个功能要看第二个参数,如果是一个文件名的话就是重命名,如果是一个目录或者路径的话就是移动文件
选项:
-f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
十一:cat指令
常用选项:
-b 对非空输出行编号-n 对输出的所有行编号-s 不输出多行空行
补充三:追加重定向
加两个大于号可以在文件内容后面继续追加内容,相当于c语言中的以'a'方式打开文件
补充四:输入重定向
cat指令后面什么都不加的话,默认是从键盘读取数据,再把数据显示到屏幕上
如果加一个 <文件名的话,就会从这个文件中读取数据,在显示在屏幕上,这就叫输入重定向
可以发现这样也能是实现cat 文件名的效果,但是两者的实现方法是完全不同的
十二:more指令
cat指令虽然可以查看文件内容,但是如果用它查看大文件时,会从头开始迅速显示到文件末尾,并且不能翻阅查看,more指令比cat指令更人性化一点,more 文件后,它会将文件从开开始铺满屏幕,可以按回车向下逐行阅读,缺点是不能向上翻阅查看
十三:less指令
less指令是最适合翻阅大文件的指令,它可以通过上下键上下翻阅
十四:head指令
十五:tail指令
-n<行数> 显示的行数
补充:
通过head可以查看文件开头的内容,通过tail可以查看文件末尾的内容,那如何查看文件中间的内容呢?这里就要讲解一下管道:将数据从一端运输到另一端
比如有一个大文件有一万行,想查看9000行到9010行的内容怎么办?
head -9010 文件名 | tail -10
解读:
head -9010 文件名将文件前9010行内容筛选出来了,|就相当于管道,tail -10,查看运输过来的数据的后十行
十六:和时间相关的指令
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
十七:cal指令
-3 显示系统前一个月,当前月,下一个月的月历-j 显示在当年中的第几天(一年日期按天算,从 1 月 1 号算起,默认显示当前月在一年中的天数)-y 显示当前年份的日历
十八: Find指令
十九:grep指令
语法: grep [选项] 搜寻字符串文件
- i :忽略大小写的不同,所以大小写视为相同-n :顺便输出行号-v :反向选择,亦即显示出没有 ' 搜寻字符串 ' 内容的那一行
在test.txt文件中储存了如下信息
现在想搜索除带bit的数据,并显示行号,不区分大小写