Linux常用命令

痴心易碎 提交于 2021-01-24 10:30:31

Linux常用命令

在经过一天的学习之后,当然少不了对知识的总结,
以下便是我对今天我所学习的内容进行一个概要素的总结吧。

学习目标

  1. 说出Linux下的目录结构和常见的目录的的作用
  2. 熟练使用Linux下的相对路径和绝对路径
  3. 熟练使用Linux下常用文件和目录操作相关的命令
  4. 熟练使用修改用户权限、用户和用户组相关的命令
  5. 熟练使用文件的查找和检索的相关命令
  6. 熟练掌握Ubuntu下的软件安装和卸载
  7. 熟练使用压缩工具完成文件或目录的压缩和解压

命令解析器

shell 就是命令解析器
命令解析器的作用“对用户输入到终端的命令进行解析,调用对应的执行程序。

终端,shell解释器,内核三者关系示意图

  1. 用户在终端输入命令

  2. 由shell命令解释器对命令进行解析解析成内核能够识别的指令

  3. 然后再由内核去执行命令

  4. 最终由终端显示命令的执行结果给用户

    常用的命令解析器:
    shell – Bourne Shell
    /bin/sh
    bash – Bourne Again Shell
    /bin/bash
    查看当前系统所使用的shell
    echo $SHELL
    查看当前系统有哪些shell
    cat /etc/shells







Linux下的目录结构

Linux系统的目录结构是一个树状结构
在这里插入图片描述

Linux下主要目录介绍

		/bin:binary,二进制文件,可执行程序,shell命令
			如: ls,rm,mv.cp等常用命令
			
		/sbin:s--supervisor 存放系统管理员使用的系统管理程序。
			如:ifconflg,halt,shutdown,reboot等系统命令
			
		/dev:device,在linux下一切皆是文件
			硬盘,显卡,显示器
			字符设备,块设备文件
				如:在input目录下执行:sudo cat mouse0,移动鼠标会显示有输入。
			
		/lib:linux运行时需要加载的一些动态库
				如:libc.so、libpthread.so等
				
		/mnt:手动的挂在目录,如U盘
	
		/media:外设的自动挂载目录,如光驱等
	
		/root:linux的监管者用户root的主目录
	
		/usr:unix system resource --类似于Windows的programe files 目录
			include 目录里存放都文件,如 stdio.h、stdlib.h、string.h、pthread.h
		/etc:存放配置文件的目录
			/etc/passwd
			/etc/group
			/etc/profile
		/opt:安装第三方应用程序
	
		/home:linux下所有用户的主目录
			/home/taylor
		/temp:存放临时文件
			新建在这个目录下的文件回在系统重启后自动清楚
  1. 相对路径和绝对路径

    和Windows下一摸一样
    绝对路径
    从根目录开始表示的路径,例如:/home/taylor/桌面
    相对路径
    从当前所处的目录开始表示的路径
    . 表示当前目录(路径)
    …表示当前目录的上一级目录(路径)





  2. Linux中的命令提示符
    在这里插入图片描述

    taylor–当前登录的用户
    @–英文at,在
    taylor-virtual-machine–主机名
    /etc:当前的工作目录,~表示主目录
    可通过:echo ~ 或者 echo $HOME 查看当前用户的家目录
    $:表示当前用户为普通用户,#表示管理员用户




    taylor@taylor-virtual-machine:/etc$
    root@taylor-virtual-machine:/ect#

文件和目录操作相关的命令

1. tree 命令

	以树状结构查看指定目录内容,使用该命令前需要安装软件 tree
	sudo apt-get update   sudo apt-get install tree
	使用方法
		tree -- 树形结构显示当前目录下的文件信息
		tree 目录 -- 树形结构显示指定目录下的文件信息

在 /usr/lib/firefox/browser 目录下 查看当前 目录结构 tree
在这里插入图片描述

