pwd来查看当前目录
ls [选项][目录或文件]
对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息
.
开头的隐含文件。
.
和..
开头的文件是隐藏目录,任何目录下都会有 ,-a可以进行查看语法:cd 目录名
改变工作目录。将当前工作目录改变到指定的目录下
cd ..
: 返回上级目录cd ~
:进入用户家目cd -
:返回最近访问目录
家目录的名称通常与用户的用户名相对应,并位于特定的高级目录下。例如,在标准的Linux系统中,家目录通常位于/home
目录下(如用户john
的家目录通常是/home/john
),而在macOS中,它们通常位于/Users
目录下(如用户john
的家目录会是/Users/john
)。对于root用户(超级用户),家目录通常是/root
。
绝对路径:
/
(路径分隔符),在Windows系统中通常是某个盘符如C:\
)开始的完整路径,它详尽地指出了文件或目录的位置,不管当前位置在哪里。/home/user/documents/report.txt
是一个绝对路径,它明确指向了/home/user/documents
目录下的report.txt
文件。相对路径:
./
表示当前目录,../
表示上一层目录。它们通常比绝对路径短,并且可以在当前工作目录改变时保持不变(只要相对关系没变)。/home/user/documents
,则可以使用相对路径./report.txt
来引用同一目录下的report.txt
文件,或者使用../pictures/image.jpg
来引用上一级目录中pictures
目录下的image.jpg
文件路径必须具有唯一性,任何一个文件都只有一个父目录,访问任何文件前都得先找到这个文件
指令本质都是程序—指令、程序、可执行程序都是一回事。指令就是程序 --安装和卸载是在做什么呢? 把可执行程序拷贝/删除到系统路径下
which pwd 打印出系统所在的路径
alias指令作用是给其他命令起别名
ll就是ls -l的别名
ls 直接执行的时候,带颜色
语法:touch [选项]… 文件…
touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件
在当前路径下创建一个普通文件
我们可以看见更详细的内容
语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
这个蓝色的list就是新的目录
以树状结构形式打印出目录结构
第一次是找不到这个执行命令的
yum -y install tree
进行安装
终止异常的命令
rmdir 它只能删除空目录
rm命令可以同时删除文件或目录
root账号下,它每次会进行询问,y代表yes,n代表no
一旦有不确定的目录或者文件,宁可备份,不可删除
*:表示一个通配符,匹配任意文件名
man
是 Linux 和 UNIX 系统中一个常用的命令,用于查看手册页面(manual pages)。手册页面是系统中大多数命令、程序、配置文件格式和通常的编程库函数的文档。手册页面提供了详细的用户级的文档,有助于用户了解如何使用这些命令和工具。
要使用 man
命令,可以在命令行终端输入 man
后跟你想了解相关信息的命令或程序名称。例如:
man ls
以上命令将显示 ls
命令的手册页面,其中包含了关于如何使用 ls
以及它的各种选项的信息。
手册页面被分为几个不同的部分,以便于查找和浏览:
如果你想查看某个特定部分的手册页面,可以指定部分的数字。例如,要查看 printf
程序的手册页(通常是第 1 部分),可以输入:
man 1 printf
而查看 printf
C 库函数的手册页(第 3 部分),则可以输入:
man 3 printf
还有一些有用的选项,可以用在 man
命令中:
-k
: 搜索手册页的简短描述,对于不知道准确命令的情况很有用。-f
: 相当于 whatis
命令,显示命令的简短描述。手册页对于新学习和使用 Linux 系统的用户来说是极其有用的资源,因为它们包含了所有命令的官方文档。在实践中,经常使用 man
命令可以更好地了解使用的工具和服务。
yum -y install man-pages
cp
是 Linux 和 Unix 系统中使用的一个基本命令,用于复制文件和目录。这个命令的一般语法如下:
cp [options] source destination
source
是要复制的文件或目录的路径。destination
是要将文件或目录复制到的路径。如果 destination
是一个已经存在的目录,那么 source
文件会被复制进这个目录,并且保留原文件名。如果 destination
是一个文件名(在当前目录下不存在这个名字的文件),那么 source
文件会被复制并重命名为 destination
。如果将多个文件复制到一个目录,需要在命令的最后指定目标目录。
以下是一些常用的 cp
命令选项:
-i
: 询问用户在覆盖已存在的目标文件之前是否继续。-r
或 -R
: 递归地复制目录及其内容。-v
: 显示详细信息,展示文件复制的过程。-p
: 保持原文件的属性(权限、时间戳)。-a
: 归档模式,复制目录及其全部内容,同时保持属性和符号链接等。-f
: 强制复制,如果目标文件已经存在,不提示用户即删除原文件。--preserve
: 保留指定的文件属性(如:所有权、时间戳),类似 -p
。--no-preserve
: 不保留指定的文件属性。--backup
: 在覆盖文件之前为其创建备份。这里有一些 cp
命令的示例:
将单个文件复制到另一个目录中:
cp file.txt /path/to/directory/
将文件复制到当前目录中的另一个名称:
cp file.txt newfile.txt
递归地复制一个目录及其所有内容:
cp -R /path/to/source/directory /path/to/destination/directory
在覆盖目标文件之前询问用户:
cp -i file.txt /path/to/directory/
复制文件时显示详细信息:
cp -v file.txt /path/to/directory/
把file.txt拷贝到上级目录并改名为1234.txt
Linux中同一个目录下,不允许存在同名文件
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录
它的语法如下:
mv [options] source destination
source
是要移动或重命名的文件或目录的路径。destination
是文件或目录的新位置或名称。如果 destination
是一个存在的目录,source
文件会被移动到这个目录中,并保持原文件名。如果 destination
是一个文件名,并且不存在与其相同名称的文件,source
文件或目录会被重命名为 destination
。如果命令中包含了多个 source
参数,那么最后的 destination
必须是一个已存在的目录。
以下是一些 mv
命令的选项:
-i
: 在覆盖目标文件之前提示用户确认。-u
: 仅当源文件比目标文件新,或者目标文件不存在时,才移动文件。-v
: 显示详细的操作信息,包括每次移动的文件。-f
: 强制移动文件,无视目标位置的文件是否存在,不提示用户。--no-clobber
: 不会覆盖目标目录中已存在的文件。这里有一些 mv
命令的使用示例:
将文件重命名:
mv old_name.txt new_name.txt
将文件移动到另一个目录:
mv file.txt /path/to/directory/
将目录重命名:
mv old_directory_name new_directory_name
在覆盖目标文件之前询问用户:
mv -i file.txt /path/to/directory/
移动一个目录到另一个目录中:
mv /path/to/source_directory /path/to/destination_directory/
mv
命令非常高效,因为它没有实际移动文件数据本身,而只是更新了文件系统中的索引,除非是跨文件系统移动。若要查看 mv
命令的完整文档和可用的选项,可以使用 man mv
来查看其手册页。
将xuan.txt移入0623并改名为abcd.txt
cat本质就是查看文件内容
-n 打印出行号
在 Unix 和类 Unix 系统中,包括 Linux,在命令行中,重定向(Redirection)是一种将命令的输出发送到除了标准输出(屏幕)以外的其他位置(如文件或另一个程序)的方法。它还可以用于从文件或程序而不是键盘获取输入。以下是几种重定向操作的基本介绍:
使用 >
符号可以将命令的输出重定向(原本要打印到显示屏上,现在重定向到文件中)到文件中,如果文件已经存在,则会覆盖文件的内容。例如,将 ls
命令的输出保存到 list.txt
文件中:
ls > list.txt
使用 >>
符号可以将内容附加到文件中,而不是覆盖它。例如,将追加 ls
命令的输出到 list.txt
文件中:
ls >> list.txt
使用 2>
符号可以将命令的错误输出重定向到文件中。例如,将 ls
对于不存在的文件的错误信息保存到 errors.txt
:
ls file_not_found 2> errors.txt
使用 2>>
符号可以将错误信息附加到文件中。例如:
ls file_not_found 2>> errors.txt
使用 <
符号可以使用文件内容作为命令的输入。例如,将 file.txt
的内容作为 grep
命令的输入:
grep 'some_text' < file.txt
使用 &>
或 >&
符号可以同时重定向标准输出和错误输出到同一个文件中。例如:
ls > all_output.txt 2>&1
或者
ls &> all_output.txt
/dev/null
/dev/null
是一个特殊文件,它会丢弃所有写入其中的数据(称为位桶)。将输出重定向到 /dev/null
就像是将输出丢弃掉了:
ls > /dev/null
使用重定向时,需要注意文件权限和已有内容可能被覆盖的问题。使用这些技巧可以在脚本中进行高级的数据流控制,或在日常使用命令行时更有效率地处理输出和输入。
我们可以直接用下面的方式创建新文件
>file.txt
所以,echo本身是写在显示器的文件中,现在输出或追加到新的文件中,重定向
cat 后面不接任何东西,默认从键盘文件读取内容,输入重定向从文件中读取内容
i=1; while [ $i -le 10000 ]; do echo "hello worle $i"; let i++; done > big.txt
我们构建一个大文件
语法: less [参数] 文件
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件
如果我现在只想拿到开头的一点信息,我只需要用head指令即可:
tail指令提取文件的结尾
规定取五行
如果现在要取文件的8000到8010这十行呢?
方法一:我们先将前8010行提取到一个新文件中再取尾
方法二:
|
这个竖划线符号,我们称为管道
Linux中的管道(pipe)是一种强大而常用的特性,它允许你将一个命令的输出直接作为下一个命令的输入。这使得你可以将多个简单的工具组合在一起,完成复杂的任务。管道在Linux命令行中使用竖线符号(|
)表示。
下面是一些常用管道的例子:
基本示例:将 ls
命令的输出通过管道传递给 grep
,以过滤出包含特定字符串的文件或目录。
ls | grep 'pattern'
逐层处理:将 ps
命令的输出通过管道传递给 grep
,然后再通过 sort
排序。
ps aux | grep 'some_process' | sort
与其他命令结合:将 cat
命令的输出通过管道传递给 awk
,处理文本数据。
cat file.txt | awk '{ print $1 }'
多层管道:将多个命令连接在一起进行复杂的处理。
dmesg | grep 'keyword' | less
统计数据:使用 wc
命令统计文件内容的行数、单词数和字符数。
cat file.txt | wc -l
重定向和管道结合:可以将命令的输出通过管道传递并重定向到文件。
ls -l | grep 'pattern' > output.txt
通过管道,可以有效地组织和处理数据,减少手动操作,提升效率。熟练使用管道是成为Linux命令行高手的关键之一
date 指定格式显示时间: date +%Y:%m:%d
date 用法:date [OPTION]… [+FORMAT]
时间->时间戳:date +%s 时间戳->时间:date -d@1508749502
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒
例如,Unix时间戳 1633096800 对应于2021年10月1日00:00:00
cal命令可以用来显示公历(阳历)日历
find
是一个强大和灵活的命令,用于在Linux文件系统中搜索文件和目录。它能够按多种条件搜索文件,并对找到的文件执行操作。下面是一些 find
基本用法和常见示例:
find [搜索路径] [搜索条件] [操作]
-name [名称]
:按名称搜索(支持通配符)。-iname [名称]
:按名称搜索(忽略大小写,支持通配符)。-type [类型]
:按文件类型搜索(文件:f
,目录:d
,符号链接:l
)。-size [大小]
:按文件大小搜索(如 +100M
表示大于100MB的文件)。-mtime [天数]
:按修改时间搜索(如 -mtime -7
表示7天内修改的文件)。-atime [天数]
:按访问时间搜索。-ctime [天数]
:按创建时间搜索。-exec [命令] \;
:对找到的文件执行指定命令。-delete
:删除找到的文件(使用时需谨慎)。在当前目录及其子目录中按名称搜索文件:
find . -name "filename.txt"
在指定目录中模糊匹配名字(忽略大小写):
find /path/to/search -iname "*.txt"
搜索大于100MB的文件:
find / -size +100M
搜索类型为目录的文件:
find /path/to/search -type d
搜索最近7天内修改过的文件:
find /path/to/search -mtime -7
搜索并执行命令(如删除文件):
find /path/to/search -name "*.tmp" -exec rm {} \;
搜索并重定向结果到文件:
find /path/to/search -name "*.log" > log_files.txt
按权限搜索文件:
find /path/to/search -perm 644
利用 find
可以组合使用多个条件,如逻辑操作符 -and
(默认)、-or
和 -not
:
# 查找目录中修改时间在7天内并且文件名包含 ".log" 的文件
find /path/to/search -mtime -7 -name "*.log"
# 查找目录中名字为 ".log" 或 ".txt" 的文件
find /path/to/search \( -name "*.log" -or -name "*.txt" \)
# 查找目录中文件名不包含 ".bak" 的文件
find /path/to/search -not -name "*.bak"
通过结合多种条件和操作,find
命令可以实现几乎任何文件搜索需求,成为Linux系统中极为重要的工具。系统管理员和开发人员通过熟练掌握 find
可以有效提高工作效率,执行复杂的文件操作。
语法: grep [选项] 搜寻字符串 文件 功能: 在文件中搜索字符串,将找到的行打印出来 常用选项:
zip
和 unzip
是Linux系统中常用的压缩和解压缩工具。它们分别用来创建和解压缩ZIP格式的压缩文件。
zip
创建压缩文件zip [选项] 压缩文件名.zip 要压缩的文件或目录
-r
:递归地压缩目录中的文件。-x
:排除特定文件。-9
:使用最佳压缩方法(范围从 -0
到 -9
,数字越大压缩比越高但速度越慢)。-q
:安静模式,不显示压缩过程中的信息。-e
:对压缩文件进行加密。压缩单个文件:
zip archive.zip file.txt
递归压缩目录:
zip -r archive.zip directory/
高压缩比压缩文件:
zip -9 archive.zip file.txt
排除目录中的某些文件:
zip -r archive.zip directory/ -x "*.tmp"
创建加密的压缩文件:
zip -e archive.zip file.txt
unzip
解压缩文件unzip [选项] 压缩文件名.zip
-d
:指定解压缩目录。-n
:若文件已存在,不覆盖。-o
:若文件已存在,覆盖。-q
:安静模式,不显示解压缩过程中的信息。-l
:列出压缩文件中的内容而不解压。解压缩文件到当前目录:
unzip archive.zip
解压缩到指定目录:
unzip archive.zip -d /path/to/destination/
若文件已存在,不覆盖:
unzip -n archive.zip
覆盖已存在的文件:
unzip -o archive.zip
列出压缩文件中的内容而不解压:
unzip -l archive.zip
zip
和 unzip
你经常可能会在脚本中组合使用这两个命令。例如,你可能需要先压缩当前目录下的文件,然后在另一台机器解压缩:
# 在当前目录下创建一个压缩文件
zip -r backup.zip /path/to/data
# 传输 backup.zip 到另一台机器后,在目标机器解压
unzip backup.zip -d /path/to/extract/
通过熟练掌握 zip
和 unzip
命令,你可以方便、快捷地处理文件压缩和解压缩,提高工作效率。
tar
是一个广泛使用的Unix/Linux命令行工具,用于创建、维护、提取和操作归档文件。tar
这个名字来自于“tape archive”的缩写,最初它是用来将数据写入磁带的。但现在这个命令通常用于创建和操作存储在硬盘或其他存储介质上的文件。tar
文件扩展名通常是.tar
,且tar
可以与压缩工具结合使用,如gzip或bzip2,来减小归档文件的大小。
tar
命令tar -cvf archive_name.tar /path/to/directory
tar -czvf archive_name.tar.gz /path/to/directory
tar -cjvf archive_name.tar.bz2 /path/to/directory
tar -tvf archive_name.tar
tar -xvf archive_name.tar
tar -xzvf archive_name.tar.gz
tar -xjvf archive_name.tar.bz2
tar -rvf archive_name.tar /path/to/newfile
tar
命令参数说明-c
: 创建一个新归档文件。-x
: 从归档文件中提取文件。-v
: 详细模式(verbose),显示执行过程。-f
: 指定归档文件名,应该紧跟在-f
之后。-t
: 显示归档中的内容,不解压。-z
: 指示tar
和gzip
一起使用,用于压缩或解压.tar.gz
或.tgz
文件。-j
: 指示tar
和bzip2
一起使用,用于压缩或解压.tar.bz2
文件。-r
: 向现有的归档文件中追加文件。-u
: 更新归档中的文件。