初始Linux操作系统及常见指令
文章目录
- 1. 初识Linux操作系统
- 2. Linux下的基本指令
- 2.1 ls 指令
- 2.2 pwd 指令
- 2.3 mkdir 指令
- 2.4 touch 指令
- 2.5 clear 指令
- 2.6 cd 指令
- 2.7 whoami 指令
- 2.8 重新认识指令
- 2.9 stat 指令
- 2.10 tree 指令
- 2.11 rmdir 指令 && rm指令
- 2.12 man 指令
- 2.13 cp 指令
- 2.14 mv 指令
- 2.15 cat 指令
- 理论线(不发博客)
- 2.16 more 指令
- 2.17 less 指令
- 2.18 head 指令
- 2.19 tail 指令
- 2.20 wc 指令
- 2.21 date 指令
- 2.22 cal 指令
- 2.23 find 指令
- 2.24 grep 指令
- 2.25 zip/unzip 指令
- 2.26 tar 指令
- 2.27 bc 指令
- 2.28 uname 指令
- 2.29 几个重要的热键
- 2.30 关机
- 2.31 其他指令
1. 初识Linux操作系统
这里引入开源和操作系统的介绍:
1.1 首先是开源和闭源的比较:
开源的代码 --> 非常多的人看到 --> 参与讨论 --> 付出行动 --> 解决问题
因此,由于公开的原因,很容易暴露系统的稳定和效率,从而会有顶级黑客、工程师等人提出解决方案,促使系统更快完善,致使开源系统相对闭源系统的稳定和效率都会更高。
而对于安全性而言,公开了不应该是更危险吗?恰恰相反,更多人看到源代码,安全问题都能更快发现,暴露无遗,因此开源系统相对闭源系统而言也会更安全。
1.2 接着是操作系统介绍:
什么是操作系统?
直接抛出概念,操作系统是一款进行软硬件资源管理的软件。
为什么要有操作系统?
- 对下提供基本的管理工作,让各种硬件工作在一个稳定的、高效的、安全的状态中。(手段)
- 对上要提供一个稳定的、高效的、安全的运行环境。(用户的目的)

1.3 结论
综上所述,Linux是一款具体的操作系统的一个品类,CentOS 7是一款具体的Linux操作系统。
1.4 版本问题
Linux商业化版本:

Linux技术版本:
举例子:2.6.11,这几个数字分别代表:主版本号、次版本号、修正次数。
次版本号偶数代表稳定版本,奇数代表开发版本
2. Linux下的基本指令
2.1 ls 指令
罗列当前路径下的文件名,多个选项可以搭配一起使用,不区分选项前后
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表
示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-1 一行只输出一个文件。

补充知识1:. 和 … 是什么?
在Linux中, . 开头的 文件是隐藏文件,而任何目录下都会默认具有两个隐藏目录 . 和 …
. :用它表示 当前路径
… :用它表示 上级路径
补充知识2:为什么要有 . 和 … ?
. :方便我们找到当前目录下的一个文件(可执行文件)
… :方便我们进行路径的回退,毕竟不光要能进去,也要能出来
2.2 pwd 指令
当前在Linux系统中所处的路径,其中 / 是Linux的路径分隔符(\ 是Windows的路径分割符)
两个路径分隔符之间,一定是一个目录;路径最末端,一定是一个普通文件或者目录

补充知识3:相对路径和绝对路径分别是什么?
相对路径:基于当前工作目录的路径,比如:./test
绝对路径:从根目录开始的完整路径,比如:/root/test
2.3 mkdir 指令
在当前路径下创建一个新的目录,可以一次性创建多个

p, --parents 可以递归创立多个目录
2.4 touch 指令
在当前目录下创建一个新的普通文件

补充知识4:文件是什么?
文件 = 文件属性 + 文件内容,文件是数据,需要保存
未来对文件的任何操作,无外乎:1. 对属性的操作 2. 对内容的操作。而这里的操作有两种方式:1. 用指令控制文件 2. 编程访问文件
2.5 clear 指令
清屏