tree /usr/lib/firefox/browser 查看 /usr/lib/firefox/browser 目录的结构
在这里插入图片描述

2. ls 命令

	查看指定目录下的文件信息
	使用方法:
		ls -- 显示当前目录下的文件信息
		ls 目录或文件名  --显示指定目录下或文件信息
	相关参数:
		-a:列出当前目录下的所有文件
			./ 当前目录
			../上一级目录
			隐藏文件,以.开头的文件名,如.bashrc
			普通文件
		-r:递归方式列出所有目录中的内容
		-l:列出文件的详细信息

			taylor@taylor-virtual-machine:~$ ls -l
			总用量	 32
	    	drwxr-xr-x	2	taylor	taylor	4096 1月	21	01:24 公共的
	   	 	drwxr-xr-x	2	taylor	taylor	4096 1月	21	01:24 模板
	    	drwxr-xr-x	2	taylor	taylor	4096 1月	21	01:24 视屏
	    	drwxr-xr-x	2	taylor	taylor	4096 1月	21	01:24 图片
	   	 	drwxr-xr-x	2	taylor	taylor	4096 1月	21	14:26 文档
	    	drwxr-xr-x	2	taylor	taylor	4096 1月	21	01:24 下载
	    	drwxr-xr-x	2	taylor	taylor	4096 1月	21	01:24 音乐
	    	drwxr-xr-x	2	taylor	taylor	4096 1月	21	14:26 桌面
	   
			文件类型 第1个字符
				- :普通文件
				d :目录
				l :符号链接,相当于windows中的快捷键方式
				s :套接字
				p :管道
				b :块设备
				c :字符设备
			用户的操作权限 2-10字符
				文件所有者对文件的操作权限 2,3,4字符
				文件所属组用户对文件的操作权限 5,6,7字符
				其他人对文件的操作权限 8,9,10字符
			硬链接计数:
				对于目录来说,链接计数等于该鲁姆下所有的目录总数,但不含该目录下子目录的文件数量,执行ls-la命令可以进行查看
				对于文件来水,指的是开文件所有的硬链接文件数量
			文件所有者 :taylor
			文件所属组 :taylor
			文件大小 :36
				如果是目录:只是表示目录大小,不包含目录中的内容,目录大小为4KB
				如果是文件,表示文件大小
			文件的创建日期或最后修改日期 : 1月 21 日 01:24
	参数之间可以结合使用:
		ls-la:列出当前目录下所有文件的相应信息,包含隐藏文件
		ls-ltr:列出当前目录下的文件,按照时间逆向排序

使用ls -l 命令如下:
在这里插入图片描述

3. cd 命令

	切换目录,命令方式 cd +路径
	路径可以使用相对路径或者绝对路径
		cd /home/taylor 绝对路径(从根目录开始)
		cd ./home/taylor 相对路径(从当前目录开始)
	切换到家目录
		cd
		cd ~
		cd /home/taylor
		cd $HOME

4. pwd 命令

	查看用户当前所处的工作目录

5. which命令

	显示命令所在的目录,如which ls,which cp

6. touch 命令

	如果文件不存在,就创建新文件,如果文件存在,更新文件的最后修改时间。
	命令方式:touch 文件名

7. mkdir 命令

	创建新目录,make directory
	创建方式:mkdir 目录名
	如果创建多级目录需要添加参数 -p
		例如		在当前目录创建目录,mkdir mydir
					在宿主目录下创建多级目录:mkdir -p ~/test/hello/world/asshole

8. rmdir 命令

	删除空目录,只能删除空目录,使用方式 :rmdir 目录名

9. rm 命令

	删除文件: rm 文件名
	删除目录: rm -r 目录名
	参数:
		-r:递归删除目录,删除目录必须添加此参数
		-i:提示用户是否阐述文件或目录
		-f:强制删除
	注意事项:
		使用rm命令删除文件或目录不会放入回收站中,数据不易恢复

