Python全栈 Linux基础之3.Linux常用命令

一、ls及其使用

ls是英文单词list的缩写,功能是列出当前目录下的文件列表,是非常常见的Linux命令之一。

1.Linux下目录特点

. 开头的文件是隐藏文件,使用ls查看时,需要加上 -a(all) 参数才能显示。
. 代表当前目录,. . 代表上一级目录(可以理解为隐藏的两个文件路径)。
cd .
跳到当前目录;
cd . .
跳到上一级目录。

2.ls常用选项

选项 功能
[-a] all,显示所有内容,包含隐藏文件
[-l] (字母L小写) 显示文件详细信息
[-h] human-readable,需要配合-l(字母L小写)选项,所谓的人性化显示

练习:

touch 123.txt
touch .123.txt

查看:

ls -a

显示:
在这里插入图片描述

ls -l

显示:
ls -l

ls -l -h

显示:
ls -l -h
只是文件大小显示改变。
选项可以合并,且顺序不影响

ls -lh

显示与前者相同。
查看所有文件和文件夹(包括隐藏文件)

ls -lah

显示:
ls -lah

3.ls配合通配符

通配符 功能
* 代表任意多个任意字符,可以没有字符
? 代表就是一个任意字符,至少一个字符
[ ] 代表一个字符,取值范围在[ ]中,例如[1234 ]匹配1、2、3、4中的任意一个,[a-g] 匹配从a到g范围内的任意一个

应用:
批量查询、修改文件。
练习:

touch 123.txt
touch 124.txt
touch 125.txt
touch 126.txt
touch 223.txt
touch 323.txt
touch 111.txt
touch 131.txt
touch 11.txt
touch 12345.txt
ls

显示:
在这里插入图片描述
找到以1开头的文件

ls 1*

显示:
ls 1*
找到以3结尾的文件

ls *3.txt

显示:
在这里插入图片描述

ls 1*1.txt

显示:
在这里插入图片描述

ls ?1?.txt

显示:
在这里插入图片描述
查询含有1的文件:

ls *1*.txt

显示:
在这里插入图片描述

ls 12[12345].txt

显示:
在这里插入图片描述

ls 12[1-6].txt

显示:
在这里插入图片描述

rm 1*1.txt
ls

显示:
在这里插入图片描述

rm *.txt
ls -a

显示:
在这里插入图片描述
删除文件时,只删除了非隐藏文件
删除全部文件用

rm .*.txt
ls -a

显示:
在这里插入图片描述

二、cd命令

cd是英文单词change directory的缩写,其功能就是跳转目录。
它与之前的几个命令不同的是,cd是BASH内置命令,没有帮助文档与相关手册。
所以在使用$which cd的时候是看不到它的二进制路径的,因为系统中不存在cd命令的二进制文件。

命令 功能
cd 切换到当前用户的家目录(home/用户名)
cd ~ 和 cd 效果一样
cd … 跳转到上一级目录
cd - 在最近两个目录来回切换,有点像图形界面的 Alt + Tab切换窗口的感觉

cd后面的路径可以是两种:
相对路径绝对路径
相对路径
指相对当前目录的路径;
绝对路径
是指全路径。可以从 /(根目录)开始,或者是~(家目录)开始。
注意:
Linux下目录名称以及文件名称大小写是有区别的!
练习:

mkdir aaa
cd aaa
mkdir bbb
cd bbb
mkdir ccc
cd ccc
pwd

显示:
在这里插入图片描述
回到家目录:

cd ~

显示:
在这里插入图片描述
再次到ccc:

cd -

显示:
在这里插入图片描述
逐级回到家目录:

cd ..
cd ..
cd ..

显示:
在这里插入图片描述

cd ../Downloads

显示:
在这里插入图片描述

三、创建和删除的操作

1.mkdir命令

创建一个新的目录。

选项 功能
[-p] 可以递归创建目录

注意:
新建的目录名称不能重名。

2.rm命令

删除文件或目录。

选项 功能
[-f] 强制删除,忽略不存在的文件,无需提示
[-r] 递归删除目录下的内容,删除文件夹就用这个选项

练习:

touch 123.txt

说明:
创建文件时,如果文件存在,只修改创建时间,不改变内容。
创建嵌套目录:

mkdir -p a/b/c

结果:
在这里插入图片描述
在Linux中,文件和文件夹不能重名。

touch 123
makdir 123

显示:
在这里插入图片描述
先创建文件夹,再创建同名文件时,相当于改变创建时间。

rm -f aabbcc

显示:
在这里插入图片描述

rm -r *

显示:
在这里插入图片描述

四、复制、移动文件

1.拷贝文件

cp命令
拷贝文件或者目录,类似DOS中的copy。

cp 源文件 目标文件
选项 功能
[-i] interactive互动,覆盖文件时有提示
[-r] 如果cp跟上的是目录,那么将会递归拷贝目录下的所有子目录和文件

tree命令
tree命令可以将目录结构显示出来(树状显示)。

选项 功能
[-d] directory,只显示目录

有的同学系统中默认没有此命令。所以会提示:
在这里插入图片描述
可以用

