chomd
chomd基本语法
chmod
是一个Unix和Linux操作系统中的命令,它用于改变文件或目录的权限
。在Linux中,每个文件或目录的权限可以被设定为三个不同的用户级别:文件所有者
,所有者所在的用户组
,以及其他用户
。
chmod
的基本语法如下:
chmod [options] mode file
在这个命令中:
-
options
:这是可选参数,主要用来定义命令的行为,例如-R
选项可以用来递归地改变目录及其子目录的权限。 -
mode
:这是你想设置的权限,可以用数字(例如 777)或符号(例如 u+x)表示。 -
file
:这是你想改变权限的文件或目录的名称。
chmod
命令使用三个数字来表示权限,每个数字代表一个不同的用户组:
- 第一个数字代表
文件所有者
的权限。 - 第二个数字代表
同一用户组中的其他用户
的权限。 - 第三个数字代表
其他所有用户
的权限。
每个数字是三个权限(读、写和执行)的二进制表示的总和:
读权限被表示为4
写权限被表示为2
执行权限被表示为1
因此,权限的数字表示可以从0(无权限)到7(读、写和执行权限)
。例如,如果你想给文件所有者全部权限
,给同一用户组的用户读和执行权限
,给其他所有用户只给读权限
,你可以设置模式为 754
。
这就是基本的 chmod
命令。记住,改变文件和目录的权限是一项需要谨慎操作的任务,因为不正确的权限设置可能会导致安全问题。
chmod命令的options和mode部分
chmod
命令的options
和mode
部分是非常重要的。让我们分别详细了解一下:
1. Options
options
定义了chmod
命令的行为。这里有一些常见的options
:
-
-R
或--recursive
:递归地改变指定目录及其所有子目录和文件的权限。如果没有指定此选项,chmod
只会改变给定路径上的单个文件或目录的权限。 -
-f
或--silent
或--quiet
:不显示错误信息。 -
-v
或--verbose
:运行时提供详细输出。 -
--reference=RFILE
:将权限改变为RFILE的权限相同。
2. Mode
mode
部分定义了你想要设置的权限。它可以由数字(例如777)或符号(例如u+x)表示。
-
数值模式:每个权限(读、写、执行)都由一个数字表示:
- 4代表读取权限。
- 2代表写入权限。
- 1代表执行权限。
这些值相加得到一个三位数,分别代表所有者、组和其他用户的权限。例如,755表示所有者具有读/写/执行权限(7=4+2+1),组和其他用户只有读和执行权限(5=4+1)。
-
符号模式:这种模式使用字母和特殊符号来定义权限。主要元素如下:
-
u
,g
和o
分别表示用户(所有者)、组和其他人。 -
+
,-
和=
分别用于添加权限、删除权限和设置特定权限。 -
r
,w
和x
分别代表读取、写入和执行权限。
例如,
u+x
表示给用户(文件所有者)添加执行权限,g-w
表示从组中删除写入权限,o=r
表示给其他人设置只读权限。 -
chmod命令的实例
当然,以下是一些chmod
命令的实例:
- 将文件(例如 myfile.txt)的权限设置为所有者可读写(6),组内用户可读写(6),其他用户只读(4):
chmod 664 myfile.txt
- 递归地更改目录及其子目录的权限。例如,将目录 mydir 及其子目录的权限设置为所有者可读写执行(7),组内用户可读写(6),其他用户只读(4):
chmod -R 764 mydir
- 使用符号模式改变权限。比如,给所有者(u)增加(+)执行(x)权限,可以使用以下命令:
chmod u+x myfile.txt
- 可以同时更改多个用户组的权限。例如,给所有者和组用户添加执行权限,可以这样写:
chmod u+x,g+x myfile.txt
或者简化为:
chmod +x myfile.txt
这将给所有者,组用户,以及其他用户添加执行权限。
- 取消某个用户组的特定权限,例如取消组用户(g)的写(w)权限:
chmod g-w myfile.txt
- 设置所有者具有读写执行权限,而其他用户没有任何权限:
chmod 700 myfile.txt
- 如果你想移除所有用户对文件(例如,myfile.txt)的所有权限,可以使用以下命令:
chmod 000 myfile.txt
- 如果你有一个脚本(例如,script.sh)并希望所有用户都能够执行它,你可以这样设置:
chmod 755 script.sh
这样,所有者有读、写、执行权限,而组用户和其他用户只有读和执行权限。
- 如果你想让所有者对文件有所有权限,但其他用户没有任何权限,你可以这样设置:
chmod 700 myfile.txt
- 使用符号来给所有者添加写权限:
chmod u+w myfile.txt
- 从组用户和其他用户那里移除执行权限:
chmod go-x myfile.txt
- 将文件所有者的权限设为读写,组用户的权限设为只读,其他用户无权限:
chmod 640 myfile.txt
- 如果你想改变一个目录及其所有子目录和文件的权限,你可以使用-R选项。比如,让所有者有全部权限,组用户和其他用户只有读和执行权限:
chmod -R 755 mydir
pwd
pwd
是一个Unix和Linux环境中的命令,它的全称是“print working directory”,用于显示当前工作目录的全路径。
在pwd
命令中没有提供参数,命令就会输出当前工作目录的路径。比如,如果你首次打开一个新的终端或命令行界面,它可能会显示你的主目录,例如:
$ pwd
/Users/yourusername
如果你改变了当前的工作目录,pwd
命令会显示你现在的位置。例如,如果你使用cd
命令进入了一个叫做Documents
的目录,然后执行pwd
命令,它将显示:
$ cd Documents
$ pwd
/Users/yourusername/Documents
这就是pwd
命令的基本用法。它是一个非常有用的命令,可以帮助你了解自己在文件系统中的位置。
cat
cat
是一个 Unix 和 Linux 系统中常用的命令,用于查看、创建或者连接文件内容。它的全称是 “concatenate”,意思是连接。
查看文件内容
这是 cat
最基本的用法,例如查看文件 myfile.txt 的内容:
$ cat myfile.txt
它将在命令行窗口输出 myfile.txt 文件的全部内容。
创建新文件
cat
也可以用来创建新文件。例如,你可以创建一个新的文件并将一些文本写入其中:
$ cat > newfile.txt
然后你可以开始输入一些文本。当你完成时,按 Ctrl+D 结束输入,你就会发现已经创建了一个名为 newfile.txt 的文件,文件内容就是你刚才输入的文本。
连接文件内容
cat
命令最初的设计就是为了连接(concatenate)多个文件的内容。例如,你有两个文件,file1.txt 和 file2.txt,你想创建一个新的文件,其中包含了这两个文件的内容,你可以使用以下命令:
$ cat file1.txt file2.txt > combined.txt
现在,combined.txt 文件就包含了 file1.txt 和 file2.txt 的内容。
附加到文件
如果你想把一些内容附加到现有文件的末尾,而不是覆盖它,你可以使用 ‘>>’ 操作符。例如,你想在 file1.txt 的内容后面添加 file2.txt 的内容:
$ cat file2.txt >> file1.txt
现在 file1.txt 文件包含了它原来的内容,后面跟着 file2.txt 的内容。
显示行号
使用 -n
选项可以在输出的每一行前面添加行号,这在查看长文件时非常有用:
$ cat -n myfile.txt
touch
touch
是一个常用的Unix和Linux命令,它用于创建新的空文件和更改现有文件或目录的时间戳。下面详细介绍一下这两种用法:
创建新的空文件
要创建一个新的空文件,只需提供你想要创建的文件名作为touch
命令的参数。例如,如果你想创建一个名为myfile.txt
的新文件,你可以输入:
$ touch myfile.txt
如果文件已经存在,touch
命令不会有任何效果。如果文件不存在,touch
会创建一个新的空文件。
更改文件或目录的时间戳
touch
命令也可以用来更新文件或目录的访问时间和修改时间。当你对文件或目录使用touch
命令时,这两个时间戳会被更新为当前时间。
例如,你可以更新myfile.txt
文件的时间戳:
$ touch myfile.txt
你还可以同时更改多个文件或目录的时间戳,只需将它们作为参数传递给touch
命令:
$ touch file1.txt file2.txt directory1
注意,如果这些文件或目录不存在,touch
将为每一个不存在的文件名创建一个新的空文件。
创建带有特定时间戳的文件
你可以使用-t
选项来创建一个带有特定时间戳的文件。例如,要创建一个名为myfile.txt
的文件,其修改日期设置为2023年1月1日,可以使用如下命令:
$ touch -t 202301011200 myfile.txt
这个命令将创建或修改myfile.txt的时间戳,设置为2023年1月1日的12:00。
touch
命令的这些用法可以帮助你在脚本和其他工具中创建和管理文件和目录。
rm
rm
命令是Unix和Linux中用于删除文件和目录的基本命令。下面是一些使用rm
命令的详细示例:
删除文件
要删除一个文件,只需要将文件名作为rm
命令的参数。例如,要删除名为myfile.txt
的文件,你可以输入:
$ rm myfile.txt
删除多个文件
如果你想要删除多个文件,可以将所有的文件名一起作为rm
命令的参数。例如,要删除file1.txt
、file2.txt
和file3.txt
这三个文件,你可以输入:
$ rm file1.txt file2.txt file3.txt
删除目录
默认情况下,rm
命令不会删除目录。如果你试图删除一个目录,它会显示一个错误消息。要删除一个目录,需要使用-r
(或--recursive
)选项。例如,要删除一个名为mydir
的目录,你可以输入:
$ rm -r mydir
这将删除mydir
目录及其包含的所有子目录和文件。
强制删除
如果你想要删除文件或目录,并且不想在删除每个文件或目录时都被提示,可以使用-f
(或--force
)选项。例如,要强制删除mydir
目录,你可以输入:
$ rm -rf mydir
这将删除mydir
目录及其包含的所有子目录和文件,并且不会显示任何提示。
注意:使用rm
命令要小心,因为一旦文件或目录被删除,你就无法恢复它。在使用-r
或-f
选项时,要特别小心,因为这可能会导致删除你不想删除的文件或目录。
cp
cp
是Unix和Linux环境中的一个命令,用于复制文件和目录
。以下是一些cp
命令的详细示例:
复制文件
要复制一个文件,你需要提供源文件的名称以及目标文件的名称。例如,如果你想复制一个名为file1.txt
的文件,并将副本命名为file2.txt
,你可以使用以下命令:
$ cp file1.txt file2.txt
复制到目录
你还可以将文件复制到另一个目录。例如,如果你想将file1.txt
复制到一个名为mydir
的目录中,你可以使用以下命令:
$ cp file1.txt mydir
这将创建一个在mydir
目录中的file1.txt
的副本。
复制目录
要复制一个目录及其所有内容,你需要使用-R
或-r
选项,它代表递归。例如,如果你想复制一个名为dir1
的目录,并将副本命名为dir2
,你可以使用以下命令:
$ cp -R dir1 dir2
这将创建一个dir2
的目录,它将包含dir1
目录中的所有文件和子目录。
复制并保留文件属性
要复制文件或目录并保留其原始属性(如所有者、组和权限),你可以使用-p
选项。例如,如果你想复制file1.txt
并保留其属性,你可以使用以下命令:
$ cp -p file1.txt file2.txt
这就是cp
命令的一些常见用法。记住,cp
命令总是创建源文件或目录的副本,它不会移动或删除源文件或目录。
mv
mv
是一个在 Unix/Linux 操作系统下的命令,用于移动或重命名文件或目录。以下是一些使用 mv
命令的示例:
-
重命名文件:
如果你想把一个文件从一个名字改为另一个名字,你可以使用
mv
命令。例如,如果你想把文件oldname.txt
重命名为newname.txt
,你可以输入以下命令:mv oldname.txt newname.txt
执行这个命令后,你会发现
oldname.txt
文件已经不存在,而新的newname.txt
文件已经出现。 -
移动文件:
mv
命令也可以将文件从一个位置移动到另一个位置。例如,如果你想将文件file.txt
从当前目录移动到directory1
目录,你可以输入以下命令:mv file.txt directory1/
执行这个命令后,文件
file.txt
会从当前目录移动到directory1
目录。 -
移动并重命名文件:
mv
命令还可以在移动文件的同时重命名文件。例如,如果你想将文件file.txt
移动到directory1
目录,并将其重命名为newname.txt
,你可以输入以下命令:mv file.txt directory1/newname.txt
执行这个命令后,文件
file.txt
会从当前目录移动到directory1
目录,并重命名为newname.txt
。
请注意,如果目标文件或目录已经存在,mv
命令默认会覆盖目标文件或目录。如果你不希望这样,可以使用 -i
(即 --interactive
)选项,这样当目标文件存在时,mv
命令会询问你是否覆盖。例如:
mv -i oldname.txt newname.txt
在这种情况下,如果 newname.txt
文件已经存在,mv
命令会询问你是否要覆盖它。
移动和重命名目录与移动和重命名文件的方法相同,都使用 mv
命令。这里是几个示例:
-
移动目录:
如果你想把一个目录从一个位置移动到另一个位置,你可以使用
mv
命令。例如,如果你想把directory1
从当前位置移动到directory2
(假设directory2
已经存在),你可以使用以下命令:mv directory1 directory2/
这将把
directory1
移动到directory2
目录下,路径会变成directory2/directory1
。 -
重命名目录:
mv
命令也可以用来重命名目录。例如,如果你想把directory1
重命名为directory3
,你可以使用以下命令:mv directory1 directory3
执行这个命令后,
directory1
将被重命名为directory3
,原来directory1
中的所有文件和子目录都会保持不变,只是路径名变成了directory3
。 -
移动并重命名目录:
mv
命令可以在移动目录的同时重命名目录。例如,如果你想把directory1
移动到directory2
目录下,并将其重命名为directory3
,你可以输入以下命令:mv directory1 directory2/directory3
执行这个命令后,
directory1
将被移动到directory2
目录下,并被重命名为directory3
。所以新的路径会变成directory2/directory3
。
同样地,如果目标目录已经存在,mv
命令会覆盖它。如果你不希望这样,可以使用 -i
(即 --interactive
)选项,这样当目标目录存在时,mv
命令会询问你是否覆盖。例如:
mv -i directory1 directory3
在这种情况下,如果 directory3
已经存在,mv
命令会询问你是否要覆盖它。
mkdir
mkdir
是一个 Unix 和 Linux 环境中常用的命令,用于创建新的目录。以下是一些 mkdir
命令的详细示例:
创建新目录
基本的 mkdir
命令是用于创建新目录的。例如,如果你想创建一个名为 mydir
的新目录,你可以使用以下命令:
$ mkdir mydir
这将在当前工作目录下创建一个名为 mydir
的新目录。
创建多个目录
你也可以一次创建多个目录。例如,如果你想创建两个名为 dir1
和 dir2
的目录,你可以使用以下命令:
$ mkdir dir1 dir2
这将在当前工作目录下创建两个新目录,dir1
和 dir2
。
创建嵌套目录
如果你想一次创建多级目录(即目录的目录),你可以使用 -p
(或 --parents
)选项。例如,你可以创建一个名为 dir1
的目录,它包含一个名为 dir2
的子目录,dir2
又包含一个名为 dir3
的子目录:
$ mkdir -p dir1/dir2/dir3
如果这些目录已经存在,mkdir -p
不会显示错误,而是保持原样。
设置目录权限
在创建目录的同时,你也可以设置目录的权限。例如,如果你想创建一个名为 mydir
的新目录,并设置其权限为 755
(即所有者可以读写执行,组可以读执行,其他人可以读执行),你可以使用以下命令:
$ mkdir -m 755 mydir
以上就是 mkdir
命令的一些基本用法。使用这个命令,你可以很容易地在你的文件系统中创建新的目录和子目录。
关于 ./ …/
解析
当在命令行中使用 ./
和 ../
时,它们用于表示文件或目录的相对路径。
-
./
:表示当前目录。例如,如果你位于/home/user
目录中,那么./file.txt
就表示当前目录下的 “file.txt” 文件。 -
../
:表示上一级目录。例如,如果你位于/home/user/dir
目录中,那么../file.txt
就表示上一级目录中的 “file.txt” 文件,即/home/user/file.txt
。
实际例子
当你在命令行中进行文件和目录操作时,以下是一些实际使用 ./
和 ../
的例子:
-
执行当前目录下的可执行文件:假设你有一个名为
script.sh
的可执行脚本文件,并且你当前位于该脚本所在的目录中,你可以使用./script.sh
来运行它。 -
复制文件到上一级目录:假设你当前位于
/home/user/documents
目录中,而你想将一个名为report.txt
的文件复制到/home/user
目录中,你可以使用cp report.txt ../
命令。 -
导航到上一级目录并列出其中的文件:如果你位于
/home/user/documents
目录中,你可以使用cd ../
命令切换到/home/user
目录,并使用ls
命令列出其中的文件。 -
删除当前目录下的一个子目录:假设你的当前目录为
/home/user
,而你想删除名为temp
的子目录,你可以使用rm -r ./temp
命令来删除它。
mkdir …/data 命令
这条命令 mkdir ../data
是用于在当前目录的上一级目录中创建一个名为 “data” 的新目录。mkdir
是 “make directory” 的缩写,表示创建目录的意思。而 ../
是用于表示当前目录的上一级目录的路径。所以,执行这条命令后,会在当前目录的上一级目录中创建一个名为 “data” 的新目录。
…/data/lending-club-loan-data/loan.csv
这条命令 ../data/lending-club-loan-data/loan.csv
是一个文件路径,指向名为 “loan.csv” 的文件。它位于当前目录的上一级目录的 “data” 目录中的 “lending-club-loan-data” 子目录内。文章来源:https://www.toymoban.com/news/detail-495469.html
通过使用 ..
表示上一级目录,然后按照路径层次结构指定目录和文件名称,这个命令可以定位到所需的文件。这样,可以在文件系统中访问和操作 “loan.csv” 文件。文章来源地址https://www.toymoban.com/news/detail-495469.html
到了这里,关于Unix和Linux常用的命令(不断积累)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!