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的皮毛知识。前路漫漫,任重道远!

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

相关推荐
天狼122237 分钟前
第5章-1 优化服务器设置
运维·服务器·adb
傻啦嘿哟2 小时前
Python正则表达式:用“模式密码“解锁复杂字符串
linux·数据库·mysql
浪裡遊3 小时前
Linux常用指令
linux·运维·服务器·chrome·功能测试
SugarPPig4 小时前
PowerShell 查询及刷新环境变量
服务器
段ヤシ.4 小时前
银河麒麟(内核CentOS8)安装rbenv、ruby2.6.5和rails5.2.6
linux·centos·银河麒麟·rbenv·ruby2.6.5·rails 5.2.6
深夜情感老师6 小时前
centos离线安装ssh
linux·centos·ssh
我的作业错错错6 小时前
搭建私人网站
服务器·阿里云·私人网站
王景程6 小时前
如何测试短信接口
java·服务器·前端
微网兔子7 小时前
伺服器用什么语言开发呢?做什么用什么?
服务器·c++·后端·游戏
夸克App8 小时前
实现营销投放全流程自动化 超级汇川推出信息流智能投放产品“AI智投“
运维·人工智能·自动化