在这个节点接触linux是为后续接触大模型、机器学习和深度学习创造条件,视频课程参考B站黑马程序员Linux2天入门课程。
在初步接触了Linux命令后,我发现这些命令比较杂,目前手头缺少练习的契机和时间,希望通过这样的方式巩固一遍。
如果能帮助到同样刚刚接触Linux命令的你,我会非常荣幸。
(以下所有实践使用Xshell 7连接服务器进行)
1、cd命令:切换目录(文件夹)
cd /home #绝对路径,以根目录开头
cd admin #相对路径,当前目录下的,不以根目录开头
cd .. #返回上级目录
cd ~ #到自己的家目录,如/home/admin
cd - #类似电视回看功能
直接输入cd命令,默认回到家目录
ps:可通过命令pwd查看当前所在目录
2、ls命令:查看目录内容
ls命令涉及的参数很多,这里只列出使用频率较高的
ls #直接显示,一字排开列出
在根目录中,查看根目录中的内容
ls /home #查看其他目录中的内容
ls -l #显示详细内容,包括权限、所有者、组、修改日期等
#可以简写为命令ll,使用频率较高
ls -lh #在-l的基础上,将文件大小以更人性化的方式显示
ls -a #显示所有的文件,包括隐藏文件(以.开头的文件)
如下:.和..即为隐藏文件,分别为“当前目录”和“上级目录”
3、mkdir命令:创建文件夹
mkdir hahaha #相对路径,在当前目录下创建文件夹
mkdir /home/ubuntu/hahaha #绝对路径
mkdir /home/ubuntu/hihihi/hahaha -p #若上级目录hihihi不存在,加上-p自动创建父目录
mkdir hi ha #在当前目录下创建多个文件夹
mkdir /home/ubuntu/{hi,ha} #在指定目录下创建多个文件夹(hi和ha)
mkdir .shhh #以.开头命名,创建隐藏文件夹
4、touch命令:创建空文件
touch a.txt #在当前目录下创建(如果使用绝对路径,必须确保文件的上级目录存在)
touch .abc #创建隐藏文件
gebit a.txt #使用记事本打开文件
5、rm命令:删除文件/文件夹
rm a.txt #删除文件
rm abc -r #加上-r,删除文件夹
rm * #可以删除文件或文件夹,但不能删除隐藏文件
6、查看权限
左侧drwx……代表不同对象对于该文件的权限。
第一个符号:d代表文件夹 -代表文件
rwx rwx r-x r代表可读(readable),w代表可写(writable),x代表可执行(executable)
第一组指文件所有者的权限,第二组代表文件所有组内的权限(如图文件所有组为root),第三组代表其他1用户的权限
补充:ls *txt #查看当前目录下所有以“txt”结尾的文件
另外,l开头代表link链接,在ln命令中可了解。
7、cp命令:拷贝文件
cp 1.txt 2.txt #拷贝文件,将1.txt拷贝为2.txt
cp abc abc_bak -r #拷贝文件夹,将abc中的内容拷贝到abc_bak
8、mv命令:移动(可用作重命名)
mv 1.txt 2.txt #重命名,将1.txt重命名为2.txt
mv 1.txt ~ #将1.txt移动到家目录
9、重定向
ls > 1.txt #将命令ls返回的内容写入文件1.txt中,会覆盖文件中之前的数据
ls >> 1.txt #将命令返回的内容写入文件中,内容追加到文件中原有数据之前
10、cat命令:查看文件内容
有了cat命令就不需要每次打开记事本才能查看文件内容了,但是cat命令显示出的内容不可编辑,仅供查看。
cat 1.txt #将文件的内容直接显示到命令行
cat 1.txt 2.txt #查看多个文件的内容
cat 1.txt 2.txt > 3.txt #将两个文件的内容合并到一个文件中
11、more命令:分页显示文件内容
ls / > 1.txt
more 1.txt #查看内容多的文件(一页装不下,不想从末行往上滑),空格/Enter往下翻页,b键上翻,q键退出
12、管道:|
利用管道可以将more命令示例中两行命令合并为一行
ls -l / | more #把左边命令执行出的内容交由右边命令进行处理
13、ln命令:软链接、硬链接
1)软链接
软链接类似于windows系统中的快捷方式,只记录文件的名称,而不存储文件内容
ln -s 1.txt 1_link #在当前目录下,为文件1.txt创建一个名为1_link的软链接
ln -s /1.txt /home/ubuntu/1_link #在其他目录中,为文件创建软链接(注意:如果源文件不写绝对路径,软链接指向的文件将不存在)
ln -s abc abc_link #给目录创建软链接
2)硬链接
硬链接本身占空间,相当于将源文件复制了一份,但与拷贝不同,硬链接中的内容将与源文件同步变化。
删除硬链接不影响原文件。
不能给目录创建硬链接。
ln 1.txt 1_hard_link
还记得使用命令ls -l(ll)查看的结果吗?
权限右边的一列数字含义为有N个文件能同步发生变化
14、grep命令:查找文件内容
在linux系统中,可以实现在不打开文件查找的情况下,确认多个文件中是否含有相应内容,以及相应内容所在行。
grep hello 1.txt #在1.txt中查找包含hello的内容,只要一行中有hello就把整行显示
grep -niv hello 1.txt #n显示查找到内容的行号,i查找时不区分大小写(HElllo、helLO等都是目标结果),v反向查找(查找不包含hello的行)
grep -n hello /home/ubuntu -r #在目录中的所有文件中查找hello
windows系统要在文件内容中查找,需要打开文件,并使用ctrl+F,文件一多,我们很难一一打开查找。
15、find命令:查找文件
find /home -name 1.txt #在目录/home中查找名为1.txt的文件
find /home -name '*txt' #在目录中查找名称以txt结尾的文件
16、tar命令:归档(打包)
tar命令执行的工作在某些情况下,是压缩文件工作的一部分,即把要一起压缩的文件打包起来。
tar cvf a.tar 1.txt 2.txt #将两个txt打包到a.tar文件中(f必须放在最后,代表file)
tar tf a.tar #列出包里的文件(看包里有啥)
tar也执行解压工作的一部分,即解包。
tar xvf a.tar #如果没写特定目录,将包里文件解包到当前目录中
tar xvf a.tar -C tar #将文件解包到当前目录下的tar文件夹中(注意C是大写)
17、gzip命令及其他实现压缩与解压的命令
压缩:
1、打包:tar cf a.tar 1.txt 2.txt #生成a.tar文件
2、压缩:gzip -r a.tar #生成a.tar.gz文件
解压:
1、解压:gzip -d a.tar.gz #解压后成为a.tar文件
2、解包:tar xf a.tar -C ~/ubuntu #解包到指定的文件夹中
按照刚刚的说法,要实现文件的压缩和解压,需要执行两行的命令,可不可以一步到位呢?
可以的。
压缩:tar czf a.tar.gz 1.txt 2.txt #以gzip的方式打包并压缩
解压:tar xzf a.tar.gz -C /home #以gzip的方式解压并解包
除了gzip外,在Linux中还有两种压缩的方式,即zip和bzip2
bzip2 jcf b.tar.bz2 1.txt 2.txt
bzip2 xjf b.tar.bz2 /home
zip -r zz 1.txt 2.txt #zz为将要生成的压缩文件,会自动生成扩展名
unzip -d zz zz.zip #解压时会自动创建目录
以上三种解压方式在压缩率和通用性方面有差异:
压缩率:zip < gzip < bzip2
通用性:zip > gzip > bzip2
18、chmod命令:改变权限
通过chmod命令,有两种方式改变权限,分别是字母法和数字法。
1)字母法
对象:u——文件所有者 g——文件拥有的组 o——其他用户 a——所有用户
权限:r——可读 w——可写 x——可执行 - ——没有任何权限
+增加权限,-删除权限,=设置权限(将原来的权限换成新的权限)
chmod u+r 1.txt #给文件的所有者添加读的权限
chmod u=r,g+w,o-r 1.txt #给所有者设置读权限,给拥有文件的组增加写权限,其他用户减少读权限
2)数字法
应用频率同样较高,采用4个数字代表4种权限:
r——4 w——2 x——1 - ——0
chmod 123 a.txt #第一位为所有者权限,第二位组权限,第三位其他人权限
3 = 1 + 2,即为其他人赋予w(写)和x(执行)的权限
同样,以此类推,777,即为所有人赋予全部权限
19、vi命令:编辑文件
初学linux命令时困扰于vi编辑的开始、结束和保存方式……
vi echo.c #在编辑器中打开名为echo.c的文件
打开后,按i或a开始编辑(即insert);
编辑完成后,按Esc结束编辑,保存与关闭编辑器操作如下:
:wq #即write quit,保存并退出
:q #quit,不保存、退出
:q! #强制退出(不保存)
由于学习时间的限制以及个人学习需求,对于Linux的基础命令暂时整理到这里,希望对你有帮助。