目录
1.ls指令
2.pwd
3.clear
4.whoami
5.cd
6.tree
7.mkdir
8.touch
9.rmdir
10.rm
11.man
12.cp
13.mv
14.cat
15.more
16.less
17.head
18.tail指令
19.练习:如何读取文件中的某一段?
20.date
21.cal(了解)
22.find
23.which
24.alias(了解)
25.grep
26.普通用户的添加删除
27.zip/unzip
28.tar
29.bc(了解)
30.uname
31.file(了解)
32.几个重要的热键
33.关机指令
34.命令扩展
语法: ls 选项 目录或文件
功能: 对于目录,该命令列出该目录下的所有子目录与文件;对于文件,该命令列出文件名以及其他信息。
①ls -a :列出目录下的所有文件,包括隐藏文件(隐藏文件以 .开头,例如:.test)
(1)Linux的配置文件可以隐藏起来,保护文件,防止用户误操作改变文件的内容。
(2) . 表示当前目录 , .. 表示上级目录
当前目录:
上级目录:
②ls -l : 列出文件的详细信息
简化指令: ls -l = ll
③ls -d
功能:将目录像文件一样显示,而不是显示其下的文件。(只显示当前目录)
④ls -i :输出文件i节点的索引信息
⑤ls -k :以k字节的形式表示文件的大小
⑥ls -s :以块大小为单位列出所有文件的大小
⑦ls -n :用数字的 UID,GID 代替名称
⑧ls -R 列出所有子目录下的文件
⑨ls -1 : 一行只输出一个文件
语法: pwd
功能: 显示用户当前所在的目录
/home/xxx , 就叫做xxx用户的主工作目录 ,一般是在登陆之后默认进入的目录 - 普通用户(相当于宿舍)
/root root账户(单间)
Linux的路径分隔符是/ , window的路径分隔符是 \
语法: clear
功能: 清除屏幕信息
语法: whoami
功能: 显示用户当前的身份
①cd .. : 返回上级目录
②cd /home/gsx/daily : 绝对路径
③cd ../NewBegin/ : 相对路径
④cd ~:进入主工作目录
⑤cd -:返回最近访问目录
⑥目录
(1)Linux的目录结构和文件的组织形式是以多叉树的形式组织的 (以/为根目录)
(2)为何几乎大部分OS,组织目录文件结构的时候喜欢用树形结构?
- 组织目录文件结构要便于查找,所有的文件都必须有唯一的标识方式
- 从根节点到任意一个叶子节点的路径是唯一的
为什么是唯一的? -> 从叶子节点到根节点的路径是唯一的,反过来也一样。
总结:树形结构它的路径唯一性很好确定,通过树形结构可以很好地查找,定位这些路径。
(3)Linux当中,可能要进行一些路径配置,最好使用绝对路径。
⑦补充
Windows(双击) = 进入目录+ 目录展示 = Linux(cd + ls)
功能: 显示目录的树状结构
①安装: centos7
sudo yum -y install tree
②tree 和 tree .
③ tree -a :打印所有文件。 默认情况下,tree不会打印隐藏文件(以点“.”开头的文件)。 在任何情况下,tree都不会打印文件系统构造`.' (当前目录)和`..'(上一个目录)。
①创建一个目录,相当于Windows的创建文件夹
②mkdir -p : 递归建立多个目录
可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立 好那些尚不存在的目录,即一次可以建立多个目录
语法: touch 选项 文件
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
1)-a 或 --time=atime 或 --time=access 或 --time=use 只更改存取时间。
2)-c 或 --no-create 不建立任何文档。
3)-d 使用指定的日期时间,而非现在的时间。
4)-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
5)-m 或 --time=mtime 或–time=modify 只更改变动时间。
6)-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
7)-t 使用指定的日期时间,而非现在的时间。
注意: touch只能用来创建普通文件如 xxx.txt , 常用来创建文本文件。
rmdir是一个与mkdir相对应的指令,mkdir是建立目录,而rmdir是删除目录。
语法: rmdir 选项 dirname
功能: 删除空目录(只能删除空目录)。
适用对象: 具有当前目录操作权限的所有使用者。
①一个目录
②rmdir -p :当子目录被删除后如果父目录也变成空目录的话,就连同父目录一起删除
语法: rm 选项 dirname
功能: 删除文件或目录。
适用对象: 所有使用者。
①rm -f : 即使文件属性为只读(即写保护),亦直接删除。(force)
②rm -r :删除目录及其下所有文件(递归式删除)
③rm * :删除当前目录下的所有文件(不包含目录)
* 是通配符: 匹配当前目录下的任何内容.
rm ./* :./告知系统,要访问的资源在当前目录下。如果省略,部分情况下,默认就是当前目录。
④rm -rf :强制递归删除
- 使用这条命令你要知道你在哪个目录(防止误删除)
- Linux中文件删除了就找不到了。
- rm -rf / : 不要这么做,这样会使OS挂掉(从根目录递归删除,所有的都删了),如果要使用要明确
- 你清楚的知道你自己正在干什么。
- 执行该命令后所造成的结果是你能够承担的。
Linux的指令有很多参数,我们不一定能全部记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的指令便是man。
语法: man 选项 指令
功能: 查看指令的使用规则等。(man的默认手册是1)
常用选项:
1)-k 根据关键字搜索联机帮助。
2)num 只在第num章节查找。
3)-a 将所有章节的查找结果都显示出来。
手册分为8章:
1)可执行程序或shell命令。
2)系统调用(内核提供的函数)。
3)库函数(程序库中的函数)。
4)特殊文件(通常在/dev中找到)。
5)文件格式和约定,如/etc/passwd。
6)游戏。
7)杂项。
8)系统管理命令(通常仅限于root用户)。
Windows中的复制 , 粘贴 = Linux中的 cp命令
语法: cp 选项 源文件或目录 目标文件或目录
功能: 复制文件或目录。
① cp -f :强行复制文件或目录,不论目标文件或目录是否已经存在。
② cp -i :如果文件已经存在,覆盖文件之前先询问用户。
③ cp -r : -r 或 -R 递归处理,将指定目录下的文件与子目录一并处理,若源文件或目录的形态不属于目录或符号链接,则一律视为普通文件处理。
④使用通配符 *
⑤拷贝一份文件并改名
语法: mv 选项 源文件或目录 目标文件或目录
功能: 视mv指令当中两个参数的不同而不同。
①mv指令完成文件重命名或目录重命名。
②移动文件
mv -f :如果目标文件已经存在,不会询问而直接覆盖。
mv -i : 若目标文件已经存在,则会询问是否覆盖。
语法: cat 选项 文件
功能: 查看目标文件的内容。不用打开文件就能直接查看文本内容(适用于少量信息)
①cat -n :对输出的所有行编号。
②cat -b : 对非空输出行编号。
③cat -s :禁止重复的空输出行。
④tac : 从后向前输出打印到屏幕上
cat指令仅适用于查看内容较少的文件,我们若是要查看海量信息文件,就要使用more指令。
语法: more 文件
功能: 查看目标文件的内容。
常用选项 :-n 对输出的所有行编号q 退出more注意: more指令只能通过按回车键进行下翻操作,无法进行上翻操作,并且more指令在查看之前会先加载整个文件。
上面的more指令只能进行下翻操作,而less指令可以同时支持上翻和下翻操作。
语法: less 选项 文件
功能: 既有查看目标文件的内容的功能,又有搜索功能。
常用选项:
1)-i 忽略搜索时的大小写。
2)-N 显示每行的行号。
3)/字符串 向下搜索“字符串”的功能。
4)?字符串 向上搜索“字符串”的功能。
5)n 重复前一个搜索(与/或?有关)。
6)N 反向重复前一个搜索(与/或?有关)。注意: less指令可以通过按上下键进行上翻和下翻操作,并且less指令在查看之前不会加载整个文件。
总结: cat vs (less vs more) (常用来查看代码和日志)
more/cat/less 间的区别:
①cat—次把文件打完,如果文件太大就会刷屏,刷屏就会导致我们无法查看前面的内容;
②而more从前往后依次简单的打印查看,只能一行一行进行下翻(按回车键);
③less命令利用上下键进行上下翻看。
语法: head 选项 文件
功能: 用于显示文件的开头至标准输出中,默认head指令打印其相应文件的开头10行
①head -n :指定想要打印前几行(带n不带n都行)
语法: tail 选项 文件
功能: 用于显示文件的末尾至标准输出中,默认tail指令打印其相应文件的末尾10行
①tail -n : 指定打印后几行
例如: 2001 - 2010
(1)方法1:利用一个临时文件,先把前2011行重定向到该文件,再打印出后10行。(麻烦)
1. " > " :覆盖(输出重定向,每次都要清空原来的内容重新写入)
echo命令的作用是将字符串输出到显示器(文件)上;输出重定向之后将字符串输出到普通文件中;
2." >> " : 追加(追加重定向)
3." < " : 输入重定向
cat本来是要从键盘读数据,输入重定向之后要从文件中读数据,键盘,显示器本质也是文件;
cat后面如果不跟文件名,你输输入什么它输出什么;
cat默认是从键盘中读取数据的;
4.Linux下一切皆文件
(2)方法2:利用管道来辅助进行(最优解)
管道补充:
1.进一步理解
2.管道使用
语法: date 选项 格式
功能: 用于显示时间、设置时间、完成时间与时间戳之间的相互转换等。
①方法1:用于显示时间,可以选定欲显示的格式,格式设定为一个加号,后接数个标记,其中常用的标记如下:
1)%H : 小时(00..23)2)%M : 分钟(00..59)3)%S : 秒(00..61)4)%X : 相当于 %H:%M:%S5)%d : 日 (01..31)6)%m : 月份 (01..12)7)%Y : 完整年份 (0000..9999)8)%F : 相当于 %Y-%m-%d
②方法2:用于设定时间
1)date -s 设置当前时间,只有root用户才能设置,普通用户只能查看。
2)date -s 20220530 将时间设置为20220530,这样会将具体时间设置为空(00:00:00)。
3)date -s 01:01:01 设置具体时间,不会对日期做更改。
4)date -s “01:01:01 2022-05-30” 同时设置日期和具体时间。
5)date -s “01:01:01 20220530 ” 同时设置日期和具体时间。
6)date -s “2022-05-30 01:01:01” 同时设置日期和具体时间。
7)date -s “20220530 01:01:01” 同时设置日期和具体时间。
③方法3:时间戳 (是从1970年1月1日(UTC/GMT的午夜开始所经过的秒数不考虑闰秒)
1)date +%s 显示当前时间的时间戳。
2)date -d @时间戳 将时间戳转换为时间
cal指令可以用于显示公历(阳历)日历。
语法: cal 选项 月份 年份
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1~9999),如有两个参数,则表示月份和年份。
①cal -3 : 显示系统前一个月、当前月以及下一个月的日历。
②cal -j :显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
③cal -y : 显示当前年份的日历。
语法: find 路径 选项 …
功能: 用于在文件树中查找文件,并作出相应的处理(可能访问磁盘->效率比较低)。
find:真正的要在文件系统中进行查找->直接访问磁盘->效率比较低,但是一旦找到就是最真实的
程序,命令,指令本质都是程序文件!Linux当中的每个指令其实都是用计算机语言编写出的可执行程序,这些程序都存储在文件当中,我们可以通过which+指令查看某一指令的程序文件所在路径。
语法: which 指令
功能: 用于查找某一指令的程序文件所在路径。
①输入命令行就相当于在调用系统的命令,这个命令别人给你写好的,就如同Windows点击一个程序的时候就是执行了一条命令
②我们所用的命令就是一条用C/C++/shell写的可执行程序
语法: alias 别名=‘原名’
功能: 可以用于给指令取别名。
grep指令类似于关键词搜索(行过滤工具)。
语法: grep 选项 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的符合条件的打印出来。
①grep -i :忽略大小写进行查找
② grep -n : 显示行号
③grep -v : 反向选择,显示出没有带搜索字符串的行。
①添加用户
测试登陆:
②删除用户
只有root用户才能添加删除用户;root用户修改普通用户密码不需要知道原密码就能直接修改,而普通用户需要知道原密码才能修改。
③用户之间的切换
root账户和普通用户的密码一定不要设置一样
语法: zip 选项 压缩文件.zip 待打包目录或文件
功能: 将目录或文件打包压缩成zip格式。
① zip -r : 递归处理,将指定目录下的所有文件和子目录一并处理。
②解压缩
注意:
- 默认情况下只进行本层目录的压缩
- zip -r 可以进行目录递归式的压缩
- 解压 -d 指定目录
语法: tar 选项 压缩文件 …
功能: 打包/解包,不解开压缩包,直接查看里面内容
常用选项:
1)-c 建立一个压缩文件的参数指令(create的意思)。
2)-x 解开一个压缩文件的参数指令。
3)-t 查看tarfile里面的文件。
4)-z 是否同时具有gzip属性?即是否需要用gzip压缩?
5)-j 是否同时具有bzip2属性?即是否需要用bzip2压缩?
6)-v 压缩的过程中显示文件(常用)。
7)-f 使用档名,请留意,在f之后要立即接档名,不要再加参数。
8)-C 解压到指定目录。
①打包
②解压
③不解压查看文件
bc指令就是Linux下的计算器
语法: bc
功能: 进行运算。
①正常运算
②和其他命令组合
语法: uname 选项
功能: 用于获取电脑和操作系统的相关信息
①uname -r :输出电脑和操作系统相关信息
②uname -a :详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
x86::32位 x86_64 = x64 :64位
语法: file
功能: 查看文件的更多属性信息
① Ctrl+D : 退出当前命令行。
② Ctrl+C:让当前程序停掉(终止失控程序)
③ Ctrl+R : 搜索历史命令(记得不太清楚的命令)
④上下按键。上下按键在Linux当中存储的是历史命令,通过按上下键我们可以查看我们最近使用的命令;我们也可以使用history指令查看历史命令
⑤Tab 自动补齐
语法: shutdown 选项
常见选项:
1)-h 将系统的服务停掉后,立即关机。
2)-r 将系统的服务停掉之后就重新启动。
3)-t sec 经过sec秒后关机。
①所有关机指令只能由root用户执行。
②Linux云服务器建议永远不要关机
① 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last。
② 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln。
③ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab。
④ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup。
⑤ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who。
⑥ 其他命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。