1.1文件指令
1.2权限指令
1.3用户结构
1.4vim编辑器
1.5作者的废话
1.1文件指令
以下是对Linux中文件指令的详细介绍:
文件管理指令
• pwd:显示当前工作目录的绝对路径。在终端中输入`pwd`后,系统会返回当前所在的完整路径,例如`/root`。
• mkdir:创建新目录。语法为`mkdir [选项] 目录名`,如`mkdir mydir`会在当前目录下创建一个名为`mydir`的新目录。常用选项`-p`可递归创建父目录,如果必要的话,比如`mkdir -p /home/user/projects/new_project/src`。
• ls:列出当前目录下的文件和子目录。常用选项有:
• `-l`:以长格式列出目录内容,显示更多详细信息,包括权限、所有者、大小等。
• `-a`:列出包括隐藏文件在内的所有文件和目录。
• `-h`:以易读的方式显示文件大小,如KB、MB等。
• cd:切换工作目录。如`cd Documents`进入名为“Documents”的目录,`cd ..`返回上一级目录。
• touch:创建空文件或更新文件时间。如果文件已存在,则更新其访问时间和修改时间;如果文件不存在,则创建一个空文件。
• cp:复制文件或目录。语法为`cp [选项] 源文件 目标文件`,如`cp file.txt newfile.txt`将“file.txt”复制为“newfile.txt”。常用选项`-r`可递归复制目录及其内容,比如`cp -r Folder NewFolder`。
• mv:移动文件或目录,也可用于重命名文件。语法为`mv [选项] 源文件 目标文件`,如`mv myfile_1.txt myfile.txt`将`myfile_1.txt`重命名为`myfile.txt`。选项参数`-i`表示交互式,如果目标文件已存在,则询问确认;`-f`表示强制覆盖,不提示。
• rm:删除文件或目录。语法为`rm [选项] 文件`,如`rm file.txt`删除名为“file.txt”的文件。常用选项`-r`可递归删除目录及其内容,但需谨慎使用以避免意外数据丢失,如`rm -r OldFolder`。
• rmdir:删除指定的空目录。如果目录中包含文件或子目录,`rmdir`将无法执行删除操作。语法为`rmdir [选项] 目录名`,如`rmdir mydir/`删除`mydir`目录,但该目录必须为空。详细参数有:
• `-p, --parents`:同时删除目录及其父目录,前提是父目录也为空,如`rmdir -p parentdir/childdir/`。
• `--ignore-fail-on-non-empty`:如果目录不为空,则忽略错误,不会显示警告。
• `-v, --verbose`:显示详细输出,列出已删除的目录,如`rmdir -v mydir/`。
文件内容查看指令
• cat:把多个文件连接后输出到屏幕显示,若加“>`文件名`”则输出到另一个文件中。常用选项有:
• `-b`:从1开始对所有非空输出行进行编号。
• `-n`:从1开始对所有输出行编号。
• `-s`:将连续两行以上的空白行合并成一行空白行。
• head:查看某个文件的前n行数据。语法为`head -n 文件路径`,n表示行数,若未指定n大小,则默认n等于10。
• tail:查看某个文件的后n行数据。语法为`tail -n 文件路径`,n表示行数,若未指定n大小,则默认n等于10。还可用于查看某个文件的动态变化,一般用于查看系统日志,语法为`tail -f 文件路径`。
• less:以较少的内容输出的方式查看文件,可逐屏显示文件内容,并支持向前、向后翻页等操作。
文件信息查看指令
• wc:统计文件的行数、单词数和字节数。
• file:显示文件类型,可帮助用户了解文件的格式和内容类型。
• du:查看磁盘使用情况,可显示文件或目录所占用的磁盘空间大小。
文件权限修改指令
• chmod:修改文件权限,可改变文件的读、写、执行等权限,以控制不同用户对文件的访问和操作权限。
文件查找指令
• find:查找文件,可根据文件名、类型、大小、权限等多种条件在指定目录及其子目录中查找符合条件的文件。
• grep:文本搜索工具,用于搜索文件内容,并打印包含匹配文本的行。语法为`grep [选项] 文本 [文件名]`,常用选项有:
• `-n <数字>`:显示匹配行上下的n行。
• `-b`:打印匹配行的块号码。
• `-c`:只打印匹配的行数。
• `-h`:忽略文件名。
• `-i`:忽略大小写差异。
• `-q`:静默模式,只返回退出状态。
• `-l`:打印匹配模板的文件清单。
• `-v`:反向匹配,即显示不匹配的行。
Linux的用户结构
Linux系统采用多用户多任务的机制,其用户结构主要包括用户组和用户账户两个层面,它们共同构成了系统的用户管理体系,以实现对系统资源的有效分配和访问控制。
用户组
• 定义:用户组是具有相同特征或需求的用户的集合,通过将用户分配到不同的用户组,可以方便地对多个用户进行统一的权限管理。
• 类型:
• 主用户组:每个用户在创建时都会被分配一个主用户组,当用户创建文件或目录时,该文件或目录的所属组默认为主用户组。例如,用户`john`的主用户组是`developers`,那么`john`创建的文件默认所属组为`developers`。
• 附加用户组:除了主用户组外,用户还可以被添加到一个或多个附加用户组中。这样,用户可以同时拥有多个用户组的权限,从而实现更灵活的权限分配。比如,用户`jane`同时属于`writers`和`editors`两个附加用户组,那么她可以访问这两个用户组所拥有的资源。
• 管理:用户组的创建、修改和删除通常由系统管理员通过命令行工具(如`groupadd`、`groupmod`、`groupdel`)或图形界面工具来完成。例如,使用`groupadd newgroup`命令可以创建一个新的用户组`newgroup`。
用户账户
• 定义:用户账户是系统中用于标识和验证用户身份的唯一实体,每个用户账户都有一个唯一的用户名和对应的用户ID(UID)。
• 组成部分:
• 用户名:用户登录系统时使用的名称,通常由字母、数字和特殊字符组成,长度一般不超过8个字符。例如,`alice`、`bob123`等。
• 用户ID(UID):系统内部用于标识用户的唯一数字,每个用户都有一个唯一的UID。UID为0的用户是超级用户(root),拥有系统最高权限,可以执行任何操作;其他普通用户的UID通常从500或1000开始编号。
• 主目录:每个用户都有一个主目录,用于存放用户的个人文件和配置信息。主目录的路径通常在用户账户创建时指定,格式一般为`/home/用户名`。例如,用户`charlie`的主目录为`/home/charlie`。
• 登录Shell:用户登录系统后所使用的命令行解释器,用于执行用户的命令和脚本。常见的登录Shell有`/bin/bash`、`/bin/sh`等。用户可以根据自己的喜好选择不同的登录Shell。
• 管理:用户账户的创建、修改和删除由系统管理员负责,常用的命令行工具包括`useradd`、`usermod`、`userdel`等。例如,使用`useradd -m -s /bin/bash newuser`命令可以创建一个名为`newuser`的新用户账户,同时为其创建主目录并指定登录Shell为`/bin/bash`。
Linux的用户权限管理
Linux系统通过文件权限机制来控制用户对文件和目录的访问权限,以确保系统的安全性和数据的完整性。文件权限主要分为三类:读权限、写权限和执行权限,分别对应不同的操作。
文件权限分类
• 读权限(r):允许用户查看文件的内容或列出目录中的文件列表。对于文件,具有读权限的用户可以使用`cat`、`less`等命令查看文件内容;对于目录,具有读权限的用户可以使用`ls`命令查看目录中的文件和子目录列表。
• 写权限(w):允许用户修改文件的内容或在目录中创建、删除和重命名文件。对于文件,具有写权限的用户可以使用文本编辑器(如`vi`、`nano`)编辑文件内容,也可以使用`echo`等命令向文件中写入数据;对于目录,具有写权限的用户可以在目录中创建新文件、删除现有文件或重命名文件。
• 执行权限(x):允许用户执行文件或将目录作为路径进行访问。对于可执行文件(如程序、脚本等),具有执行权限的用户可以运行该文件;对于目录,具有执行权限的用户可以进入该目录并访问其子目录和文件,即使没有读权限也可以通过已知的路径访问目录中的文件。
权限分配对象
• 所有者(owner):文件或目录的创建者或拥有者,通常对该文件或目录拥有最高权限。所有者可以自由地设置文件或目录的权限,也可以将其权限转让给其他用户或用户组。
• 所属组(group):文件或目录所属的用户组,组内的成员对该文件或目录拥有相同的权限。通过将用户添加到不同的用户组,可以实现对多个用户进行统一的权限管理,提高管理效率。
• 其他用户(others):除了所有者和所属组成员之外的其他所有用户,他们对该文件或目录的访问权限通常受到限制,以保护文件的安全性和隐私性。
权限表示方法
Linux系统中文件权限通常用字符和数字两种方式表示。
• 字符表示法:使用`r`、`w`、`x`分别表示读、写、执行权限,`-`表示没有相应权限。权限字符按照所有者、所属组、其他用户的顺序排列,共9个字符。例如,`-rwxr-xr-x`表示所有者具有读、写、执行权限,所属组和其他用户具有读、执行权限,但没有写权限。
• 数字表示法:将读、写、执行权限分别用数字4、2、1表示,没有权限用0表示。将所有者、所属组、其他用户的权限数字相加,得到一个三位数的权限码。例如,`755`表示所有者具有读、写、执行权限(4+2+1=7),所属组和其他用户具有读、执行权限(4+1=5)。
权限修改命令
• chmod:用于修改文件或目录的权限。语法为`chmod [选项] 权限 文件名`,其中权限可以用字符表示法或数字表示法。例如,`chmod u+x file.txt`为文件`file.txt`的所有者添加执行权限;`chmod 644 file.txt`将文件`file.txt`的权限设置为所有者具有读、写权限,所属组和其他用户具有读权限。
• chown:用于改变文件或目录的所有者。语法为`chown [选项] 新所有者 文件名`。例如,`chown newuser file.txt`将文件`file.txt`的所有者更改为`newuser`。
• chgrp:用于改变文件或目录的所属组。语法为`chgrp [选项] 新所属组 文件名`。例如,`chgrp newgroup file.txt`将文件`file.txt`的所属组更改为`newgroup`。
特殊权限
• SUID(Set User ID):当文件设置了SUID权限后,任何用户执行该文件时,都会以文件所有者的身份运行,从而获得文件所有者的权限。这对于一些需要特殊权限才能正常运行的程序非常有用,但也存在安全风险。例如,`passwd`命令设置了SUID权限,普通用户在修改密码时可以以`root`用户的身份访问系统密码文件。
• SGID(Set Group ID):与SUID类似,SGID权限允许用户在执行文件时以文件所属组的身份运行,从而获得所属组的权限。此外,当目录设置了SGID权限后,用户在该目录下创建的文件或子目录将自动继承目录的所属组,而不是用户的主用户组。这对于需要共享文件的用户组非常方便。
• Sticky Bit(粘滞位):主要用于目录,当目录设置了粘滞位后,只有文件的所有者、目录的所有者或`root`用户才能删除或移动该目录下的文件,即使其他用户对该目录具有写权限也不例外。这可以防止用户误删除其他用户的重要文件,常用于公共目录,如`/tmp`目录。
vim编辑器
Vrm编辑器简介
Vim是一款功能强大的文本编辑器,它具有丰富的功能和灵活的配置,广泛应用于编程、文本编辑等领域。以下是Vim编辑器的使用教程,从基本操作到常用功能,帮助你快速上手Vim。
启动和退出Vim
• 启动Vim:
• 打开终端,输入`vim`命令,然后按回车键,即可启动Vim编辑器,进入一个空白的编辑窗口。
• 如果你想编辑一个已存在的文件,可以在命令行中输入`vim 文件名`,例如`vim example.txt`,Vim会打开并显示该文件的内容。
• 退出Vim:
• 如果你没有对文件进行任何修改,或者修改后已经保存,可以直接按`Esc`键,然后输入`:q`,再按回车键退出Vim。
• 如果你修改了文件但尚未保存,按`Esc`键后输入`:q!`,再按回车键可以强制退出Vim,不保存所做的修改。
• 如果你想保存修改并退出Vim,按`Esc`键后输入`:wq`,再按回车键即可。
Vim的三种基本模式
Vim主要有三种工作模式:命令模式、插入模式和末行模式,掌握这三种模式的切换是使用Vim的关键。
• 命令模式:
• 这是Vim启动时的默认模式,主要用于执行各种编辑命令,如移动光标、删除字符、复制粘贴等。
• 在命令模式下,你可以按键盘上的方向键来移动光标,也可以使用`h`(左)、`j`(下)、`k`(上)、`l`(右)键来移动光标,这些键是Vim中常用的光标移动快捷键。
• 例如,按`j`键可以使光标向下移动一行,按`k`键可以使光标向上移动一行。
• 插入模式:
• 在插入模式下,你可以像在其他文本编辑器中一样输入和编辑文本。
• 从命令模式进入插入模式有多种方法,常用的有:
• 按`i`键,光标所在位置前插入文本。
• 按`a`键,光标所在位置后追加文本。
• 按`I`键,行首插入文本。
• 按`A`键,行尾追加文本。
• 要从插入模式返回到命令模式,只需按`Esc`键即可。
• 末行模式:
• 末行模式用于执行一些特殊的命令,如保存文件、退出Vim、查找替换等。
• 从命令模式进入末行模式,需要按`:`键,此时光标会移动到屏幕的最后一行,等待你输入命令。
• 例如,输入`:w`并按回车键可以保存文件,输入`:q`并按回车键可以退出Vim。
常用编辑命令
• 移动光标:
• `gg`:移动到文件的第一行。
• `G`:移动到文件的最后一行。
• `nG`:移动到文件的第n行,例如`10G`移动到第10行。
• `0`:移动到当前行的行首。
• `$`:移动到当前行的行尾。
• `w`:向前移动到下一个单词的开头。
• `b`:向后移动到上一个单词的开头。
• `e`:移动到当前单词的结尾。
• 删除操作:
• `x`:删除光标所在位置的字符。
• `dd`:删除光标所在的整行。
• `ndd`:删除光标所在的向下n行,例如`3dd`删除光标所在的向下3行。
• `dw`:删除光标所在位置的单词。
• `db`:删除光标所在位置的上一个单词。
• 复制粘贴:
• `yy`:复制光标所在的整行。
• `nyy`:复制光标所在的向下n行,例如`5yy`复制光标所在的向下5行。
• `yw`:复制光标所在位置的单词。
• `p`:在光标所在位置的下一行粘贴复制的内容。
• `P`:在光标所在位置的上一行粘贴复制的内容。
• 查找替换:
• `/word`:向下查找“word”字符串,按`n`键可以查找下一个匹配项,按`N`键可以反向查找下一个匹配项。
• `?word`:向上查找“word”字符串,查找方向与`/`相反。
• `:%s/old/new/g`:将文件中所有的“old”字符串替换为“new”字符串,其中`%`表示整个文件,`g`表示全局替换。
• 撤销与重做:
• `u`:撤销上一步操作。
• `Ctrl + r`:重做上一步被撤销的操作。
配置Vim
Vim的配置文件通常位于用户的主目录下,文件名为`.vimrc`。你可以通过编辑`.vimrc`文件来定制Vim的各种设置,以满足你的个人需求。以下是一些常见的配置选项:
• `syntax on`:开启语法高亮显示,使代码更易于阅读。
• `set number`:显示行号,方便定位代码行。
• `set tabstop=4`:设置制表符的宽度为4个空格。
• `set shiftwidth=4`:设置缩进的宽度为4个空格。
• `set expandtab`:将制表符转换为空格,避免制表符和空格混用。
• `set autoindent`:自动缩进,根据上一行的缩进自动调整当前行的缩进。
• `colorscheme desert`:设置Vim的主题颜色为“desert”,你可以根据自己的喜好选择不同的主题颜色。
要修改`.vimrc`文件,可以在终端中输入`vim ~/.vimrc`命令,然后在打开的文件中添加或修改配置选项,保存并退出后,重新启动Vim即可使配置生效。
作者的废话
Linux的系统,有非常多的发行版,传说类型有很多,但是使用方法也基本大同小异.我的讲解有什么不对的地方,欢迎大家前来指出