Linux基本指令

Linux以及Linux指令

一、基本知识

1、修改用户名和密码

​ su xxx:切换用户

​ sudo:让普通用户执行root的执行

​ vim:编辑器【在终端中打开文件】

​ passwd xxx:修改指定用户的密码

​ mv old new:将文件重命名

​ pwd:显示当前的工作目录

​ ls:列出当前目录下的所有文件

​ cd:切换工作目录

2、安装软件

​ apt:

​ sudo apt install xxx

​ sudo apt update

​ sudo apt remove xxx

​ sudo apt remove xxx -purge

​ dpkg:

​ sudo dpkg -i xxx # 安装

​ sudo dpkg -r xxx # 删除

二、常用命令

1.概述

command options parameters

​ command : 命令名称

​ options:选项,可以对命令做一些控制,根据具体的需求可写可不写

​ parameters:传给命令的参数,根据具体的需求可写可不写,也可以是多个

注意:Linux中的命令可以文件管理【文件或者文件夹的增删,文件内容存取,文件或者文件内容查找】,vim编辑器【可以在终端中打开任意格式的文本文件】,用户管理【用户的增删,用户组的增删】,系统管理【查找进程,查看磁盘的使用情况,系统的设置】,网络管理【查看网关,网络的连通性】

2.查看帮助文档

1>–help

Linux自带的帮助信息,不属于命令,属于参数

# 演示命令
ls --help

注意:直接在终端输出指定命令的使用方式,说明内容一般都是中文

2>man
# 演示命令
man ls

注意:在终端中打开一个手册,说明内容一般都是英文,

空格       翻页
上下键     向上向下翻页
home      回到首页
end       跳到末尾


/       从上往下所有关键字,例如"/and"
n       从上往下定位搜索的关键字
N       从下往上定位搜索的关键字

q       退出查看文档
3>history

查看执行过的历史命令

# 演示命令
history  # 查看最近的1000条命令
history  num  # 查看最近的num条命令

!number  # 执行历史记录中指定编号的命令

3.文件管理

1>ls:列举出当前工作目录的内容
-a 用于显示所有文件和子目录(包括隐藏文件)
-A 同-a,但不列出“.(表示当前目录)和“..(表示当前目录的父目录)
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。 (文件大小是字节)
-lh 与-l 类似  只不过文件大小显示的是 KB [默认是按照文件名的 abcd 排序的]
-lht 与-l -lh 类似  排序是按照修改时间降序排的
-lhtr 按照时间升序排
-r 将目录的内容清单以英文字母顺序的逆序显示
-t 按文件修改时间进行排序
-F 在列出的文件名和目录名后添加标志。例如,在可执行文件后添加“*”,在目录名后添加“/”以区分不同的类型
-R 如果目标目录及其子目录中有文件,就列出所有的文件

# ls 可以单独使用、列出当前路径下所有的内容
# ls path:列出指定路径下所有的内容,注意相对路径和绝对路径



# 面试题:解释drwxrwxrwx    2  yangyang rock 4096 7月   5    2018 linux-wps(1)# 中每一项的作用
一、文件类型:d
	-:文件
 d:目录
 b:块设备文件
    c:字符设备文件【例如鼠标或者键盘等一次性读取配置】
    l:链接文件【相当于windows下的快捷方式】
    p:管道文件
    s:socket文件
   二、文件权限:rwxrwxrwx
   	r:read,可读权限,使用4表示
 w:write,可写权限,使用2表示
 x:execute,可执行权限,使用1表示
    -:没有任何权限,使用0表示
    第一组:rwx:当前用户的权限【U:user】
    第二组:rwx:和当前用户在同一组中的其他用户的权限【g:group】
    第三组:rwx:其他组中的用户的权限【o:ohter】
        
    例如:rwxr-xr-x:可读可写可执行    可读可执行    可读可执行
   
   三、文件个数  2
	如果文件类型为文件【-】,则该数字表示文件的链接数目
 如果文件类型为目录【d】,则该数字表示目录下的文件个数
 
    
   四、文件的所有者:yangyang rock
   	yangyang:文件的所有者【用户名】
 rock:文件的所有者所在的用户组【用户组】
 
    
   五、文件的大小  4096
   	单位:字节
 