10. cp 命令

	命令使用方式:cp 源目录或文件 目标目录或文件,若有目录的拷贝则需要使用-r 参数
	
	cp 要拷贝的文件(file1)  file(不存在)
		创建file,将file1中的内容拷贝到file	
	
	cp file1 file(已存在)
		file1 覆盖file 
	
	cp file dir(存在)
		拷贝file到dir目录
	
	cp -r dir(存在) dir1(存在)
		将dir目录拷贝到dir1(不存在)

	cp -r dir(存在)	dir1(不存在)
		创建 dir1
		将 dir 中的内容拷贝到dir1中,不包括dir目录
	cp 拷贝目录也可以使用-a参数,这样可以保留被被拷贝的文件的一些属性信息

11. mv 命令

		改名或者移动文件 mv file1 file2
			改名
				mv file(存在) file1(不存在)
				mv dir(存在)	 dir(不存在)
				mv file(存在) file2(存在)
					file文件覆盖file2文件,file改名为 file2
			移动(第二个参数一定是目录文件)
				mv file  dir
					将file文件移动到dir中
				
				mv dir (目录存在) dir1(目录存在)
					将dir移动到dir1中,dir就会作为dir1的子目录而存在

12. cat 命令

	 将文件内容一次性输出到终端
	 使用方式:cat 文件名
	 缺点:终端显示的内容有限,如果文件太长无法全部显示
	 可用于文件重定向 cat file1>file2,相当于 cp file1 file2

13. more 命令

	 文件内容分页显示到终端,但是只能一直向下浏览,不能回退
	 使用方式:more +文件名
	 相关操作:
	 	显示下一行:回车
	 	显示下一页:空格
	 	退出:q (ctrl+c)

14. less 命令

	 文件内容分页显示到终端,可以自由上下浏览。
	 使用方式:less 文件名
	 相关操作:
	 	显示下一行:回车、ctrl+p、键盘向下键
	 	显示上一行:ctrl+n、键盘向上键
	 	显示下一页:空格、pageDown
	 	退出:q(ctrl+c)

15. head 命令

	 从文件头部开始查看前n行的内容
	 使用方式:head +n[行数] 文件名
	 	head -20 hello.txt #显示hello.txt前20行
	 	如果没有指定行数,默认显示前10行内容

16. tail 命令

	 从文件尾部向上查看最后n行的内容
	 使用方式:tail -n[行数] 文件名
	 如果没有指定行数,默认显示最后10行内容
	 	一个比较重要的应用:显示日志:tail -f test.log
	 	一个终端tail -f test.log,另一个终端:echo “hello world” >> test.log

17. 软链接

	 软链接类似于windows下的快捷方式
	 
	 如何创建软链接
	 	ln -s 文件名 快捷方式的名字
	 	 例如: ln -s aa aa.s
	 	目录也可以创建软链接
	 		例如:ln -s temp, temp.link
	
		软连接应注意事项:
			ln 创建软连接要用绝u第路径,因为如果不适用绝对路径,一旦这个链接文件位置发生变动,就不能找到那个文件了。
			软链接文件的大小是:路径+文件名的总字节数

18. 硬链接

	 ln  源文件 硬链接的名字
	 	ln test.log test.log.hard
	 使用硬链接应注意事项
	 	硬链接不能建在目录上
	 	硬链接对绝对路径没有要求
	 	硬链接不能快文件系统
	 		硬链接文件和源文件的indoe是相同的文件系统的indoe要求不唯一,跨文件系统可能回事indoe不同,所以硬链接不能跨文件系统
	 硬链接的本质
	 	硬链接的本质是不同的文件名所在的indoe节点是相同的,相同的inode节点指向了相同的数块,所以他们的文件内容是一样的,文件内容辉同步。
	 	ls -i 文件名-----> 可以查看文件的i节点
	 	stat 文件名-----> 可以查看i节点信息
	 	
	 硬链接应用场合
	 	可以起到同步文件的作用
	 	修改file的内容,回在其余三个硬链接文件上同步
	 	可以起到保护作用
	 	删除文件的时候,只要硬链接的个数不为0,不会真正删除,起到保护文件的作用

