Linux之旅:常用的指令,热键和权限管理

目录

前言

[1. Linux指令](#1. Linux指令)

[(1) ls](#(1) ls)

[(2) pwd 和 cd](#(2) pwd 和 cd)

[(3)touch 和 mkdir](#(3)touch 和 mkdir)

[(4) rmdir 和 rm](#(4) rmdir 和 rm)

(5)cp

(6)mv

(7)man

(8)cat,more和less

[(9)head 和 tail](#(9)head 和 tail)

(10)grep

(11)zip和unzip

(12)tar

[1.2 热键](#1.2 热键)

[2. 权限管理](#2. 权限管理)

[2.1 文件访问者](#2.1 文件访问者)

[2.1 文件属性,文件类型和访问权限](#2.1 文件属性,文件类型和访问权限)

[2.3 权限值的表示方法](#2.3 权限值的表示方法)

[2.4 设置文件访问权限](#2.4 设置文件访问权限)

[2.5 粘滞位](#2.5 粘滞位)

总结


前言

本文将开启我的Linux之旅,主要讲述Linux中常用的指令,热键和权限管理。内容丰富,干货满满,适合新手学习!


1. Linux指令

(1) ls

作用:对于目录,列举出目录下的所有子目录与文件。对于文件,列举出文件名及其他信息。

用法:ls [目录或文件] [选项] (可以颠倒)

选项:

  • -a 列举出目录下的所有文件,包括以.开头的隐含文件。
  • -d 将目录像文件一样显示,而不是显示其下的文件。
  • -l 列出文件的详细信息。

不加选项,显示当前目录下的文件与目录。

加上-l选项,显示详细信息,其中ll是该命令的缩写。

不同选项可以组合,下面显示了隐藏文件。

(2) pwd 和 cd

pwd

  • 作用:可以显示用户当前所在目录。
  • 无选项。

cd

作用:进入指定目录或文件。

用法:cd + [目录名]

  • 路径分绝对路径和相对路径。其中.代表当前目录,..代表上级目录。一开始使用的是绝对路径,第二个使用的是相对路径。
  • ~代表家目录,-会返回上次所在目录。一开始在doc目录下,cd+~到普通用户名目录,再cd+-返回doc目录。

(3)touch 和 mkdir

touch

作用:可以用来创建一个新文件。

用法:touch + [文件名]

mkdir

作用:可以在当前目录下创建一个新目录。

用法:mkdir + [目录名]

  • 选项:-p 后面可以跟路径,递归创建多个目录。当前目录下,有一个file.txt文件和doc1目录。使用mkdir加上-p选项,递归创建目录。通过tree指令,查看当前目录树状展开图,可以发现递归创建多级目录成功。

(4) rmdir 和 rm

rmdir跟mkdir是相对的,是remove directory的缩写,意思是删除目录。

作用:删除空目录

用法:rmdir + [目录名]

rm是remove的缩写,删除的意思。

作用:删除文件或者目录

用法:rm +[选项] + [文件或目录] (选项也可以放在文件或目录后面)

  • -r选项用来递归删除目录内部所有内容。当前目录下,有dir1/dir2/dir3这个路径,正常使用rm是无法删除一个目录的,需要加上-r选项,才能删除干净。
  • -f选项是force的缩写,强制删除。在root账号下,删除时通常会询问,如果不想弹出询问,可带上-f选项。

(5)cp

cp是copy的缩写。

作用:复制文件或者目录

用法:cp + [源文件或目录] + [目标文件或目录]

  • file.txt文件中有五行p字符。通过cp指令复制到hello.txt文件中,使用cat指令可以打印文件内容。
  • -r选项可以递归赋值某个目录内的所有内容,操作如下。

(6)mv

mv是move的缩写,可以移动文件和重命名文件。

用法:mv + [源文件或目录] + [目标文件或目录]

作用:

  • 当第二个参数不是路径,是一个名称时,可以给源文件或目录进行重命名。
  • 当第二个参数是已存在的路径(相对路径和绝对路径都可以),源文件或者目录可以有多个,mv指令会将指定的文件或目录全部移动到指定路径下。

我们通过mv指令,将dir1目录和big.txt文件移动到doc目录下。

(7)man

Linux的命令有许多选项,我们不可能全部记住,man指令就是用来查找内容。

用法:man + [选项] +[指令]

通过man指令,查询ls指令的详细说明。

在man指令后加上数字,指定去那一部分查找信息。

  • 第1节:用户命令(User Commands)
  • 第2节:系统调用(System Calls)
  • 第3节:库函数(Library Calls)
  • 第4节:特殊文件(Special Files)
  • 第5节:文件格式和约定(File Formats and Conventions)
  • 第6节:游戏和娱乐(Games et. Al.)
  • 第7节:宏命令和约定(Miscellaneous)
  • 第8节:系统管理员命令(System Administration)

(8)cat,more和less

cat用来查看指定文件内容

用法:cat + [选项] + [文件名]

  • -n选项表示显示行号。
  • -b选项,对于非空行输出行号。
  • -s选型不输出多行空行。本来有两行空行,现在只输出一行。

more也是查看指定文件内容。

用法:more + [选项] + [文件名]

less指令十分强大,是more命令的改进版。

  • 分页显示less允许您一次查看文本文件的一部分,而不是一次性加载整个文件到内存,这对于查看大文件非常有用。
  • 随机访问:您可以向前或向后滚动文件,并且可以跳转到文件的特定位置。
  • 搜索功能:可以在文件中搜索特定的文本字符串。

输入指令时

  • -i 忽略搜索时的大小写
  • -N 显示每行的行号

进入less内部后

  • /:进入搜索模式,输入要搜索的字符串后按回车键。
  • n:跳转到下一个搜索结果。
  • N:跳转到上一个搜索结果。
  • q:退出less。

(9)head 和 tail

head用来实现文件开头内容到标准输出上,默认head打印指定文件前十行

用法:head + [选项] + [文件]

  • -n后面紧跟行号,表示需要显示的行数。

tail顾名思义是显示文件的尾部内容到标准输出,并且不断刷新,是你看到最新文件的内容。

用法:tail + [选项] + [文件]

  • -f 循环读取
  • -n后紧跟行号,表示读取的行数。

读取指定文件后10行的内容。

在big.txt中有1000行内容,怎么读取到到第100行的内容?

  • 方法一:先使用head读取前100行内容到一个临时文件中,使用''>''符号,这个操作叫做重定向。再从临时文件中,使用tail指令读取最后一行。
  • 方法二:使用"|"符号,叫做管道。把head和tail指令直接连接在一起,管道会把head指定内容存储起来,方便后面指令的使用。

(10)grep

grep可以在文件中搜索字符串,并打印出字符串所在行。

用法:grep + [选项] + [搜索字符串] + [文件]

  • -i选项,可以忽略字母大小写。file文件中有6行内容,查找"a"时,不管是大写还是小写都会显示。
  • -n选项,会显示匹配内容所在的行号。
  • -v选项会显示不匹配的内容。
  • -c选项会计算匹配内容的行数,并显示出来。

(11)zip和unzip

zip指令时将目录或者文件压缩zip格式,unzip就是解压zip格式的文件。

用法:zip + [选项] + [压缩后的文件名] + [目标文件或目录]

  • -r选项,递归处理,将指定目录下的所有文件和子目录一并处理。在当前目录下,doc目录中有许多文件和子目录,我们对他进行压缩。
  • -d选项是解压到指定目录,一般会解压到当前工作目录。

(12)tar

tar也是用来打包和解包的。

用法:tar + [-cvxzf] + [压缩的文件名]

  • -c :建立一个压缩文件的参数指令(create 的意思);
  • -x :解开一个压缩文件的参数指令!
  • -t :查看 tarfile 里面的文件!
  • -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
  • -v :压缩的过程中显示文件,这个常用,但不建议用在背景执行过程!
  • -f :使用档名,请留意,在 f 之后要立即接档名喔,不要再加参数!
  • -C : 解压到指定目录

一般来说,接cvzf即可。选项后面跟的是压缩后的文件名,.tgz是.tar.gz的缩略形式。

解压的话,将选项中的c换成x,去掉z即可。-C指定解压目录。

1.2 热键

[Tab]按键 ------具有命令补齐文件或目录名补齐的功能。

[Ctrl]-c按键------可以终止当前的程序,直接退出。

[Ctrl]-d按键------代表着键盘输入结束(End Of File)的意思,在某些情况下,可以直接退出回话。

2. 权限管理

2.1 文件访问者

  • 文件和文件目录的所有者:u--->User
  • 文件和文件目录的所有者所在的组的用户:g--->Group
  • 其他用户:o--->Others(外国人)

2.1 文件属性,文件类型和访问权限

文件的属性:

文件类型:

  • d:文件夹
  • -:普通文件
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

基本权限:

  • 读(r):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
  • 写(w):Write对文件而言,具有修改文件内容的权限;对目录来说,具有删除移动目录内文件权限。
  • 执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
  • "-"表示不具有该项权限。

2.3 权限值的表示方法

rwx分别表示读写执行的权限,当没有权限时,用"-"表示。这只有两种形态,可以用二进制数0和1表示。所以这三个位置中有权限用1表示,无权限用0表示。

  • rwx代表111,相当于八进制7
  • rw- 代表110,相当于八进制6
  • r-x 代表101,相当于八进制5
  • r-- 代表100,相当于八进制4
  • -wx 代表011,相当于八进制3
  • -w- 代表010,相当于八进制2
  • --x 代表001,相当于八进制1
  • --- 代表000,相当于八进制0

2.4 设置文件访问权限

chmod可以设置文件访问权限

用法:chmod + [选项] + [权限] + [文件或目录]

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限

用户符号:

  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户

chmod可以跟+-=结合改变不同对象的权限。

chmod指令与a结合可以改变三个对象的所有权限。

根据权限值的表示方法,可以直接写三位数字,每个数字都是八进制来设置权限。

umask是用来查看或修改文件掩码。

新建文件默认权限=0666,新建目录默认权限=0777。但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。因为会受到umask的影响,假设默认权限是tmp,那么实际创建出来的文件权限是tmp&(~umask)。

用法:umask + [权限值]

2.5 粘滞位

目录的权限:

  • 可执行权限(Execute permission) : 如果目录没有可执行权限,则用户无法通过 cd 命令进入该目录。

  • 可读权限(Read permission) : 如果目录没有可读权限,则用户无法使用 ls 命令列出目录中的文件和子目录。

  • 可写权限(Write permission): 如果目录没有可写权限,则用户无法在目录中创建新文件或子目录,也无法删除目录中的文件或子目录。

也就是说,在同一个目录下,只要有该目录的写权限,不管我是不是拥有这个文件的写权限,都可以删除文件或子目录。这不是一个BUG吗?

为了解决这样的事情,Linux中有粘滞位的概念。

目录使用chmod +t指令来设置粘滞位。设置完后,该目录下的文件只能由

  • 超级管理员删除
  • 该目录的所有者删除
  • 该文件的所有者删除

总结

通过本文,可以学习到一些Linux的皮毛知识。前路漫漫,任重道远!

创作不易,希望这篇文章能给你带来启发和帮助,如果喜欢这篇文章,请留下你的三连,你的支持的我最大的动力!!!

相关推荐
摸鱼也很难1 小时前
Docker 镜像加速和配置的分享 && 云服务器搭建beef-xss
运维·docker·容器
watermelonoops1 小时前
Deepin和Windows传文件(Xftp,WinSCP)
linux·ssh·deepin·winscp·xftp
woshilys2 小时前
sql server 查询对象的修改时间
运维·数据库·sqlserver
疯狂飙车的蜗牛2 小时前
从零玩转CanMV-K230(4)-小核Linux驱动开发参考
linux·运维·驱动开发
恩爸编程3 小时前
探索 Nginx:Web 世界的幕后英雄
运维·nginx·nginx反向代理·nginx是什么·nginx静态资源服务器·nginx服务器·nginx解决哪些问题
Michaelwubo5 小时前
Docker dockerfile镜像编码 centos7
运维·docker·容器
远游客07135 小时前
centos stream 8下载安装遇到的坑
linux·服务器·centos
马甲是掉不了一点的<.<5 小时前
本地电脑使用命令行上传文件至远程服务器
linux·scp·cmd·远程文件上传
jingyu飞鸟5 小时前
centos-stream9系统安装docker
linux·docker·centos
好像是个likun5 小时前
使用docker拉取镜像很慢或者总是超时的问题
运维·docker·容器