Linux常用命令归纳总结(新手入职篇)
一:文件和命令
1、cd命令
cd 命令用于改变当前工作目录,cd 命令允许你切换到文件系统中的其他目录。
cd
:不带任何参数使用 cd 命令时,它会将你带到你的主目录,也就是你的家目录,通常对于非 root 用户来说是 /home/你的用户名,对于 root 用户来说是 /root。
cd ~
:这个命令会将当前工作目录改变到用户的主目录(home directory)。在Linux中,每个用户都有一个主目录,通常位于 /home/用户名(对于非root用户)或 /root(对于root用户)。~ 是一个快捷方式,代表当前用户的主目录。
cd /
:这个命令会将当前工作目录改变到根目录(root directory)。根目录是Linux文件系统层次结构的最顶层目录,所有的其他目录和文件都是从这个根目录开始的。在大多数Linux发行版中,根目录的路径就是 /。
简而言之,cd ~ 用于快速跳转到用户的个人目录,而 cd / 用于跳转到整个文件系统的最顶层目录。
cd ..
:返回上一级目录
cd ../..
:返回上两级目录
cd -
:切换到之前的工作目录(即返回到执行 cd 命令前所在的目录)。
2、mkdir命令
mkdir directory_name
:这将创建一个名为 directory_name 的新目录。
mkdir dir1 dir2 dir3
:这将创建三个目录:dir1、dir2 和 dir3。
mkdir -p dir1/dir2/dir3
:使用 -p
选项可以创建多级目录结构,即使中间的目录不存在,也不会报错。
mkdir -m 755 dir_name
:使用 -m
选项可以设置目录的权限。在这个例子中,755 权限意味着目录所有者有读写执行权限,而组用户和其他用户只有读和执行权限。
mkdir dir_name
chmod 755 dir_name
创建目录并设置权限(与上一命令相同)
mkdir dir_name && cd dir_name
:创建目录后立即切换到该目录。
3、rm命令
rm filename
:这将删除名为filename的文件。
rm file1 file2 file3
:这将删除file1、file2和file3这三个文件。
rm -r directoryname
:-r(或–recursive)选项用于递归地删除目录及其所有内容。
rm -f filename
:-f(或–force)选项用于强制删除文件,即使文件不存在也不会显示错误信息。
rm -i filename
:-i(或–interactive)选项会在删除每个文件之前询问用户是否确定。
rm -d directoryname
:-d选项用于删除空目录,但通常rm默认就是删除空目录的。
rm .hiddenfile
:隐藏文件以.开头,删除时需要明确指定文件名。
rm -rf *
:警告:这个命令非常危险,因为它会删除当前目录下的所有文件和子目录,包括隐藏文件和子目录。使用时一定要小心。
rm -t 2024-09-24 *
:-t选项后面跟日期,可以删除在指定日期之前修改的所有文件。
rm *.txt
:这将删除当前目录下所有扩展名为.txt的文件。
4、ls命令
ls
:列出当前目录下的文件和目录。
ls /path/to/directory
:列出指定目录下的文件和目录。
ls -l
:-l选项以长格式列出文件,包括文件权限、所有者、大小、时间戳等。
ls -la
:-a选项显示所有文件,包括以.开头的隐藏文件。
ls -R
:递归列出所有子目录的内容。
ls -lt
:按文件修改时间排序。
ls -lS
:按文件大小排序。
ls -lX
:按文件扩展名排序。
ls --color
:显示文件的彩色输出。
ls -m
:-m选项将文件名用逗号分隔,而不是默认的空格。
ls -p
:-p选项在每个条目后加上斜杠(/),表示目录。
ls -l *.txt
:这将列出所有扩展名为.txt的文件。
ls -1
:-1选项将文件名垂直列出,列出当前目录下的所有文件和目录,按文件名排序。
5、cp命令
cp source.txt destination.txt
:将名为source.txt的文件复制到当前目录,并重命名为destination.txt。
cp file1.txt file2.txt /path/to/destination/
:将file1.txt和file2.txt复制到指定目录。
cp -r source_directory destination_directory
:-r(或–recursive)选项用于递归复制目录及其所有内容。
cp -f source.txt destination.txt
:-f(或–force)选项用于强制复制,如果目标文件已存在,则会被覆盖而不提示。
cp -i source.txt destination.txt
:-i(或–interactive)选项在覆盖目标文件之前会询问用户。
cp -p source.txt destination.txt
:-p选项用于保留原文件的修改时间、访问时间、权限等属性。
cp -a source.txt destination.txt
:复制文件并保留原文件的所有属性,包括所有权。
cp /path/to/source.txt source.txt
:复制文件到当前目录,如果目标文件名与源文件名相同,则只需指定源文件路径。
cp *.txt /path/to/destination/
:这将复制当前目录下所有扩展名为.txt的文件到指定目录。
cp -v source.txt destination.txt
:复制文件并显示进度,-v(或–verbose)选项在复制过程中显示详细信息。
6、mv命令
mv source.txt destination.txt
:将名为source.txt的文件重命名为destination.txt。
mv source.txt /path/to/destination/
:将source.txt文件移动到指定目录。
mv file1.txt file2.txt /path/to/destination/
:将file1.txt和file2.txt移动到指定目录。
mv source_directory /path/to/destination/
:将source_directory目录移动到指定目录。
mv -i source.txt destination.txt
: -i(或–interactive)选项在覆盖目标文件之前会询问用户。
mv -f source.txt destination.txt
:-f(或–force)选项用于强制移动文件,如果目标文件已存在,则会被覆盖而不提示。
mv -n source.txt destination.txt
:-n选项不会覆盖目标位置的现有文件。
mv -v source.txt destination.txt
:-v(或–verbose)选项在移动过程中显示详细信息。
mv /path/to/source.txt source.txt
:移动文件到当前目录,如果目标文件名与源文件名相同,则只需指定源文件路径。
mv *.txt /path/to/destination/
:这将移动当前目录下所有扩展名为.txt的文件到指定目录。
二:查看文件内容
1、cat命令
cat filename
:查看文件内容。
cat -n filename
:-n选项显示文件内容,并在每行前添加行号。
cat filename | less
:使用less命令逐页显示文件内容。
cat > newfile.txt
:输入内容,按Ctrl+D结束输入,创建名为newfile.txt的新文件。
cat >> existingfile.txt
:输入内容,按Ctrl+D结束输入,将内容追加到existingfile.txt文件末尾。
cat > newfile.txt <<EOF Line 1 Line 2 Line 3 EOF
:使用<<EOF和EOF标记之间的内容创建newfile.txt文件。
cat file1.txt file2.txt > mergedfile.txt
:将file1.txt和file2.txt的内容拼接到mergedfile.txt文件中。
cat filename | tail -n 10
:使用tail -n 10显示文件的最后10行。
cat filename | head -n 10
:使用head -n 10显示文件的前10行。
cat filename | head -n 50 | tail -n +30
: 显示30行到50行的内容。
cat filename | tail -n +50 | head -n 10
:显示最后50行内容的前10行内容。
cat filename | sort
:使用sort命令对文件内容进行排序。
cat filename | sort -r
:使用sort -r命令对文件内容进行反向排序。
2、tac命令
tac命令在Linux系统中用于将文件内容反向显示,即从最后一行开始输出到第一行。它相当于cat命令的反向版本。以下是一些常用的tac命令用法:
tac filename
:显示filename文件的内容,从最后一行到第一行。
tac filename | nl
:使用nl命令给反向显示的内容添加行号。
tac -v filename
:-v选项显示非打印字符。
tac -e filename
:-e选项显示换行符。
tac命令通常用于需要从文件末尾开始查看内容的场景,例如查看日志文件的最新条目。
3、more、less命令
more 和 less 都是Linux中用于分页显示文件内容的命令,但 less 功能更为强大和灵活。以下是它们的一些常用命令和快捷键:
more:
more filename
:查看文件。
对于more命令而言,以下输入字符的命令都得先按v键进入查看模式才能输入命令。
向下翻页
:
按 空格键 向下翻页。
按 Enter 键向下移动一行。
向上翻页
:按 b 键向上翻页。
转到文件开头/结尾
:
按 g 键转到文件开头。
按 G 键转到文件结尾。
搜索字符串
:按 / 键,然后输入要搜索的字符串。
退出
:按 q 键退出。
less:
less filename
:查看文件。
向下翻页
:
按 空格键 向下翻页。
按 Page Down 键向下翻页。
按 Enter 键向下移动一行。
向上翻页
:按 b 键向上翻页。
向前/向后移动
:
按 Ctrl + f 向前移动。(实际上直接按 f 键即可)
按 Ctrl + b 向后移动。(实际上直接按 b 键即可)
转到文件开头/结尾
:
按 g 键转到文件开头。
按 G 键转到文件结尾。
搜索字符串
:
按 / 键,然后输入要搜索的字符串。
按 n 键跳转到下一个匹配项。
按 Shift + N 跳转到上一个匹配项。
跳转到特定行号
:按 : 键,然后输入行号,比如 :100。
跳转到文件的百分比
:按 : 键,然后输入百分比,比如 :50%。
进入/退出列模式
:按 v 或 V 键进入列模式,用于查看宽文本文件。
复制文本
:
按 Shift + g 跳转到文件末尾,然后按 y 键开始复制。
使用方向键选择文本,然后按 y 键复制到缓冲区。
退出
:按 q 键退出。
显示当前状态
:按 Ctrl + g 显示当前文件名和位置。
less 命令特别适合查看大型文件,因为它允许用户在文件中自由移动,并且可以使用搜索和跳转功能快速定位到感兴趣的内容。
4、head、tail命令
head 和 tail 是Linux中用于显示文件开头或结尾部分内容的命令。以下是它们的一些常用用法:
head filename
::默认情况下,head命令显示文件的前10行。
head -n 20 filename
:-n选项后跟数字,指定显示文件的前N行。
tail filename
:默认情况下,tail命令显示文件的最后10行。
tail -n 20 filename
:-n选项后跟数字,指定显示文件的最后N行。
tail -n +N filename
:+N表示从第N行开始显示到文件末尾。
tail -n N filename
:显示文件的最后N行,但不显示文件名。
tail -n N -q filename
:显示文件的最后N行,并且显示文件名。
tail -n N -s filename
:-s选项用于在显示多个文件内容时,在每个文件的内容之间插入分隔符。
head 和 tail 命令经常用于查看日志文件、配置文件等,特别是在处理大型文件时非常有用。
5、grep命令
grep 是一个非常强大的文本搜索工具,在 Linux 中广泛使用。它可以搜索文件中匹配特定模式的行,并将其输出到标准输出。以下是一些常用的 grep 命令用法:
grep "pattern" filename
:在 filename 文件中搜索包含 “pattern” 文本的所有行。
grep -i "pattern" filename
:使用 -i 选项忽略大小写差异。
grep -n "pattern" filename
:使用 -n 选项显示匹配行及其行号。
grep -C 2 "pattern" filename
:使用 -C 选项显示匹配行的前后2行上下文。
grep -o "pattern" filename
:使用 -o 选项仅输出匹配的部分。(一般是需要配合-n进行使用的)
grep -v "pattern" filename
:使用 -v 选项显示不包含 “pattern” 文本的所有行。
grep -r "pattern" /path/to/directory
:使用 -r 选项递归地在目录中搜索匹配的文本。
grep -l "pattern" filename
:使用 -l 选项仅列出包含匹配行的文件名,一般是同时在查找多个文件时使用。
grep -L "pattern" filename
:使用 -L 选项仅列出不包含匹配行的文件名。
grep -c "pattern" filename
:使用 -c 选项统计匹配 “pattern” 文本的行数。
grep "^pattern" filename
:搜索以 “pattern” 开头的行。
grep "pattern$" filename
:搜索以 “pattern” 结尾的行。
grep [0-9] filename
:搜索文件中所有包含数字的行。
6、sed命令
sed(stream editor)是Linux中一个非常强大的文本处理工具,它能够对文本进行过滤和转换。以下是一些常用的sed命令用法:
sed 's/old/new/g' filename
:将文件中的“old”替换为“new”。这里的s是替换命令,g表示全局替换。
sed -i 's/old/new/g' filename
:使用 -i 选项直接修改文件而不是输出到标准输出。
sed '3s/old/new/' filename
:只替换文件的第三行中的“old”为“new”。
sed '3d' filename
:删除文件的第三行。
sed '/pattern/d' filename
:删除所有包含“pattern”的行。
sed '$a\new text' filename
:在文件末尾追加“new text”。
sed '3a\new text' filename
:在第三行后追加“new text”。
sed '1i\new text' filename
:在文件的第一行前插入“new text”。
sed '1c\new line 1\new line 2' filename
:将第一行替换为多行文本。
注: 在使用 sed 命令时,如果不使用 -i(或 --in-place)选项,那么修改后的数据将不会保存到原文件中,而是输出到标准输出(通常是屏幕)。因此,如果你想保存修改后的文件,需要重定向输出到原文件或其他文件。
如果你想查看替换结果但不保存,可以这样操作:
sed 's/old/new/g' filename
如果你想直接修改原文件,可以使用 -i 选项。这会将更改保存回原文件:
sed -i 's/old/new/g' filename
如果你想保留原文件不变,并将修改后的内容保存到一个新文件,可以这样做:
sed 's/old/new/g' filename > newfile
使用备份扩展名保存原文件,使用 -i 选项时,你还可以指定一个扩展名,用于保存原文件的备份:
sed -i.bak 's/old/new/g' filename
三:文件搜索
1、find命令
Linux 中的 find 命令是一个非常强大的工具,用于在文件系统中搜索文件和目录。
find /path/to/search -name 'filename'
:在指定路径下搜索名为 filename 的文件或目录。
find /path/to/search -type f
:搜索指定路径下的所有文件(不包括目录)。
find /path/to/search -size +10M
:搜索指定路径下大小超过10MB的文件。
find /path/to/search -mtime -7
:搜索在过去7天内被修改过的文件。
find /path/to/search -perm 755
:搜索指定路径下权限为755的文件或目录。
find /path/to/search -regex '.*\.txt'
:使用正则表达式搜索文件名,搜索指定路径下所有扩展名为 .txt 的文件。
find /path/to/search -name '*.txt'
:搜索指定路径下所有扩展名为 .txt 的文件。
find /path/to/search -name '*.txt' -exec grep -H 'pattern' {} \;
:使用 -exec 执行命令,对所有 .txt 文件执行 grep 搜索特定模式。
find /path/to/search -user username -group groupname
:搜索属于特定用户和组的文件。
find /path/to/search -not -name '*.txt'
:搜索除了 .txt 文件以外的所有文件。
find /path/to/search -newer file.txt
:搜索修改时间比 file.txt 更新的文件。
四:文件权限
1、chmod命令
使用 “+
” 设置权限,使用 “-
” 用于取消
chmod 命令在 Linux 系统中用于更改文件或目录的访问权限。
ls -lh
:显示当前目录所有文件的权限。
chmod 644 filename
:将文件 filename 的权限设置为 rw-r–r–(所有者读写,组和其他用户读)。
chmod -R 755 /path/to/directory
:递归地将目录及其所有子目录和文件的权限设置为 rwxr-xr-x。
chmod u=rwx,g=rx,o=r filename
:使用符号模式(u=用户,g=组,o=其他)设置权限。
chmod a+x filename
:给所有用户添加对文件的执行权限。
chmod u+x filename
:给文件 filename 的所有者添加执行权限。
chmod g-w filename
:从文件 filename 的组权限中移除写权限。
chmod 4750 filename
:
第一个数字代表特殊权限(通常是系统管理员使用的)。
第二个数字代表文件所有者(owner)的权限。
第三个数字代表与文件所有者同组的用户(group)的权限。
第四个数字代表其他用户(others)的权限。
每个数字由以下权限的八进制值相加得到:
4 代表读(read)权限。
2 代表写(write)权限。
1 代表执行(execute)权限。
因此,chmod 4750 filename 命令的含义如下:
7(4+2+1)代表文件所有者拥有读、写和执行权限。
5(4+1)代表与文件所有者同组的用户拥有读和执行权限,但没有写权限。
0 代表其他用户没有任何权限。
所以,这个命令会将 filename 文件的权限设置为:
文件所有者可以读、写和执行文件。
与文件所有者同组的用户可以读文件和执行文件,但不能写文件。
其他用户没有任何权限。
chmod -R u+r,g+r,o-r dirname
:递归地给所有文件和目录添加用户和组的读权限,移除其他用户的读权限。
chmod 755 /path/to/directory
:将目录的权限设置为默认的 rwxr-xr-x。
chmod +t dirname
:在目录上设置粘滞位,这样只有所有者可以删除或移动文件。
归纳一个知识点:
①、符号模式 使用字母来表示权限:
u 代表文件所有者(user)
g 代表组(group)
o 代表其他人(others)
a 代表所有用户(所有者、组和其他用户)
+ 代表添加权限
- 代表删除权限
= 代表设置精确的权限,删除其他所有权限
②、八进制模式 使用数字来表示权限:
4 代表读(read)
2 代表写(write)
1 代表执行(execute)
五:打包和压缩文件
1、tar命令
tar 是一个在 Unix 和类 Unix 系统中广泛使用的命令行工具,用于打包和解包文件。它可以将多个文件合并成一个归档文件,并支持压缩,以减少磁盘空间的使用或便于文件传输。
tar 命令的基本语法如下:tar [选项] [文件或目录...]
常用选项
-c:创建一个新的归档文件。
-x:解包一个归档文件。
-t:查看归档文件内容而不解压。
-u:更新归档文件中的内容。
-z:通过 gzip 来压缩/解压缩文件。
-j:通过 bzip2 来压缩/解压缩文件。
-J:通过 xz 来压缩/解压缩文件。
-f:指定归档文件的名称。
-v:在处理文件时显示详细的信息。
-r:向归档文件中追加文件。
tar -cvf archive_name.tar directory_name
:创建归档文件,将 directory_name 目录及其内容打包到 archive_name.tar。
tar -czvf archive_name.tar.gz directory_name
:压缩归档文件,将 directory_name 目录及其内容打包并使用 gzip 压缩成 archive_name.tar.gz。
tar -xvf archive_name.tar
:解包归档文件,将 archive_name.tar 解包到当前目录。
tar -tvf archive_name.tar
:查看归档文件内容,查看 archive_name.tar 的内容而不解压。
tar -uvf archive_name.tar new_file.txt
:更新归档文件,将 new_file.txt 添加到已存在的归档文件 archive_name.tar 中。
tar -rvf archive_name.tar new_file.txt
:追加文件到归档文,将 new_file.txt 追加到已存在的归档文件 archive_name.tar 中。
tar -cjvf archive_name.tar.bz2 directory_name
:使用 bzip2 压缩,将 directory_name 目录及其内容打包并使用 bzip2 压缩成 archive_name.tar.bz2。
tar -cJvf archive_name.tar.xz directory_name
:使用 xz 压缩,将 directory_name 目录及其内容打包并使用 xz 压缩成 archive_name.tar.xz。
2、zip和unzip命令
在 Linux 系统中,zip 和 unzip 是两个常用的命令行工具,用于压缩和解压缩文件。
zip:
zip [选项] [压缩文件名] [文件或目录...]
常用选项
-r:递归地包含目录,也就是说,包括指定目录下的所有子目录和文件。
-q:静默模式,不显示任何提示信息。
-u:更新现有压缩文件,如果压缩文件已存在,zip 命令会将新文件添加到现有压缩文件中。
-x:排除文件,即不包括指定的文件或目录。
-0:压缩级别为0,意味着不压缩,但仍然创建压缩文件。
zip compressed_file.zip file_to_compress.txt
:将 file_to_compress.txt 文件压缩成 compressed_file.zip。
zip -r compressed_directory.zip directory_to_compress
:将 directory_to_compress 目录及其所有子目录和文件压缩成 compressed_directory.zip。
zip -r compressed_directory.zip directory_to_compress -x \*.tmp
:将 directory_to_compress 目录压缩,排除所有 .tmp 文件。
unzip:
unzip [选项] [压缩文件名]
常用选项
-l:列出压缩文件的内容,但不解压。
-o:覆盖已存在的文件而不提示。
-j:不包含路径信息,仅解压文件名和扩展名。
unzip compressed_file.zip
:将 compressed_file.zip 解压缩到当前目录。
unzip -l compressed_file.zip
:列出 compressed_file.zip 的内容,但不解压。
unzip compressed_file.zip -d /path/to/directory
:将 compressed_file.zip 解压缩到指定目录。
unzip -o compressed_file.zip
:解压缩 compressed_file.zip,覆盖已存在的文件。