六、文件的创建时间   75    2018
   


七、文件目录
 
2>pwd 查看当前的工作目录
pwd
3>查看文件
cat:查看完整的文件内容
	-n	:显示每一行的行号,包括空行
	-b	:显示每一行的行号,不包括空行
tac:查看完整的文件内容,从尾到头显示【倒序】
# cat和tac都是将一个文件中的内容全部显示到终端上
 
head:查看文件内容
   # tail:查看文件内容
# head和tail默认只显示文件中的前10行或者后10行内容,如果要显示置顶的行数,则需要通过数字指定,格式:head/tail -num filename


less:查看文件
# more:查看文件
# 如果文件内容较少的情况【一个终端的屏幕能够显示下】,则less会打开一个手册,cat和more的效果是完全相同的,会将所有的内容全部输出到终端

# 如果文件内容较多的情况下,则less和more会打开一个手册,cat会将所有的内容全部输出到终端
# 注意:如果文件内容较少,则使用cat,如果文件内容较多,则建议使用more


wc:一次显示文件行数,字节数以及文件名信息
# stat:查看文件详细信息,可以获取文件的文件名、大小、权限,最近访问以及最近更改的时间,stat命令的输出信息比ls命令还要详细
file:查看文件的类型
echo:用于在终端输出字符串或变量的值

>:输出重定向,Linux允许将执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中>>:输出重定向,Linux允许将执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中
1>  标准正确输出,同上
1>> 标准正确输出,同上  
2> 标准错误输出,同上
2>> 标准错误输出,同上
&> 标准正确输出和标准错误输出,同上
	将12结合在一起了
4>tree 以树形结构去显示目录结构
-d 	只显示文件夹
-f	显示文件的完整路径
-L 2	:只看前两级的内容


演示命令:
tree:显示当前文件夹下的所有目录结构
tree -d:只显示文件夹
tree -f:显示当前路径下文件的完整路径
tree path:显示指定路径下的所有目录结构
tree -L num:只显示前num级目录结构
5>cd 切换工作目录
用法:cd  路径[此处可以是相对路径,也可以是绝对路径]

# 特殊用法
特殊用法:
cd	切换到当前用户的主目录,用户登录的时候,默认的目录就是用户的主目录
cd ~	切换到当前用户的主目录
cd .	切换到当前目录
cd ..	切换到上一级目录
cd - 	返回上一次切换的目录
cd #	回到当前用户的主目录

# 当前用户:正在工作的用户是普通用户中的哪个还是root用户
6>mv 移动或者重命名文件或者目录
命令格式:mv [参数] 源文件  [目标路径|目标文件名]    ------》可以cd到【文件所在路径下】或者【直接通过路径指明文件】
-i	在目标文件存在的时候会询问是否要覆盖
-b	当冲突的时候,会对源文件进行备份
7>cp 复制文件或者目录
命令格式:cp [参数] 源文件 目标文件

-i	在目标文件存在的时候会询问是否要覆盖【交互式复制】
-r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名
-a 复制的时候保持文件原有属性
-f 对于已经存在的目标文件不提示
-v 显示拷贝进度

"""
注意:cp 指定的过程中实际拷贝的是文件的内容
同名拷贝:cp filename folder/
异名拷贝:cp filename1 folder/filename2
"""
8>创建文件或者目录
8.1>mkdir	创建一个新的目录
	-p:创建出具有嵌套层关系的文件目录
	
	【】
8.2>touch	创建空白文件,可以设置文件的时间
	名词解释:
	atime:最后一次访问文件或目录的时间【access time】
	mtime:最后一次修改内容的时间【modify time】
	ctime :最后一次改变属性的时间【change time】
	参数:
	-a   修改atime
	-m	修改mtime
	-c	修改ctime
	-d	同时修改atime与mtime
	-t	同时修改atime与mtime,格式{YYYYMMDDhhmm}
	注意:只有-d和-t后面可以指定时间,其他的只能把时间修改为当前时间