在这里插入图片描述
如上图,file.hard是file的硬链接,这两个文件指向了同一个inode,同一个indoe指向了相同的数据块。

当创建一个新文件,硬链接个数为1
给文件创建了一个硬链接后,硬链接个数+1
删除一个硬链接后,硬链接个数-1
如果删除硬链接后,硬链接个数为01,则该文件会被删除

19. wc 命令

	 显示文件行数,字节数,单词数
	 	wc -l file 显示文件的总行数
	 	wc -c file 显示文件的总字节数
	 	wc -w file 显示文件的总单词数
	 	wc file 显示文件的总行数、单词数和总字节数

20. whoami

	 显示当前登录的用户

21. chmod 命令

	 修改文件权限,linux是通过权限对文件进行控制的,通过使用chmod命令可以修改文件相关的权限
	 命令:chmod[who] [+|-|=] [mode] 文件名
	 	操作对象 [who]
	 		u -- 用户
	 		g -- 同组用户
	 		o -- 其他用户
	 		a -- 所有用户
	 	操作符 [+|-|=]
	 		+ -- 添加权限
	 		- -- 取消权限
	 		= -- 赋予给定权限并取消其他权限
	 	
	 	权限 [mode]
	 		r -- 读
	 		w -- 写
	 		x -- 执行
	 	
	 	示例:给文件 file.txt 的所有者的所属添加权限
	 	chmod ug+wr file.txt

22. chown 命令

	 修改文件所有者
	 用法:chown 文件所有者 文件名
	 	sudo chown mytest file.txt
	 修改文件所有者和所属组
	 	用法:chown 文件所有者:文件所属组 文件名
	 	sudo chown mytest:mytest file.txt
	 	sudo chown mytest.mytest file.txt
	 注意:普通用户需要最高权限
	 注意:若系统没有其他用户,可以使用sudo adduser 用户名 创建一个新用户

23. chgrp 命令

	 使用方法:
	 	chgrp 用户组 文件名或目录名
	 		示例:
	 				修改文件所属组为mytest
	 				sudo chgrp mytest file.txt
	 				普通用户需要使用最高权限执行该命令

24. find命令

	 按文件名查找:参数 -name
	 	示例:find 路径 -name "文件名"
	 		find ~/desktop -name "mytest.txt"
		
	 按文件类型查找:参数 -type
	 示例: find 路径 -type 类型
	 	find ~/desktop -type d
	 		类型
	 			f:普通文件
	 			d:目录
	 			l:符号链接
	 			b:块设备
	 			c:字符设备
	 			s:socket文件
	 			p:管道文件
	 按文件大小查询:参数 -size
	 示例:find 路径 -size 范围
	 	find ~/desktop -size +10k
	 	find ~/desktop -size +10k -size -20k #查找大于10k,小于20k的文件
	 	
	 	范围
	 		大于:+ --- +10k
	 		小于:- ---  -10k
	 		等于:= --- 10k
	 	大小
	 		M 必须大写 兆字节
	 		k 必须小写	千字节
	 		c 表示字节数
	 按文件日期
	 	参数: -ctime(创建) -mtime(修改) -atime(访问)   +n/-n
	 	-n:n天以内
	 	+n:n天以外
	 	
	 按深度
	 	-maxdepth (层数)
	 		搜索n层以下的目录,搜索层数不超过n层
	 	-mindepth(层数)
	 		搜索n层以上的目录,搜索的层数不能小于n层
	 		
	 高级查找
	 	例:查找指定目录下所有目录,并列出目录中文件详细信息
	 	find ./ -type d -exec shell 命令 {} \;
	 	find ./ -type d -exec ls -l {} \;
	 	find ./ -type -ok shell 命令 {} \;
	 	find ./ -type -ok ls -l {} \;
	 	find ./ -type d | xargs shell 命令
	 	find ./ -type |xargs ls -l

