cp 命令
cp
命令用于复制文件或目录。其基本语法如下:
cp [选项] 源文件 目标文件
选项
:可以是一些附加的参数,例如-r
表示递归复制整个目录。源文件
:要复制的文件或目录的名称。目标文件
:将文件或目录复制到的目标位置的名称。
例如,如果要将文件 file1.txt
复制到目录 backup
中,可以使用命令:
cp file1.txt backup/
-a 复制目录,保留链接,文件属性,并将目录下所有东西复制
-p 保留源文件的权限,时间戳
-r 复制目录及其所有的子目录和文件 时间戳信
mv 命令
mv
命令用于移动文件或重命名文件。其基本语法如下:
mv [选项] 源文件 目标文件
选项
:可以是一些附加的参数,例如-i
表示在覆盖目标文件前进行确认。源文件
:要移动或重命名的文件或目录的名称。目标文件
:文件或目录要被移动到的目标位置的名称,或者是要赋予的新名称。
例如,如果要将文件 2 3移动到目录 b中,可以使用命令:
mv 2 3 b
如果要将文件 a重命名为 b(
将文件a移到文件b),可以使用命令:
mv a b
快捷键
Ctrl+a/Ctrl+左箭头:调到命令行行首
Ctrl+e/Ctrl+右箭头:调到命令行行位
Ctrl+d:删除光标上的命令
Ctrl+u:删除光标前的命令
Ctrl+k:删除光标后的命令
数据流和重定向
标准输入(stdin),标准输出(stdout)和标准错误输出(stderr)
- 标准输入(stdin):是指程序的输入来源,通常默认情况下是键盘输入。程序可以从标准输入中读取数据。代码0
- 标准正确输出(stdout):是指程序的正常输出,默认情况下会输出到屏幕上。代码1
- 标准错误输出(stderr):是指程序运行时的错误信息输出,默认情况下也输出到屏幕上。代码2
重定向操作符
- 输出重定向操作符:
>
用于将命令的输出重定向到文件,>>
用于将命令的输出追加到文件末尾。
将系统时间放到f2文件,用cat命令查看
将pwd放到f2后,再查看,则覆盖了原来的系统时间
用追加重定向符号,不会覆盖原有信息,会进行添加
重定向符创建文件f7
- 输入重定向操作符:
<
用于从文件中获取输入,<<
用于指定一个终止标记作为输入的结束符。
echo 命令
echo
命令用于打印指定的字符串或变量的值到标准输出。例如,echo "Hello, World"
会将"Hello, World"打印到屏幕上,而echo $var
会打印变量$var
的值。
Echo后面跟什么内容就会达到屏幕
Echo +内容 重定向符到f2, 查询f2
给name存储一个zhangsan用echo $name 查询
赋值一个lisi,会将原先的zhangsan覆盖
tee 命令
tee
命令用于从标准输入读取数据,并将其写入文件以及标准输出。它可用于同时在屏幕上显示输出并将其保存到文件中。例如,pwd | tee filename1
会显示当前工作目录的路径,并将该路径保存到名为filename1
的文件中。
管道符 |
管道符用于将一个命令的标准输出连接到另一个命令的标准输入,以便将它们的输出串联在一起进行处理。例如,command1 | command2
将command1
的输出作为command2
的输入。
利用tee和管道符 filename,再用cat查一下,结果一样
命令行 编辑 末行模式
插入模式
a
:在光标后插入文本。A
:在当前行的行尾插入文本。o
:在光标所在行的下方新建一行并进入插入模式。- O:在光标所在行的上方新建一行并进入插入模式。
i
:在光标前插入文本。I
:在当前行的行首插入文本。s
:删除光标所在位置的字符并进入插入模式。S
:删除当前行并进入插入模式。
命令模式
d
:删除操作的起始命令。dd
:删除当前行。dgg
:从光标所在行到文件首部全部删除。dG
:从光标所在行到文件尾部全部删除。d$
:删除从光标位置到行尾的内容。d^
:删除从光标位置到行首的内容(不包括当前光标所在字符)。dw
:按单词删除。G
:跳转到文件的最后一行。gg
:跳转到文件的第一行。u
:撤销之前的操作。Ctrl+r
:重做上一次被撤销的操作。行号G
:跳转到指定行号。x
:删除光标所在位置的字符。yy
:复制当前行。行数yy
:复制从光标处开始的指定行数。p
:将刚刚复制的内容粘贴到光标所在行的下一行。cc
:剪切当前行。行数cc
:剪切当前行开始的指定行数。H
:跳转到当前屏幕输出的最上面一行。L
:跳转到当前屏幕输出的最下面一行。M
:跳转到当前屏幕输出的中间那一行。$
:将光标移动至行尾。^
:将光标移动至行首。w
:按单词进行移动光标。r
:替换光标所在位置的字符。h
:向左按字符移动光标。j
:向下(后)按行移动光标。k
:向上(前)按行移动光标。l
:向右按字符移动光标。
末行模式
:w
:保存当前文件。:w filename
:以指定文件名另存为。:q
:退出编辑器。:wq
:保存并退出。:q!
:强制退出并放弃更改。:set nu
:显示行号。:set nonu
:隐藏行号。:行号
:跳转到指定行。
其他操作
r
:替换光标所在的字符。/
:查找字符串。n
:跳转到下一个关键字。N
:跳转到上一个关键字。
这些指令是Vim编辑器中常用的操作方式,可以帮助用户高效地进行文本编辑和处理。通过这些指令,用户可以快速地进行文本的插入、删除、复制、粘贴、移动和替换等操作,提高编辑效率。
Whereis 命令
-m
:只查找说明文件。-b
:只查找二进制文件。-s
:只查找源代码文件。
whereis
命令用于定位指定命令的位置,常用于查找可执行文件的位置。
Find 命令
find 路径 匹配表达式
-name
:按照文件名进行匹配,可以使用通配符*
和?
。-type
:按照文件类型进行匹配,包括普通文件(f
)、目录文件(d
)和链接文件(l
)。-size
:按照文件大小进行匹配,可以使用+
和-
表示大于或小于指定大小。c(字节)w(字数) b(快数)-user
:按照文件的所有者进行匹配。-group
:按照文件的所属组进行匹配。-atime
:查找N分钟内被访问的文件。-ctime
:查找N分钟内被修改的文件。-mtime
:查找N小时内被修改的文件。-mmin
:查找N分钟内被修改的文件。-exec
:对匹配到的文件执行指定的命令。
find
命令用于在指定路径下根据条件来查找文件。
locate 命令
locate 选项 要查找的内容
- 选项:可以是一些特定的参数。
- 要查找的内容:需要搜索的内容。
locate
命令用于快速定位系统中的文件,需要基于预先建立的数据库进行搜索,因此速度较快。
grep 命令
grep 选项 字符串 文件的路径
-n
:查找到字符串所在行。-c
:查找到字符串拥有的行数。-l
:只打印匹配到的文件名。-v
:反向查找。-r
:递归查找。
grep
命令用于在文件中搜索指定的字符串或正则表达式,可以进行灵活的文本匹配和查找。
-c 查找到字符串拥有的行数
-n 查找到字符串所在行
grep查找以字母开头的行grep ^[字母]
grep ^[sf]:以s或f开头的行
不以字母开头的行grep ^[^字母]
-v 反向查找
-r 递归查找
cat 命令
语法格式:cat 选项 文件
-n
:由1开始对所有输出的行数编号。-b
:由1开始对所有输出的行数编号,空白行不编号。
cat
命令用于连接文件并打印到标准输出设备上。
head 命令
-q
:隐藏文件名。-v
:显示文件名。-c<数目>
:显示指定字节数。-n<行数>
:显示指定行数。
head
命令用于显示文件的开头部分,默认显示前十行。
以上是常见的 Linux 命令,它们可以帮助用户在系统中进行文件搜索、内容查找和文件展示等操作。
history命令
history
命令用于显示用户在当前 shell 会话中执行过的命令历史记录。这个命令会列出最近执行过的命令及其对应的编号。
-c 在使用 history -c
命令时,会清空当前的历史记录,删除所有的命令历史记录。
-a
选项将 shell 的缓冲区中的历史命令追加到历史文件中。
-r
选项将读取历史文件,然后将文件中的命令加载到当前的历史列表中。
-w
选项用于将当前的历史记录写入历史文件中,这样可以将新添加的历史记录保存下来。
useradd命令
useradd
命令用于创建新的用户账户。常用选项包括:
-u uid
:指定用户的 UID(用户ID)。-g gid
:指定用户的基本组。-G
:指定用户的附加组。-c
:为用户添加注释信息。-d
:指定用户的家目录。-s
:指定用户默认的 shell。
passwd命令
passwd
命令用于设置用户密码。常用选项包括:
-n
:指定密码的最短使用期限。-x
:指定密码的最长使用期限。-w
:指定密码过期前的警告时间。-d
:删除用户密码。
usermod命令
usermod
命令用于修改用户账户的属性。常用选项包括:
-l
:修改用户名。-L
:锁定用户账户。-U
:解锁用户账户。
userdel命令
userdel
命令用于删除用户账户。常用选项包括:
-r
:连同用户的家目录一起删除。
groupadd / groupmod / groupdel
这些命令用于管理用户组。
groupadd
:用于创建新的用户组。groupmod
:用于修改用户组的属性。groupdel
:用于删除用户组。
文字设定法
+
:添加权限-
:移除权限=
:设置精确权限
使用文字设定法时,你可以通过以下格式来设置文件或目录的权限:
chmod 对象 符号(+ - =)权限 文件名
其中,对象可以是:
u
:文件所有者g
:文件所属组o
:其他用户a
:所有用户(相当于 ugo 的组合)
数字设定法
在数字设定法中,每个权限被赋予一个特定的数字值:
- 没有权限:0
- 执行权限:1
- 写入权限:2
- 读取权限:4
然后,通过将这些数字加起来,你可以快速设置文件或目录的权限。
解释与补充
在你提供的例子中,chmod 367 f1
表示要将文件 f1 的权限设置为:
- 所有者的权限为 3(即 rwx 中的 rw,表示读取和写入)
- 所属组的权限为 6(即 rwx 中的 rw,表示读取和写入)
- 其他人的权限为 7(即 rwx,表示读取、写入和执行)
因此,执行该命令后,文件 f1 的权限会被设置为 -rw-rw-rwx
。
SUID(Set User ID)权限允许普通用户以文件所有者的特权执行文件。当普通用户运行拥有SUID权限的可执行文件时,该程序会以文件拥有者的身份来运行,而不是以执行者自己的身份。这对于一些需要特殊权限的系统任务很有用,比如密码更改程序(passwd)。
SGID(Set Group ID)权限在不同情况下有不同的作用。如果SGID位被设置在一个可执行文件上,那么无论谁执行这个程序,都会以该文件所属的组的身份来执行。而对于目录来说,如果SGID被设置在一个目录上,那么在该目录内创建的文件或者目录的所属组将会变为该目录的所属组。这个功能在需要多个用户共享访问的目录上很有用。
Sticky Bit(粘滞位)通常用于目录上。当粘滞位被设置在一个目录上时,在具有写入权限的用户创建的文件或目录,只有文件拥有者和 root 用户才能删除。这个特性常用于共享目录,以防止其他用户删除不属于自己的文件。
ACL(Access Control List,访问控制列表)是一种在文件系统中进行细粒度访问控制的机制。它允许系统管理员为每个文件和目录设置额外的权限规则,包括允许或拒绝特定用户或组的访问、修改或执行等权限。ACL 扩展了传统的基于所有者、所属组和其他用户权限的控制,提供了更灵活的权限管理方式。