9>删除文件或者目录
9.1>rmdir  删除给定的目录,注意:只能删除空文件夹
9.2>rm	删除文件或者目录,可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下面所有子文件和目录都删掉

	-r	删除目录,否则删不掉
	-ri	交互式删除,每次删除都会进行询问
	-rf	强制删除文件或目录# 谨慎使用,确保不使用的情况下可以强制删除,不会出现任何提示和询问
10>ln 建立链接文件【面试题】

【面试题:简述软硬链接的区别】

软连接:不占用磁盘空间,如果原文件删除则连接文件也会随着失效,命令:ln -s源文件 链接文件

硬链接:会占用磁盘空间,如果原文件删除,对链接没有任何影响,命令:ln 源文件 链接文件

相同点:如果源文件/链接文件其中一个被修改,另外一个也会随着被修改

11>grep 文本搜索
强大的文本搜索工具,grep允许对文本文件进行模式查找,如果找到匹配模式,grep打印包含模式的所有行
注意:搜索内容串可以是正则表达式

-c:仅显示找到的行数	
-i:忽略大小写	
-n:显示匹配行以及行号
-v:反向选择,列出没有关键词的行【求反】
12>which 查找其他命令所在的位置
13>type 寻找命令所在的位置,包括命令别名
-a:可以找到所有,包括别名
14>find 按照指定条件来查找文件
格式:find  【查找路径】 【查找方式】 【查找条件】

-name:匹配名称,默认是精确匹配
-size:匹配文件大小
-atime  -n  +n:匹配访问内容的时间(-n指n天以内,+n指n天以前)
-empty

# grep和find之间的区别:
# grep一般和管道符|结合使用,利用前一个命令的输出作为查找的条件
# find主要为了根据条件【名称、大小、是否有内容】查找文件
15>locate 查找数据,从根目录下查找所有内容
-i:忽略大小写
# -c:不输出寻找结果,仅计算找到的文件数量
-l:仅输出指定的几行,  例如:-l 8,输出8-r:后面可以接正则表达式

# 注意:locate查找全局,查找包含指定内容的文件【从根目录开始的文件】
16>sort 给文件内容排序
-f:忽略大小写的差异,例如 A 与 a 视为编码相同;
-b:忽略最前面的空格符部分;
-n:使用『纯数字』进行排序(默认是以文字型态来排序的)-r:反向排序;
-u:就是 uniq,表示唯一的,相同的数据中,仅出现一行代表;
# -t:分隔符,默认是用 [tab] 键来分隔;
# -k:以那个区间 (field) 来进行排序的意思
17>cut 可以从一个文本文件或者文本流中提取文本列
-d :后面接分隔字符。与 -f 一起使用;
-f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;
-c :以字符 (characters) 的单位取出固定字符区间;( -连接区间  ,取的是和的意思)
18>tee 读取标准输入的数据,并将其内容输出成文件
-a:读取原文件内容,并追加新的内容,如果不设置该选项,则新的内容直接覆盖旧的内容
19>gedit 打开Linux下的文本编辑器
演示命令:
gedit  打开一个空白文件
gedit filename  打开指定文件
20>sed 流编辑器,一次处理一行内容,主要用来自动编辑一个或多个文件
选项:
-e<script>--expression=<script>:以选项中的指定的script来处理输入的文本文件;
-f<script文件>--file=<script文件>:以选项中指定的script文件来处理输入的文本文件;
-h或--help:显示帮助;
-n或--quiet或——silent:仅显示script处理后的结果;
-V或--version:显示版本信息。

参数:
文件:指定待处理的文本文件列表。

