一句话介绍一下Linux
Linux是一种开源的操作系统,广泛运用再服务器、桌面电脑、移动设备和嵌入式系统中。这个个基于Unix的多用户、多任务操作系统,具有高可指定性和灵活性。
Linux下的基本指令大全
下面将Linux指令分成9种不同的主要类别:
-
文件管理指令:这些指令用于文件和目录的创建、编辑、复制、移动和删除。例如:
ls
(列出目录内容),cp
(复制文件或目录),mv
(移动或重命名文件或目录),rm
(删除文件或目录)。 -
文本处理指令:这些指令用于文本文件的查看、编辑和处理。例如:
cat
(查看文件内容),grep
(文本搜索),sed
(流编辑器),awk
(模式扫描和文本处理语言)。 -
系统管理指令:用于监控和管理系统资源和进程。例如:
top
(显示进程的动态实时视图),ps
(显示当前运行的进程),kill
(终止进程),df
(显示磁盘空间使用情况),free
(显示内存使用情况)。 -
网络管理指令:用于管理和诊断网络问题。例如:
ping
(检查网络连接),ifconfig
(配置或显示网络接口参数),ssh
(安全地访问远程服务器),scp
(通过SSH协议安全地复制文件)。 -
权限和用户管理指令:用于管理用户权限和用户账户。例如:
chmod
(改变文件权限),chown
(改变文件所有者),useradd
(添加新用户),passwd
(更改用户密码)。 -
软件管理指令:用于安装、更新和移除软件包。不同的Linux发行版可能使用不同的包管理器,例如:
apt
(在基于Debian的系统上),yum
(在基于Red Hat的系统上),pacman
(在Arch Linux上)。 -
编程和开发指令:提供编程和脚本编写支持。例如:
gcc
(C语言编译器),git
(版本控制系统),make
(自动化编译工具)。 -
帮助和信息指令:提供帮助信息和系统信息。例如:
man
(查看手册页),info
(查看程序的信息页),whatis
(显示一行命令描述)。
文件管理指令
ls指令
‘ls’是一个列出目录信息内容的基本指令,其中由很多选项来改变输出的格式或者显示更多的细腻些,下面是一些常见的ls的选项,在使用ls的时候可以在后面加上这些选项达到你需要的目的
基本用法
//列出当前目录中的文件和目录:
ls
//列出指定目录中的文件和目录:
ls /path/to/directory
-a,-all:显示所有文件,包括以(.)开头的隐藏文件
-l: 简写(ll)显示长格式列出信息,显示文件的权限,所有者、大小、最后修改日期等详细信息。
-h, --human-readable:与 -l
一起使用时,以更易读的格式显示文件大小(例如 KB、MB)。
-r, --reverse:反转排序结果,通常与排序选项(如 -t
、-S
)一起使用。
-t:根据修改时间排序,最近修改的文件先显示。
-S:根据文件大小排序,最大的文件先显示。
--color[=WHEN]:控制是否使用颜色来区分不同类型的文件。WHEN
可以是 never
、auto
或 always
。
-R, --recursive:递归地列出所有子目录的内容。
-d, --directory:仅列出目录本身,而不是其内容。
-F, --classify:在每个文件名后添加一个字符,以指示该文件的类型(例如,/
表示目录,*
表示可执行文件)。
--sort=WORD:指定排序方式,WORD
可以是 none
(不排序)、size
(按大小)、time
(按时间)、version
(按版本)等。
-1:每行只列出一个文件,适用于将输出重定向到文件或管道。
示例
//列出所有文件,包括隐藏文件:
ls -a
//以长格式列出文件和目录的详细信息:
ls -l
ll
//以人类可读的格式显示文件大小:
ls -lh
//按修改时间排序并以长格式显示:
ls -lt
//递归地列出目录内容:
ls -R
cp指令
'cp'命令在Linux系统中用于复制文件和目录,提供了很多不同的方式来控制复制行为
基本用法
//复制文件:将一个或多个文件复制到指定的目录中。
cp [options] source destination
//复制目录:复制整个目录及其内容。
cp -r [options] source_directory destination_directory
-a, --archive:归档模式,等同于 -dR --preserve=all
,它保留所有的文件属性(如链接、权限、所有者信息)并递归复制。
-r, -R, --recursive:递归复制目录及其内容。当复制目录时通常需要此选项。
-i, --interactive:在覆盖现有文件前提示用户确认。如果用户不确认,文件不会被覆盖。
-u, --update:仅当源文件比目标文件新,或者目标文件不存在时,才复制文件。
-v, --verbose:显示详细的复制过程信息。
-p, --preserve:保留指定的属性(如模式、所有权、时间戳),如果没有指定属性,则默认保留所有属性。
--preserve=属性列表:保留指定的属性列表,如 --preserve=mode,ownership,timestamps
。
-l, --link:创建硬链接,而不是复制文件。
-b, --backup:在覆盖目标文件前,为其创建一个备份。
-s, --symbolic-link:创建符号链接,而不是复制文件
示例
//复制单个文件:
cp source.txt /path/to/destination/
//递归复制目录:
cp -r source_directory/ /path/to/destination_directory/
//交互式复制:如果目标目录中已有同名文件,系统会提示是否覆盖
cp -i source.txt /path/to/destination/
//更新式复制:只有当源文件比目标目录中的同名文件新时,才会执行复制
cp -u source.txt /path/to/destination/
mv指令
‘mv’命令在linux中可以实现移动和重命名文件和目录,这个指令不仅可以改变文件的位置,还可以改变文件的名称。‘mv’的选项和‘cp’的选项类似,很多都是可以通用的
基本用法
//移动文件:将文件从一个位置移动到另一个位置。、
mv [options] source destination
//重命名文件:改变文件或目录的名称。
mv [options] oldname newname
-i, --interactive:在覆盖已存在的文件前提示用户确认。如果用户不同意,文件不会被覆盖。
-u, --update:只有当源文件比目标文件新,或者目标文件不存在时,才会移动文件。
-v, --verbose:显示关于 mv
操作的详细信息。
-f, --force:强制移动文件,即使目标文件已存在也不会提示。
-n, --no-clobber:在目标位置已存在文件时,不进行移动。
-t, --target-directory=目录:指定目标目录,然后列出所有要移动的文件。
-T, --no-target-directory:将目标视为普通文件而不是目录。
--backup[=CONTROL]:在覆盖文件之前,为其创建一个备份。CONTROL
可以是 none
、off
、numbered
、t
、existing
、nil
等,用来指定备份文件的命名方式。
--suffix=SUFFIX:覆盖文件时,指定备份文件的后缀。
--help:显示帮助信息。
--version:显示版本信息。
示例
//移动文件:
mv file.txt /path/to/directory/
//重命名文件:
mv oldname.txt newname.txt
//交互式移动:如果目标目录中已经有一个名为 file.txt 的文件,系统会提示是否覆盖。
mv -i file.txt /path/to/directory/
//更新式移动:只有当源文件比目标目录中的同名文件新时,才会执行移动。
mv -u srcfile.txt /path/to/directory/
mv
命令在文件整理和管理中非常实用,但需要谨慎使用,尤其是在使用 -f
选项时,因为它可能会导致数据丢失。
rm指令
'rm'命令在linux中是用于删除文件和目录。一旦使用它删除了文件,这些文件通常是无法恢复的,所以在Linux中删除需要用backup后再删除,谨慎一点。
基本用法
//删除文件:删除一个或多个文件。
rm [options] file1 file2 ...
//删除目录:删除目录及其所有内容(包括子目录和文件)。
rm -r [options] directory
-f, --force:强制删除文件,即使文件不存在也不会显示错误信息。
-i:交互式删除,在删除每个文件前都会询问用户。
-r, -R, --recursive:递归删除目录和其内容。当用于删除目录时,这个选项是必须的。
-v, --verbose:显示详细过程,报告每个被删除的文件。
--no-preserve-root:允许删除根目录(/
)。这是一个非常危险的选项,应该极其小心地使用。
--preserve-root:防止递归删除根目录(默认行为)。
--one-file-system:在递归删除时,避免跨越文件系统边界。
-d, --dir:删除空目录。
--help:显示帮助信息。
--version:显示版本信息。
使用 rm
命令时,特别是配合 -r
和 -f
选项时,需要格外小心,因为这可能会导致不可恢复的数据丢失。例如,rm -rf /
命令将删除系统的所有文件,是非常危险的操作。通常建议使用 -i
选项进行确认,尤其是在删除重要文件或大量文件时。
示例
//删除单个文件:
rm file.txt
//交互式删除多个文件:
rm -i file1.txt file2.txt
//强制删除目录及其内容:
rm -rf /path/to/directory
touch指令
‘touch‘再Linux中用于设置文件的访问和修改时间戳。如果指定文件不存在,’touch‘就会去创建一个新的文件。这个命令对于创建新文件、或者简单的改变文件现有文件的时间戳十分有用
基本用法:
touch filename
-a:只更改文件的访问时间。
-m:只更改文件的修改时间。
-c, --no-create:不创建任何文件。如果指定的文件不存在,touch
不会创建新文件。
-d, --date=STRING:使用字符串 STRING 指定的时间而不是当前时间。
-t STAMP:使用格式为 [[CC]YY]MMDDhhmm[.ss] 的时间戳,而不是当前时间。
--time=WORD:更改指定时间类型(访问时间、修改时间或创建时间)。WORD
可以是 atime
, access
, use
, mtime
或 modify
。
-r, --reference=FILE:使用另一个文件的时间戳,而不是当前时间。
--help:显示帮助信息。
--version:显示版本信息。
示例:
//创建一个新文件:
touch newfile.txt
//将文件的访问和修改时间更改为当前时间:
touch existingfile.txt
//使用另一个文件的时间戳:
touch -r referencefile.txt newfile.txt
//设置特定的时间戳:
touch -t 202112010830.00 filename
mkdir指令
’mkdir‘再Linux中用于创建一个新的目录
基本用法
//创建一个新目录:
mkdir [options] directory_name
//同时创建多个新目录:
mkdir [options] dir1 dir2 dir3
-p, --parents:递归创建目录。如果指定的目录的上级目录不存在,mkdir -p
会自动创建所有必需的父目录。
-v, --verbose:显示创建过程中的信息。
-m, --mode=MODE:设置新创建目录的权限。MODE
是一个符合 Unix 权限表示法的数值(例如 755 或 644)。
示例
//创建一个单独的目录:
mkdir my_directory
//递归创建多级目录结构:
//如果 project 和 project/src 目录不存在,这个命令会先创建这些目录,然后再创建 main 目录。
mkdir -p project/src/main
//创建具有特定权限的目录:
mkdir -m 755 secure_dir
rmdir指令
’rmdir‘在Linux中用于删除空目录。专门用来一出已经为空的目录,相比于 rm
命令,rmdir
在安全性上更有优势,因为它只能删除空目录,避免了误删目录内容的风险。
基本用法
//删除一个空目录:
rmdir [options] directory_name
//递归删除多级空目录:
rmdir -p dir1/dir2/dir3
find指令
find
命令是 Linux系统中用于在文件系统中搜索匹配特定条件的文件和目录。它可以根据多种条件进行搜索,如文件名、文件类型、文件大小、权限、所有者、修改日期等。
基本用法
//在指定路径下搜索文件或目录:
find [path] [expression]
-name pattern:按照指定的模式搜索文件名。模式内可以使用通配符,如 *.txt
用于匹配所有的文本文件。
-type [type]:按文件类型搜索。常用的类型包括 f
(普通文件)、d
(目录)、l
(符号链接)等。
-size [size]:按文件大小搜索。可以指定单位,如 +50M
表示搜索大于 50 MB 的文件。
-perm [permission]:按权限搜索文件。权限可以用八进制数或符号表示法指定。
-user [username]:搜索属于指定用户的文件。
-group [groupname]:搜索属于指定群组的文件。
-mtime [n]:按文件的最后修改时间搜索。n
是天数,+n
表示超过 n
天,-n
表示不超过 n
天。
-exec [command] {} ;:对搜索到的每个文件执行指定的命令。
-maxdepth [n]:限制搜索的目录深度。
-mindepth [n]:指定最小搜索深度。
示例:
//搜索特定文件:
find /home -name "*.txt"
//搜索特定类型的文件:在根目录下搜索所有目录。
find / -type d
//搜索特定大小的文件:搜索所有大于 50 MB 的文件
find / -size +50M
//结合使用 -exec:将指定目录下所有文件的权限设置为 644。
find /path/to/dir -type f -exec chmod 644 {} \;
tar && zip/unzip 指令
基本用法:
tar命令:
tar
(tape archive)命令主要用于创建归档文件(也称为 tarball)。它可以将多个文件和目录合并为一个单独的归档文件,并且可以与压缩命令结合使用,例如 gzip 或 bzip2。
//创建归档文件:
tar -cf archive_name.tar file1 file2 dir1
//解压归档文件:
tar -xf archive_name.tar
//创建压缩的归档文件:
tar -czf archive_name.tar.gz file1 file2 dir1
//解压缩归档文件:
tar -xzf archive_name.tar.gz
常用选项
-c:创建一个新的归档文件。
-x:从归档文件中提取文件。
-f:指定归档文件名。
-z:用 gzip 压缩或解压缩。
-j:用 bzip2 压缩或解压缩。
-v:显示过程中的详细信息。
-t:列出归档内容而不解压。
zip/unzip命令:
zip
命令用于创建 ZIP 格式的压缩文件,而 unzip
命令用于解压 ZIP 文件。
//压缩文件或目录:
zip archive_name.zip file1 file2 dir1
//解压 ZIP 文件:
unzip archive_name.zip
类似与tar的常用选项也都可以用
下一篇文章将展示文本管理指令的用法
未完待续。。。。