清屏后的效果:

2.6 cd 指令
进入指定的目录(目录 就是Windows系统下的“文件夹”)
cd … : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd …/day02/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录

补充知识5:访问任何文件之前,都必须先找到这个文件,为什么要找到目标文件?(或者说为什么要有路径?)
首先,Linux的整个文件目录结构是一颗多叉树,/ 是根目录,在这个多叉树中,任何一个文件都只有一个父目录,因此,每一个文件的路径都是唯一的,找到了这个路径我才能找到这个文件,才能去进行访问,这也就是路径存在的原因。
2.7 whoami 指令
表述时,经常说我们在xxx路径下,这里的“我们” 就是 whoami

补充知识6:
Linux下指定的用户都有自己的家目录:
对root账号:默认的家目录就是 /root – 超级管理员账号
对于普通用户:默认家目录就是 /home/XXX 这里的XXX就是新建的用户名
任何一个用户首次登陆时,所处的路径都是自己的家目录!!
补充知识7:多用户操作系统 – Windows,Linux
桌面,本质是文件夹,当你登录Windows时:
确认是谁
根据用户名。找到该用户目录下的“桌面文件夹”
将“桌面文件夹”显示为图形化页面
2.8 重新认识指令
1. 指令本质都是程序
指令、程序、可执行程序都是一样,安装和卸载的本质就是把可执行程序拷贝或删除到系统路径下。系统执行一个指令时一定要找到这个命令。当系统没有这个指令时,可以通过yum install -y XXX,XXX就是要安装的命令

2. which 要求系统打印出我所指定的指令名称在系统的所在路

3. alias 也是一个Linux命令,它是给其他命令起一个别名

其中,也有部分自带的别名,比如 ls -l --> ll

2.9 stat 指令
显示文件或文件系统的状态信息

补充知识8:一个文件的ACM时间分别是什么?
Access:一个文件或目录的最近一次访问时间,即文件或目录被读取或执行的时间
Modify:一个文件或目录当前内容最后被修改的时间,即文件或目录进行过写操作的时间
Change:一个文件或目录的更改时间,即文件或目录的属性被修改的时间
2.10 tree 指令
以树状形式显示目录结构

补充知识9:指令出现失控打印怎么办?
用 ctrl+c 可以终止异常的命令
2.11 rmdir 指令 && rm指令
rmdir是删除空目录指令,我们用的更多的是rm指令 – 可以同时删除文件或目录
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件

补充知识10:
- 对于一些不确定的目录或者文件,宁可进行备份,也不要删除
- *:表示一个通配符,意思是可以匹配任意文件名
2.12 man 指令
查看联机手册
1是可执行程序 – 指令
2是系统调用
3是库函数
这里要查找的最重要的是2号手册 – 系统调用

2.13 cp 指令
cp src dst:复制文件或目录,可以对复制后的文件或目录进行重命名
dst:目录,src直接拷贝到这个目录下;如果带路径的文件名,就是拷贝到目录,顺便重命名
src和dst都可以携带绝对或者相对路径进行拷贝,Linux同一目录下不允许存在同名文件
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链
接,则一律视为普通文件处理

2.14 mv 指令
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
1.在指定的目录下,对一个文件或者目录进行重命名: mv text.txt log.txt

2.将指定目录下的文件或者目录,“剪切”到指定的目录下,剪切的同时也可以重命名: mv src path/newname

补充知识11:如何快速写出代码?
- nano 源文件
- ctrl x -> y -> 回车
- gcc code.c
- ./a.out
2.15 cat 指令
查看目标文件的内容,本质是显示文件内容
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行