25. grep 命令

	 grep -r (有目录) “查找内容“ 搜索路径
	 参数
	 	-r 若是目录,则可以递归搜索
	 	-n	可以显示查找开内容所在的行号
	 	-i 可以忽略大小写进行查找
	 	-v 不显示含有某字符串
	 搜索当前目录下包含"hello workd"字符串的文件
	 grep -r -n ”hello world“ ./
	 grep -r -i -n "HELLO world" ./

26. find 和 grep 命令结合使用

	 先使用find 命令查宅文件,然后使用grep命令查找哪些文件包含某个字符串
	 find ./ -name ".c" | xagrgs grep -n "main"

Linux中常用的压缩工具

gzip和bzip2 #不能压缩目录,只能一个一个文件进行压缩,压缩之后会使源文件消失
	gzip * #压缩当前目录下所有的文件,但是不能压缩目录
	gunzip * #解压当前目录下所有的.gz文件
	bzip * #压缩当前目录下所有的文件,但是不能压缩,目录
	bunzip2 解压当前目录下所有的.bz2文件

tar 工具

	相关参数
		z:用gzip来压缩/解压文件
		j:用bzip2来压缩/解压文件
		c:create,创建心得压缩文件,与x互斥使用
		x:从压缩文件中释放文件,与c互斥使用
		v:详细报告tar处理的文件信息
		f:指定压缩文件的名字
		t:查看压缩包中有哪些文件
	压缩:
		tar cvf  压缩包名字 .tar 原材料[要打包压缩的文件或目录]
		tar zcvf 压缩包名字.tar.gz 原材料[要打包压缩的文件或目录]
		tar jcvf 压缩包名字.tar.bz2 原材料[要打包压缩的文件或目录]
	解压缩:
		tar xvf 已有的压缩包 (test.tar.gz)
		tar zxvf 已有的压缩包(test.tar.gz)
		tar jxvf 已有的压缩包(test.tar.bz2)
		解压到指定目录:添加参数 -C (大写)
			tar zxvf test.tar.gz -C 目录
		查看压缩包中哪些文件
			tar -tvf test.tar

rar 工具

	 使用当前需要安装 rar 工具
	 	sudo apt-get install rar
	 压缩
	 	命令: rar a -r 要压缩的文件(含文件或者目录)
	 		压缩需要使用参数:-r
	 			rar a -r my aa bb dir  将 aa bb dir 压缩到my.rar 文件中
	 			#使用该命令不需要指定压缩包后缀
	 解压文件
	 	命令:rar x XXX.rar 目录
	 		rar x my.rar ----将my.rar解压到当前目录
	 		rar x my.rar TAR  ----将my.rar解压到TAR目录下

zip 工具

压缩:zip -r 压缩包名称 要压缩的文件(含文件或目录)
	压缩:
		目录需要使用 -r 参数
		#使用该命令不需要指定压缩包后缀
		zip -r xxx file dir ---生成 xxx.zip 文件
	解压:
		解压到指定目录:添加 -d 解压目录
		unzip xxx.zip -d ~/test

Ubuntu下软件的安装和卸载

在线安装
	软件安装:sudo apt-get install 软件名
	软件卸载:sudo apt-get remove 软件名
	更新软件列表:sudo apt-get update
	升级软件列表:sudo apt-get upgrade
	清理安装包:sudo apt-get clean
		清理的是缓存路径 /var/cache/apt/archives
	
	软件包安装:
		在Ubuntu系统下 必须有deb 格式的安装包
			软件安装
				sudo dpkge -i xxx.deb
			软件卸载
				sudo dokg -r 软件名
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!