常见指令以及权限理解
命令格式:
command [-options] parameter1 parameter1
命令 选项 参数1 参数2
1.
command
为命令名称,例如变化目录的cd
等2.中括号
[ ]
实际在命令中是不存在的,这个中括号代表可选,通常选项前面会添加一个符号-
,比如ls
或者ls-a
。3.命令、选项、参数等这几个东西中间用空格来区分,无论空几格,shell一律视为一个空格
4.Linux当中大写和小写是完全不一样的比如
cd
和CD
。
ls指令
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
-a 列出目录下的所有文件,包括以 . 开头的隐含文件(常用)
-d 仅列出目录本身,而不是列出目录内的文件数据(常用)
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息,包含文件的属性与权限等数据(常用)
-n 用数字的 UID,GID 代替名称。(介绍 UID, GID)
-f 直接列出结果,而不进行排序(ls默认会以文件名进行排序)
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别);没有代表文本文件
-r 将排序结果反向输出,例如:原本文件名由小到大,反向则为由大到小
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-1 一行只输出一个文件。
ls
就是输出当前目录下的文件(不包括隐藏的文件)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NoaQsqOT-1692625876259)(https://pic1.imgdb.cn/item/646109840d2dde5777b083cb.png)]
如果要查看隐藏的文件,可以使用
-a
选项来查看。
先创建一个隐藏文件:
可以看到ls
是看不到创建的yincang.txt
文件的,但如果使用ls -a
。
这样就可以看到隐藏的文件了。
如果要查看文件的详细信息的话,可以使用
ls -l
,也可以简写为ll
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oMTyODJU-1692625876260)(https://pic1.imgdb.cn/item/64610cb40d2dde5777b961af.png)]
如果还要看隐藏文件的详细信息可以写为
ls -la
或者ls -al
都是可以的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6DnyPfKl-1692625876261)(https://pic1.imgdb.cn/item/64610d200d2dde5777ba96c0.png)]
指定目录只需要在命令后面加上目录的名字就行。
如果我只想查看
108
这个目录的信息而不是108这个目录下文件的信息可以使用-d
命令
ls -ld
pwd命令
**功能:**pwd命令主要用于查看用户当前所在的目录。
cd指令
**功能:**改变工作目录,将当前工作目录改变到指定的目录下
cd.
:当前目录
cd ..
: 返回上级目录
cd /home/litao/linux/
: 绝对路径
cd ../day02/
: 相对路径
cd ~
:进入用户家(home)目录
cd -
:返回上一次访问的目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HXlIadWG-1692625876261)(https://pic1.imgdb.cn/item/646110d60d2dde5777c6875d.png)]
可以看到.
和..
都是目录文件,目录文件就可以用cd
打开,cd ..
是返回上一行,那么cd .
是什么呢?
可以看到输入cd .
之后目录没有发生任何改变,其实.
是用于定位当前目录的,作用场景一般在运行某个C语言程序的时候用于定位当前目录。
gcc test.c ./1.out
touch指令
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
-a 或–time=atime或–time=access或–time=use只更改存取时间。
-c 或–no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或–time=mtime或–time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间。
mkdir指令
功能:在当前目录下创建一个名为 “dirname”的目录
-p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立
好那些尚不存在的目录,即一次可以建立多个目录;
mkdir –p d/d1/d2/d3/d4/d5 : 递归建立多个目录
rmdir和rm指令
rmdir是一个与 mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
但是rmdir只能删除一个空的文件夹或者单个文件。
rm命令可以同时删除非空文件或目录
-f 即使文件属性为只读(即写保护),亦直接删除,强制删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件,递归删除
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-doKnpknH-1692625876262)(https://pic1.imgdb.cn/item/646113b30d2dde5777cd2eff.png)]
如果直接用rm -r
去删除的话会一个一个问是否要删除,因为r
代表的是递归,如果不想出现是否确认删除的提示可以添加一个参数-f
这样就删除成功了。
nano命令
nano相当于一个记事本
按
Ctrl+x
保存退出。
gcc test.c
编译文件。
./a.out
运行程序。
stat命令
查看文件所有的属性
cp指令
语法:cp [选项] 源文件或目录 目标文件或目录
功能:复制文件或目录
常用选项:
-f | 强制复制文件或目录、无论目的文件、目录是否已经存在 |
-i | 覆盖文件之前先询问用户 |
-r | 递归处理、将指定目录下的所有文件全部处理 |
-R | 递归处理 |
创建一个文件夹,如下图所示:
然后通过命名copy一份test到上一级目录。
mv指令
mv即move,可以用来移动文件或者为文件改名(当移动的目的文件不存在的时候就会将源文件的名字改为目的文件名)。
语法:mv [选项] 源文件 目标文件
常用选项:
-f | 强制,如果目标文件已经存在,不经过询问,直接覆盖 |
-i | 如果目标文件已经存在,需要经过询问 |
先利用mv来移动文件吧,先把test文件删掉。
然后进行移除。
接下来使用mv命令进行修改文件名字。
cat
语法:cat [选项] [文件]
功能:查看目标文件的内容
常用选项:
-n | 对输出的所有行进行编号 |
-b | 对非空的所有行进行编号 |
-s | 不输出多行空格 |
显示文本内容:
编号:
对非空编号:
不输出多行空格:
可以看到空格只有一行了。
more指令
语法:more [选项] [文件]
功能:more命令,类似于cat
常用选项:
-n | 输出所有行对应的编号 |
-q | 退出more |
less命令
less相对于more来说,less可以上下翻页,可以搜索,可以对文件进行分页显示。
语法:less [参数] 文件
选项:
-i | 忽略大小写进行搜索 |
-N | 显示每行的行号 |
/字符串 | 向下搜索“字符串” |
?字符串 | 向上搜索“字符串” |
n | 重复前一个搜索 |
N | 反向重复前一个搜索 |
q | quit |
可以通过/字符串
来查找这个字符串,下图为\500
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hwlvuwAb-1692625876264)(https://pic.imgdb.cn/item/64e361d2661c6c8e549761cd.png)]
head指令
语法:head [参数] [文件]
功能:默认查看前10行内容,如果不足10行,就显示全部内容。
选项:
-f | 循环读取 |
-n | 显示行数 |
tail指令
语法:tail [必要参数] [选择参数] [文件]
功能:和head一样,不过是显示末尾的内容。
-f | 循环读取 |
-n | 显示行数 |
有一个文件共有100行内容,请取出第50行内容。
head -50 abc.txt | tail -1
sort指令
功能:排序
常用参数:
-r | 逆序 |
uniq | 相邻去重 |
逆序
去重
find指令
功能:查找文件
常用选项:
-name | 按照文件名查找文件 |
zip/unzip指令
语法:zip 压缩文件.zip 目录/文件名
功能:压缩为zip格式
常用选项:
-r | 递归处理目录/文件下所有的文件 |
-d | 选择解压目录 |
tar指令
tar -czf dst src
tar -xzf dst src//解压
alias指令
alias myls='ls -a -l -i -n' unalias myls//删除别名
>test.c//清空文件内容
重定向
echo "abd"
写入到显示器文件。
echo "abcd" >a.txt
写入到a.txt
文件,输出重定向,覆盖式写入,如果目标文件不存在,会自动创建。
echo "abcd" >>a.txt
,追加重定向,不断增加新内容,不会覆盖原内容。
cat < a.txt
,输出重定向,打印内容。