💗个人主页💗
⭐个人专栏——数据结构学习⭐
💫点击关注🤩一起学习C语言💯💫
目录
- 导读:
- 1. 认识Linux
- 1.1 什么是Linux
- 1.2 Linux特点
- 2. ls指令
- 3. pwd命令
- 4. cd 指令
- 5. touch命令
- 6. mkdir指令
- 7. rmdir指令 && rm 指令
- 8. man指令
- 9. cp指令
- 10. mv指令
- 11. cat指令
- 12. more指令
- 13. less指令
导读:
今天新增加了新的内容——Linux。
相对于C语言来说,大家对Linux应该是比较陌生的,但是没关系,基本指令这些对大家都很友好。
今天我们学习的指令有ls,pwd,cd,touch,mkdir,rmdir,rm,man,cp,mv,cat,more,less。
1. 认识Linux
1.1 什么是Linux
相较于windows、mac,Linux同样是一个操作系统。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
1.2 Linux特点
- 开源:Linux是一个开源操作系统,意味着它的源代码是公开可用的。这使得用户可以自由地查看、修改和分发Linux操作系统。
- 多用户和多任务:Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
- 稳定性和可靠性:Linux操作系统在设计上注重稳定性和可靠性,它能够长时间运行而不出现系统崩溃或死机的情况。
- 安全性:Linux操作系统的安全性较高,它提供了强大的权限管理系统,使得用户可以精确地控制对文件和系统资源的访问权限。
- 跨平台性:Linux操作系统可以在多种硬件平台上运行,它可以安装在个人计算机、服务器、嵌入式系统、移动设备等各种设备上。
- 良好的网络支持:Linux操作系统具有出色的网络功能和性能,适用于各种网络应用和服务。
- 丰富的软件资源:Linux操作系统有大量的开源软件和应用程序可供选择和使用,用户可以根据需要轻松获取、安装和更新软件。
2. ls指令
ls是Linux和Unix系统中的一个命令,用于列出指定目录下的文件和子目录。它的全称是"list",通过ls命令可以查看当前目录的文件和子目录的名称、权限、大小和修改时间等信息。
语法: ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。
常用选项:
ls: 显示当前目录中的文件和子目录。
[zhy@Centos ~]$ ls
111 test.txt
在这个目录下有111这个子目录和一个名为test的txt文件。
ls -l: 以长格式显示文件和子目录的详细信息,包括权限、所有者、大小和修改日期等。
同样的,ls -l 还可以缩写成ll。
[zhy@Centos ~]$ ls -l
total 4
drwxrwxr-x 3 zhy zhy 4096 Jan 2 20:25 111
-rw-rw-r-- 1 zhy zhy 0 Jan 2 20:52 test.txt
[zhy@Centos ~]$ ll
total 4
drwxrwxr-x 3 zhy zhy 4096 Jan 2 20:25 111
-rw-rw-r-- 1 zhy zhy 0 Jan 2 20:52 test.txt
-rw-rw-r– 为文件的权限。
zhy zhy 是文件的所有者。
0 是文件的大小。
2 20:52 是文件的修改日期。
test.txt 则是文件名。
ls -a: 显示所有文件和子目录,包括以.开头的隐藏文件。
[zhy@Centos ~]$ ls -a
. 111 .bash_logout .bashrc .viminfo
.. .bash_history .bash_profile test.txt
以及其它不太常用到的:
- ls -h:以人类可读的格式显示文件和子目录的大小。
- ls -r:反向显示文件和子目录的顺序。
- ls -t:按修改时间的顺序显示文件和子目录。
- ls -S:按大小的顺序显示文件和子目录。
- ls -R:递归显示当前目录及其子目录中的文件和子目录。
- ls -G:以彩色输出显示文件和子目录。
- ls --help:显示关于ls命令的帮助信息。
这只是ls命令的一小部分选项,还有更多选项可以使用。可以使用man ls命令查看全部选项和更详细的说明。
3. pwd命令
pwd命令是Linux和Unix系统中的一个命令,用于查看当前所处的工作目录的路径。
使用pwd命令非常简单,只需在终端中输入pwd即可。执行该命令后,终端会显示当前所处的工作目录的完整路径。
[zhy@Centos ~]$ pwd
/home/zhy
4. cd 指令
cd指令是指在命令行中切换当前工作目录的命令。它是"change directory"的缩写。
使用cd指令,可以进入其他目录或返回上一级目录。
[zhy@Centos ~]$ cd 111
#进入指定的目录路径。
[zhy@Centos 111]$ cd ..
#返回上一级目录。
[zhy@Centos ~]$ cd 111/tmp1
#绝对路径进入目录
[zhy@Centos tmp1]$ cd /
#进入根目录。
[zhy@Centos /]$ cd ~
#进入当前用户的主目录。
[zhy@Centos ~]$
5. touch命令
touch命令是一个在Linux和其他类Unix操作系统中使用的命令,用于创建空文件或者修改文件的访问和修改时间戳。
touch [选项] 文件名
常用选项:
- -a:仅修改访问时间。
- -c:如果文件不存在,则不创建文件。
- -m:仅修改修改时间。
- -d:后面跟时间参数,设置文件的访问和修改时间为指定时间。
[zhy@Centos ~]$ touch file.txt
#创建一个名为"file.txt"的空文件
#如果文件已经存在,touch命令将会更新该文件的访问和修改时间戳。
[zhy@Centos ~]$ ll file.txt #查看文件信息
-rw-rw-r-- 1 zhy zhy 0 Jan 2 21:31 file.txt
[zhy@Centos ~]$ touch -d "2022-01-01 12:00:00" file.txt
#修改文件的访问和修改时间戳
[zhy@Centos ~]$ ll file.txt
-rw-rw-r-- 1 zhy zhy 0 Jan 1 2022 file.txt
6. mkdir指令
mkdir指令是用来创建一个新的目录(文件夹)的指令。它的用法是在命令行中输入"mkdir"后加上目录的名称,然后按回车键执行。
例如,想在当前目录下创建一个名为“new_test”的文件。
[zhy@Centos ~]$ ls
111 book book1 file.txt test.txt
[zhy@Centos ~]$ mkdir new_folder
[zhy@Centos ~]$ ls
111 book book1 file.txt new_folder test.txt
如果想要在新的目录下创建嵌套的目录,可以使用以下命令:
[zhy@Centos ~]$ mkdir new_folder/sub_folder
[zhy@Centos ~]$ cd new_folder
[zhy@Centos new_folder]$ ls
sub_folder
7. rmdir指令 && rm 指令
rmdir指令用于删除空的目录。
语法:
rmdir [选项] <目录>
[zhy@Centos ~]$ ls
111 book book1 file.txt new_folder test.txt
[zhy@Centos ~]$ rmdir book1
[zhy@Centos ~]$
[zhy@Centos ~]$ ls
111 book file.txt new_folder test.txt
- p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
[zhy@Centos ~]$ rmdir -p new_folder/sub_folder
[zhy@Centos ~]$ ls
111 book file.txt test.txt
rm指令用于删除文件和目录。
语法:
rm [选项] <文件或目录>
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
[zhy@Centos ~]$ rm book
[zhy@Centos ~]$ ls
111 file.txt new_folder test.txt
如果要删除非空目录,可以使用-r或者-R选项。
[zhy@Centos ~]$ rm -r new_folder
[zhy@Centos ~]$ ls
111 file.txt test.txt
8. man指令
man指令是一个用于查看Linux系统中命令、函数等的帮助手册的命令。它提供了详细的文档和说明。
语法:
man [选项] <命令或函数>
例如:
[zhy@Centos ~]$ man ls
这将显示有关"ls"命令的帮助手册。
man命令将会打开一个分页器(pager),你可以使用空格键向下翻页,按b键向上翻页,按q键退出。
常用的选项:
-f:显示有关一个特定命令或函数的简短描述。
-k:搜索包含指定关键字的命令和函数。
-a:显示所有匹配的帮助手册。
num 只在第num章节找
请注意,man命令的帮助手册内容通常是系统预装的,如果你需要查看其他软件或工具的帮助手册,可能需要安装相应的软件包或文档。
9. cp指令
cp指令是Linux系统中用于复制文件或目录的命令。
语法:
cp [选项] 源文件或目录 目标文件或目录
常用选项:
-r或-R:递归复制目录及其内容
-i:如果目标文件已存在,会提示是否覆盖
-u:只复制源文件比目标文件新或目标文件不存在的文件
-v:显示复制过程详细信息
-a:以递归方式复制,并保留文件属性和权限
-b:在复制文件时,如果目标文件已存在,会进行备份
-s:使用符号链接复制文件
-l:复制文件并创建硬链接
-P或–no-dereference:复制符号链接的源文件,而不是链接的目标文件
[zhy@Centos ~]$ ls
111 file.txt test.txt
[zhy@Centos ~]$ cp file.txt file1.txt
# 将file.txt复制为file1.txt
[zhy@Centos ~]$ cp -r 111 tmp1
# 将111目录及其内容复制到tmp1目录中
[zhy@Centos ~]$ ls
111 file1.txt file.txt test.txt tmp1
[zhy@Centos ~]$ cp -a tmp1 tmp2
# 以递归方式复制tmp1目录及其内容,并保留文件属性和权限
[zhy@Centos ~]$ ls
111 file1.txt file.txt test.txt tmp1 tmp2
[zhy@Centos ~]$ ll
total 12
drwxrwxr-x 3 zhy zhy 4096 Jan 2 20:25 111
-rw-rw-r-- 1 zhy zhy 0 Jan 3 18:45 file1.txt
-rw-rw-r-- 1 zhy zhy 0 Jan 1 2022 file.txt
-rw-rw-r-- 1 zhy zhy 0 Jan 2 20:52 test.txt
drwxrwxr-x 3 zhy zhy 4096 Jan 3 18:46 tmp1
drwxrwxr-x 3 zhy zhy 4096 Jan 3 18:46 tmp2
请注意,如果目标文件已存在,cp指令默认会覆盖目标文件。如需避免覆盖,请使用-i选项。
10. mv指令
在Linux中,mv指令是用来移动或重命名文件和目录的命令。
语法:
mv [选项] 源文件或目录 目标文件或目录
功能:
- 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的 目录中。
- 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它 将所给的源文件或目录重命名为给定的目标文件名。
- 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至 目标目录中。
常用选项:
-r 或 -R:递归地移动目录及其内容。
-i:交互式地移动文件或目录,在移动前会询问用户是否覆盖。
-f:强制覆盖目标文件或目录,不询问用户。
[zhy@Centos ~]$ ls
111 file1.txt file.txt test.txt tmp1 tmp2
[zhy@Centos ~]$ mv file1.txt tmp1
#将文件file1.txt移动到目录tmp1中
[zhy@Centos ~]$ ls
111 file.txt test.txt tmp1 tmp2
[zhy@Centos ~]$ cd tmp1
# 进入目录查看
[zhy@Centos tmp1]$ ls
book file1.txt
[zhy@Centos tmp1]$ mv file1.txt file2.txt
#将文件file1.txt重命名为file2.txt
[zhy@Centos tmp1]$ ls
book file2.txt
注意事项:
- 如果目标文件或目录已经存在,则mv指令默认会将源文件或目录移动到目标位置,并保留原有的文件名或目录名。
- 如果目标位置已经存在同名文件或目录,并且没有使用-f选项,则mv指令会询问是否覆盖目标文件或目录。
11. cat指令
在 Linux 中,cat 是一个常用的命令行工具,用于显示文件的内容。
语法:
cat [选项][文件]
[zhy@Centos ~]$ ls
111 file.txt test.txt tmp1 tmp2
#显示一个文件的内容
[zhy@Centos ~]$ cat file.txt
hello world!
#显示多个文件的内容
[zhy@Centos ~]$ cat file.txt test.txt
hello world!
wolf
[zhy@Centos ~]$ cat file.txt > newfile.txt
# > 表示重定向,newfile 是要保存内容的文件名。
#如果文件不存在,则会创建一个新文件;
#如果文件已存在,则会覆盖原有文件。
[zhy@Centos ~]$ ls
111 file.txt newfile.txt test.txt tmp1 tmp2
[zhy@Centos ~]$ cat newfile.txt
hello world!
[zhy@Centos ~]$ cat file.txt test.txt > newfile.txt
#将多个文件内容合并到一个文件中
[zhy@Centos ~]$ cat newfile.txt
hello world!
wolf
[zhy@Centos ~]$ cat -n newfile.txt
#以行的方式显示文件内容,并显示行号1 hello world!2 wolf
[zhy@Centos ~]$ cat newfile.txt | less
#将文件内容按页显示,并逐页显示
12. more指令
more指令是Linux中的一个用于显示文本文件内容的命令。它可以逐页显示文件内容,以便于用户分页查看和浏览大文件。
more命令会逐页显示文件的内容,用户可以使用键盘进行操作,如向下滚动一页、向上滚动一页、跳转到特定行等。
语法:
more [选项][文件]
常用选项:
/pattern:搜索指定的模式,例如"/keyword"会在文件中搜索关键字"keyword"。
:n:跳转到第n行。
:p:显示上一页内容。
:f:显示文件名和当前页数。
:q:退出more程序。
more命令还支持一些其他选项,例如设置行数显示的长度、禁用行数显示、显示帮助等。用户可以通过"man more"命令查看more命令的详细说明和使用方法。
[zhy@Centos ~]$ more newfile.txt
hello world!
wolf
13. less指令
less是一个用于查看文本文件内容的命令行工具。它可以逐页显示文件内容,并提供一些浏览和搜索文件的功能。
语法:
less [选项] 文件名
常用选项:
-N 或 --LINE-NUMBERS:显示行号。
-i 或 --IGNORE-CASE:忽略大小写。
-S 或 --LINE-WRAP:禁止折行。
-F 或 --QUIT-AT-EOF:查看完文件后立即退出。
-R 或 --RAW-CONTROL-CHARS:显示控制字符。
-h 或 --HELP:显示帮助信息。
在less中,可以使用以下命令进行文件的浏览和搜索:
空格键:向下翻页。
Enter键:向下滚动一行。
b键:向上翻页。
q键:退出less。
/字符串:向下搜索指定的字符串。
?字符串:向上搜索指定的字符串。
n键:跳转到下一个匹配的字符串处。
N键:跳转到上一个匹配的字符串处。
这些是less命令中的一些基本用法和常见选项,更多的功能和选项可以在使用man less命令查看 less 的手册页。
[zhy@Centos ~]$ less -N .bash_history