命令:增删改查
# a\ 在当前行下面插入文本。
# i\ 在当前行上面插入文本。
# c\ 把选定的行改为新的文本。
# d 删除,删除选择的行。
D 删除模板块的第一行。
s 替换指定字符       #'s/old/new/'
h 拷贝模板块的内容到内存中的缓冲区。
H 追加模板块的内容到内存中的缓冲区。
g 获得内存缓冲区的内容,并替代当前模板块中的文本。
G 获得内存缓冲区的内容,并追加到当前模板块文本的后面。
l 列表不能打印字符的清单。
n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。
p 打印模板块的行。
P(大写) 打印模板块的第一行。
q 退出Sed。
b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。
r filefile中读行。
t label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
T label 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
w file 写并追加模板块到file末尾。  
W file 写并追加模板块的第一行到file末尾。  
! 表示后面的命令对所有没有被选定的行发生作用。  
= 打印当前行号码。  
# 把注释扩展到下一个换行符以前。  

sed替换标记
g 表示行内全面替换。  
p 表示打印行。  
w 表示把行写入一个文件。  
x 表示互换模板块中的文本和缓冲区中的文本。  
y 表示把一个字符翻译为另外的字符(但是不用于正则表达式)
\1 子串匹配标记
& 已匹配字符串标记

sed元字符集【正则表达式】
^ 匹配行开始,如:/^sed/匹配所有以sed开头的行。
$ 匹配行结束,如:/sed$/匹配所有以sed结尾的行。
. 匹配一个非换行符的任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。
* 匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。
[] 匹配一个指定范围内的字符,如/[ss]ed/匹配sed和Sed。  
[^] 匹配一个不在指定范围内的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行。
\(..\) 匹配子串,保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers。
& 保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。
\< 匹配单词的开始,如:/\<love/匹配包含以love开头的单词的行。
\> 匹配单词的结束,如/love\>/匹配包含以love结尾的单词的行。
x\{m\} 重复字符x,m次,如:/0\{5\}/匹配包含50的行。
x\{m,\} 重复字符x,至少m次,如:/0\{5,\}/匹配至少有50的行。
x\{m,n\} 重复字符x,至少m次,不多于n次,如:/0\{5,10\}/匹配5~100的行。

#注意:磁盘和缓冲区【有些命令,比如g操作的源文件来自于缓冲区,如果没有任何说明,源文件来自于磁盘】
21>打包和压缩
a.tar     可以把一大堆的文件和目录全部打包成一个文件
	-A或--catenate:新增文件到已存在的备份文件;
	-B:设置区块大小;-c或--create:建立新的备份文件;
	-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
	-d:记录文件的差别;
	-x或--extract或--get:从备份文件中还原文件;
	-t或--list:列出备份文件的内容;
	-z或--gzip或--ungzip:通过gzip指令处理备份文件;
	-Z或--compress或--uncompress:通过compress指令处理备份文件;
	-f<备份文件>--file=<备份文件>:指定备份文件;
	-v或--verbose:显示指令执行过程;
	-r:添加文件到已经压缩的文件;
	-u:添加改变了和现有的文件到已经存在的压缩文件;
	-j:支持bzip2解压文件;
	-v:显示操作过程;
	-l:文件系统边界设置;
	-k:保留原有文件不覆盖;
	-m:保留文件不被覆盖;
	-w:确认压缩文件的正确性;
	-p或--same-permissions:用原来的文件权限还原文件;
	-P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
	-N <日期格式>--newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
	--exclude=<范本样式>:排除符合范本样式的文件。
	
"""
打包【压缩】
仅仅打包,但不是压缩: tar -cvf xxx.tar 源文件
打包后,以gzip压缩:tar -zcvf xxx.tar.gz 源文件
打包后,以bzip2压缩:tar -jcvf xxx.tar.bz2 源文件


解包
tar -xf .tar/.tar.gz/.tar.bz2
"""


b.gzip	 对文件进行压缩和解压缩,压缩之后用“.gz”作为扩展名

还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式

-d或--decompress或----uncompress:解开压缩文件;
-f或——force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
-l或——list:列出压缩文件的相关信息;
-L或——license:显示版本与版权信息;
-n或--no-name:压缩文件时,不保存原来的文件名称及时间戳记;
-N或——name:压缩文件时,保存原来的文件名称及时间戳记;
-q或——quiet:不显示警告信息;
-r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-t或——test:测试压缩文件是否正确无误;
-v或——verbose:显示指令执行过程;
-V或——version:显示版本信息

你可能感兴趣的:(Linux基本指令)