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 # 删除
command options parameters
command : 命令名称
options:选项,可以对命令做一些控制,根据具体的需求可写可不写
parameters:传给命令的参数,根据具体的需求可写可不写,也可以是多个
注意:Linux中的命令可以文件管理【文件或者文件夹的增删,文件内容存取,文件或者文件内容查找】,vim编辑器【可以在终端中打开任意格式的文本文件】,用户管理【用户的增删,用户组的增删】,系统管理【查找进程,查看磁盘的使用情况,系统的设置】,网络管理【查看网关,网络的连通性】
Linux自带的帮助信息,不属于命令,属于参数
# 演示命令 ls --help
注意:直接在终端输出指定命令的使用方式,说明内容一般都是中文
# 演示命令 man ls
注意:在终端中打开一个手册,说明内容一般都是英文,
空格 翻页 上下键 向上向下翻页 home 回到首页 end 跳到末尾 / 从上往下所有关键字,例如"/and" n 从上往下定位搜索的关键字 N 从下往上定位搜索的关键字 q 退出查看文档
查看执行过的历史命令
# 演示命令 history # 查看最近的1000条命令 history num # 查看最近的num条命令 !number # 执行历史记录中指定编号的命令
-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 单位:字节 六、文件的创建时间 7月 5 2018 七、文件目录
pwd
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>> 标准错误输出,同上 &> 标准正确输出和标准错误输出,同上 将1和2结合在一起了
-d 只显示文件夹 -f 显示文件的完整路径 -L 2 :只看前两级的内容 演示命令: tree:显示当前文件夹下的所有目录结构 tree -d:只显示文件夹 tree -f:显示当前路径下文件的完整路径 tree path:显示指定路径下的所有目录结构 tree -L num:只显示前num级目录结构
用法:cd 路径[此处可以是相对路径,也可以是绝对路径] # 特殊用法 特殊用法: cd 切换到当前用户的主目录,用户登录的时候,默认的目录就是用户的主目录 cd ~ 切换到当前用户的主目录 cd . 切换到当前目录 cd .. 切换到上一级目录 cd - 返回上一次切换的目录 cd # 回到当前用户的主目录 # 当前用户:正在工作的用户是普通用户中的哪个还是root用户
命令格式:mv [参数] 源文件 [目标路径|目标文件名] ------》可以cd到【文件所在路径下】或者【直接通过路径指明文件】 -i 在目标文件存在的时候会询问是否要覆盖 -b 当冲突的时候,会对源文件进行备份
命令格式:cp [参数] 源文件 目标文件 -i 在目标文件存在的时候会询问是否要覆盖【交互式复制】 -r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名 -a 复制的时候保持文件原有属性 -f 对于已经存在的目标文件不提示 -v 显示拷贝进度 """ 注意:cp 指定的过程中实际拷贝的是文件的内容 同名拷贝:cp filename folder/ 异名拷贝:cp filename1 folder/filename2 """
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.1>rmdir 删除给定的目录,注意:只能删除空文件夹 9.2>rm 删除文件或者目录,可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下面所有子文件和目录都删掉 -r 删除目录,否则删不掉 -ri 交互式删除,每次删除都会进行询问 -rf 强制删除文件或目录# 谨慎使用,确保不使用的情况下可以强制删除,不会出现任何提示和询问
【面试题:简述软硬链接的区别】
软连接:不占用磁盘空间,如果原文件删除则连接文件也会随着失效,命令:ln -s源文件 链接文件
硬链接:会占用磁盘空间,如果原文件删除,对链接没有任何影响,命令:ln 源文件 链接文件
相同点:如果源文件/链接文件其中一个被修改,另外一个也会随着被修改
强大的文本搜索工具,grep允许对文本文件进行模式查找,如果找到匹配模式,grep打印包含模式的所有行 注意:搜索内容串可以是正则表达式 -c:仅显示找到的行数 -i:忽略大小写 -n:显示匹配行以及行号 -v:反向选择,列出没有关键词的行【求反】
-a:可以找到所有,包括别名
格式:find 【查找路径】 【查找方式】 【查找条件】 -name:匹配名称,默认是精确匹配 -size:匹配文件大小 -atime -n +n:匹配访问内容的时间(-n指n天以内,+n指n天以前) -empty # grep和find之间的区别: # grep一般和管道符|结合使用,利用前一个命令的输出作为查找的条件 # find主要为了根据条件【名称、大小、是否有内容】查找文件
-i:忽略大小写 # -c:不输出寻找结果,仅计算找到的文件数量 -l:仅输出指定的几行, 例如:-l 8,输出8行 -r:后面可以接正则表达式 # 注意:locate查找全局,查找包含指定内容的文件【从根目录开始的文件】
-f:忽略大小写的差异,例如 A 与 a 视为编码相同; -b:忽略最前面的空格符部分; -n:使用『纯数字』进行排序(默认是以文字型态来排序的); -r:反向排序; -u:就是 uniq,表示唯一的,相同的数据中,仅出现一行代表; # -t:分隔符,默认是用 [tab] 键来分隔; # -k:以那个区间 (field) 来进行排序的意思
-d :后面接分隔字符。与 -f 一起使用; -f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思; -c :以字符 (characters) 的单位取出固定字符区间;( -连接区间 ,取的是和的意思)
-a:读取原文件内容,并追加新的内容,如果不设置该选项,则新的内容直接覆盖旧的内容
演示命令: gedit 打开一个空白文件 gedit filename 打开指定文件
选项: -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 file 从file中读行。 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\}/匹配包含5个0的行。 x\{m,\} 重复字符x,至少m次,如:/0\{5,\}/匹配至少有5个0的行。 x\{m,n\} 重复字符x,至少m次,不多于n次,如:/0\{5,10\}/匹配5~10个0的行。 #注意:磁盘和缓冲区【有些命令,比如g操作的源文件来自于缓冲区,如果没有任何说明,源文件来自于磁盘】
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:显示版本信息