sudo snap install tree

命令安装。
练习:

mkdir -p aaa/bbb/ccc
tree

显示:
在这里插入图片描述

touch aaa/123.txt
tree

显示:
在这里插入图片描述

tree ~

显示:
在这里插入图片描述

cd /
mkdir -p ~/Desktop/a/b/c
tree ~/Desktop

显示:
在这里插入图片描述
只看目录

tree -d ~/Desktop

显示:
在这里插入图片描述

cd Desktop/
cp aaa/123.txt .
tree ~

显示:
在这里插入图片描述

cp aaa/123.txt test.txt

显示:
在这里插入图片描述
带提示:

cp -i aaa/123.txt .

显示:
在这里插入图片描述
拷贝文件夹:

cp -r a b
tree

显示:
在这里插入图片描述
如果目标文件夹存在相同名称文件,则会提示覆盖。

2.移动文件

mv命令
mv是move的缩写,用来移动文件/目录。
小技巧:
如果需要重命名,也可以使用mv命令覆盖当前文件/目录 达到效果

选项 功能
[-i] interactive,覆盖文件时有提示

练习

mkdir -p a/b/c
touch a/b/c/123.txt a/b/c/124.txt a/b/c/125.txt
tree

显示:
在这里插入图片描述

mv a/b/c/123.txt .
mv a/b/c .

显示:
在这里插入图片描述
移动文件夹不需要-r选项。
如果目标文件夹存在相同名称文件,则会提示覆盖。
带提示:

mv -i c/124.txt 123.txt

显示:
在这里插入图片描述

mv -i 123.txt readme.txt

可实现修改文件名的功能。

五、查看文件内容相关命令

命令 功能
cat 文件名 concatenate,查看文件内容、创建文件、文件合并、追加文件内容等
more 文件名 more,分屏显示文件内容(内容多一般用more)
grep 搜索内容 文件名 grep,搜索文件内容

1.查看文件

cat

  • 查看文件内容、创建文件、文件合并、追加文件内容等;
  • 命令会一次性显示所有内容,所以适合查看内容较少的文件。
选项 功能
[-b] 显示每一行的行号
[-n] 只显示有内容的行号,空行不算一行

more
此命令可以分屏显示文件内容,每次只显示一页内容。所以适合查看内容多的文件。
使用more的操作按键:

操作按键 功能
空格键 显示下一页
回车键 Enter 显示下一行
b back,显示上一页
f forward,向前和空格效果一样
q quit,退出
/ 搜索文字 搜索文本中的内容
cat 123.txt

显示:
在这里插入图片描述

cat -b 123.txt

显示:
在这里插入图片描述

cat -n 123.txt

显示:
在这里插入图片描述

more 123.txt

显示:
在这里插入图片描述

2.查找文件内容

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

选项 功能
[-n] line-number,显示匹配行及行号
[-v] invert-match,选中不匹配的行
[-i] ignore-case,忽略大小写

grep常用查找方式:

  • 在file_name中 搜索Hello_world这个单词
grep Hello_world file_name
grep "Hello_world" file_name
  • 在多个文件中查找
grep "Hello_world" file_1 file_2 file_3 ...
  • 常用两种模式查找
参数 功能
^hello 行首,搜索以hello开头的行
world$ 行尾,搜索以world结束的行

注意:
区分大小写。

grep corley 123.txt

显示:
在这里插入图片描述
带行号:

grep -n corley 123.txt

显示:
在这里插入图片描述
偏移字节数:

grep -b corley 123.txt

显示;
在这里插入图片描述
不区分大小写:

grep -in corley 123.txt

显示:
在这里插入图片描述
不包含corley:

grep -inv corley 123.txt

显示:
在这里插入图片描述
字符中间有空格时,加双引号:

grep -inv "hello corley" 123.txt

显示:
在这里插入图片描述

六、重定向&管道输出符

1.重定向

符号 > >>

  • Linux中允许将命令执行结果 重定向到一个文件;
  • 将本应该显示在终端上的内容输出/追加到指定文件中。
符号 功能
> 输出重定向到一个文件或设备 覆盖原来的文件
>> 输出重定向到一个文件或设备 追加原来的文件

echo会在终端中显示参数指定的文字,通常会和重定向联合使用

2.管道输出

符号 |

  • Linux允许将一个命令的输出通过管道作为另外一个命令的输入。
 command 1 |  command 2 |  command 3 … …
echo hello world > abc
vi abc

显示:
在这里插入图片描述

ls -lh > abc

结果:
在这里插入图片描述

tree >> abc

结果:
在这里插入图片描述
管道符:

ls -lh ~

ls -lah ~

ls -lah ~ > b

grep -n vi b

显示:
在这里插入图片描述
相当于管道输出:

ls -lah ~ | grep -n vi

显示:
在这里插入图片描述

ls -lah ~/.*vi*

显示:
在这里插入图片描述
这种输出相对不直观。

ls -lah ~ | grep -in vi

显示:
在这里插入图片描述

发布了60 篇原创文章 · 获赞 240 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/CUFEECR/article/details/104076931