理论线(不发博客)
Linux理念:Linux中一切皆文件 -> Linux可以以统一的方式来进行文件/设备访问
普通文件:对于任何文件来讲,读和写文件
显示器:显示器设备 -> 显示器文件 -> 向显示器打印,向显示器文件进行写入
重定向:
1.> :输出重定向,每次进行重定向都会从文件开始写入文件内容
过程是:创建一个空文件 > file && 清空一个文件 > file
2.>>:追加重定向,和重定向的区别是,不会清空文件,其他一致
3.<:输入重定向,本应该从键盘文件中读取,变成从普通文件中读取
2.16 more 指令
打印满一屏输出就停下来,让用户下翻,逐行进行阅读,这个指令只能按回车一行一行的让下翻


2.17 less 指令
查看大文件,比如日志,并且可以上下翻页,还能查找特定行数
-i 忽略搜索时的大小写
-N 显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
q:quit

2.18 head 指令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中
-n<行数> 显示的行数

2.19 tail 指令
和head相反,它用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
-f 循环读取
-n<行数> 显示行数

2.20 wc 指令
统计文本的行数

补充知识12:查看大文件的中间怎么办?比如查看big.txt的8000-8010行
使用管道 | 进行级联多条指令,从而实现要求
2.21 date 指令
查看时间
1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
1.显示的格式:
%H : 小时(00…23)
%M : 分钟(00…59)
%S : 秒(00…61)
%X : 相当于 %H:%M:%S
%d : 日 (01…31)
%m : 月份 (01…12)
%Y : 完整年份 (0000…9999)
%F : 相当于 %Y-%m-%d2.设置时间:
date -s //设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
date -s “01:01:01 20080523″ //这样可以设置全部时间
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
date -s “20080523 01:01:01″ //这样可以设置全部时间

2.时间戳(对于日志特别重要)
时间->时间戳:date +%s

3.转换时间戳:date -d @1732707055

2.22 cal 指令
显示公历(阳历)日历
-3 显示系统前一个月,当前月,下一个月的月历
-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
-y 显示当前年份的日历

2.23 find 指令
用于在文件树种查找文件,并作出相应的处理
find 要查找的路径 -opt(name) filename

2.24 grep 指令
在文件中搜索字符串,将找到的行打印出来(行文本过滤工具)
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行

2.25 zip/unzip 指令
打包/解包
-r 递 归处理,将指定目录下的所有文件和子目录一并处理
将111dir目录压缩(可以打包多个,带上多个文件名即可):zip -r test.zip 111dir/*
解压到tmp目录:unzip test.zip

补充知识12:为什么要打包压缩?
缩小体积,占据磁盘空间比较小,下载快,而且不会轻易的丢失文件
2.26 tar 指令
打包/解包,不打开它,直接看内容
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录

补充知识13:总结及回顾
1.总结
打包/解包:
zip [-r] name.zip file1 file2 … (打包多个文件)
unzip name.zip [-d path] (解压[到指定目录])
tar -cvzf name.tgz file1 file2 … (打包多个文件)
tar -xvzf name.tgz [-C path] (解压[到指定目录])
2.为什么要打包压缩?
主要是便于网络传输,下面进行Windows和Linux之间的传输演示:
传输到主机:sz test1.tgz
主机传输到CentOS7:rz [回车后选择文件]
2.27 bc 指令
bc命令可以很方便的进行浮点运算

2.28 uname 指令
用来获取电脑和操作系统的相关信息 [体系结构]
-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

补充知识14:
操作系统版本查询:cat /etc/redhat-release
CPU信息查询:cat /proc/cpuinfo
内存查询:cat /proc/meminfo
2.29 几个重要的热键
Tab:具有命令补全和档案补齐的功能
ctrl+c:让当前程序停掉
ctrl+d:键盘输入结束或退出登录(exit)
ctrl+r:对历史命令进行搜索
2.30 关机
关机命令:shutdown now
-h : 将系统的服务停掉后,立即关机。
-r : 在将系统的服务停掉之后就重新启动
-t sec : -t 后面加秒数,亦即『过几秒后关机』的意思
2.31 其他指令
◆ 安装和登录命令: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。











5541

被折叠的 条评论
为什么被折叠?



