admin管理员组文章数量:1645531
文章目录
- 前言
- Linux文件系统
- 基础指令
- touch、mkdir
- ls
- cd
- cp、mv
- nano、cat、tac
- more、less
- rm
- grep
- which、whereis、find
- 管道 |
- echo
- 重定向:>、>>、<
- alias
- stat
- cal、date
- zip
- head、tail
- tar
- bc
- table
- uname
- history、ctrl R
- ctrl D
- Ctrl C、Ctrl Z
- shutdown
- 编者寄语
前言
Linux简史:
自打1946年2月14日,第一台用来计算导弹弹道轨迹的计算机——埃尼阿克诞生以后,逐渐商业化,各种大佬入场研发升级,都是外国人的恩怨故事。
Unix之父——肯•汤普森(Ken Thompson)发明了UNIX操作系统,价格昂贵,一般企业高校用,汇编语言实现,可移植性很差;C语言之父——丹尼斯·里奇(Dennis MacAlistair Ritchie)和汤普森一商量,写出了C语言版本的UNIX,随后高校的学生也能有机会上手操作使用。
这就点亮了某一位同学的技能树:Linux之父——林纳斯·托瓦兹(Linus Benedict Torvalds),写出了类UNIX的操作系统,取名Linux(Linux is not unix),开源免费。天下苦收费久矣,于是有很多人出于使命感和兴趣参与进来迭代更新,逐渐成了开源的代名词。
Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。
Linux内核官网,基于内核版本的二次开发商业发行版本有:Debian ,Ubuntu ,CentOS,Fedora ,Kali Linux ,红帽企业级Linux等等。
严格来讲,Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。图形用户界面(Graphical User Interface,简称 GUI),是计算机图形学技术的一种,它一般由窗口、下拉菜单或者对话框等图形化的控件组成。
- 什么是Linux内核,什么是Linux发行版本
操作系统概念:
- 如何学好操作系统原理这门课? - cxuan的回答 - 知乎
程序员不直接和这些硬件打交道,在硬件的基础之上,计算机安装了一层软件,这层软件能够通过响应用户输入的指令达到控制硬件的效果,从而满足用户需求,这种软件称之为 操作系统,它的任务就是为用户程序提供一个更好、更简单、更清晰的计算机模型。
- 图片来源:需要多久才能看完linux内核源码? - 一口Linux的文章 - 知乎
设备驱动:
操作系统做决策,设备驱动做执行;真正的管理者,是不会和被管理者(硬件)直接打交道。
命令行 VS 图形界面:
那个年代,乔布斯的mac os借鉴施乐公司,发明了第一款图形界面os,让人体验更好。随后比尔盖茨跟进,有了windows。由于苹果软硬件都自己做,成本比较贵;
windows也试了一下,搞不赢,就和英特尔合作;降低了成本,才有了便宜的笔记本。起初windows也是盗版横行,没法对每个用户起诉,于是就对笔记本厂商起诉,逐渐的实现了捆绑销售。笔记本厂商付钱,用户相当白嫖。图形界面在用户体验上是进步的,当计算机足够便宜,方便使用,才有了现在广泛普及。起初微软是要个IBM合作的,但IBM觉得平民未来不可能用得上以及会用计算机。
Linux这种命令行操作,可以说就是给专业人用的,有门槛,不刻意讨好用户;所以在企业服务器端广泛应用,几乎处于垄断地位。另外更接近原生系统,且先有键盘后有鼠标。
移动互联网到来时,谷歌对抗苹果,买下安卓(基于Linux开发)前身的某家公司,有了安卓机的今天。
乔布斯:要不是你托,企业现在也得用我的,还有你盖茨,你抄我作业
盖茨:你也是抄的别人的
总结:Linux是一款开源的企业级后台操作系统,命令行方式交互,稳定且高效。
环境搭建:
- 装的系统就是Linux的、或者使用虚拟机软件
- 用大厂的云服务器:轻量应用服务器。大厂都有自己的独立机房,给中小企业以租赁服务器的方式提供云服务,个人也可以购买,租赁。
设置好密码后,会有个公网ip,下面Xshell会用 - 使用Xshell进行远程登陆…官网下载安装的时候选择 “home/school” 则为免费版本.官网链接
- Xshell安装的时候基本一路next。
- 主机填服务器的IP即可,这里有图片
X Shell登录与创建多个账户:
- 第一次用户名是root,然后输入云服务器的密码
- 登陆上去以后,创建子账户:
ls /home //看一下都有哪些人在用..
adduser name
passwd name //输密码是不显示的,回车结束,然后会在输一遍
- 关了重开,然后新建会话,还是那个IP,登录用新建的用户名和密码。
- 到了公司个人一般都是用的这样的子账户,进行工作开发。
whoami //显示当前是哪个用户
pwd //显示当前路径
Linux文件系统
Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是文件。
- 各目录文件详解
- Linux的文件后缀是为了方便使用者清楚这是什么类型,并不能决定文件的属性
- / 是根目录下
- cd / : 从任何用户执行该命令都会进入同一个目录,即所有用户共享
- root用户的家目录是:
/root
基础指令
- 每个指令都有很多选项,从而实现像windows系统那样的操作。
touch、mkdir
touch t1.xtx //创建普通文件
mkdir -p t1/t2.t3 //创建多级目录
mkdir t1 //创建t1目录
ls
- 显示目录中的所有文件
ls -l //显示当前目录下所有文件时间 用户id,组id等具体信息
ls -a //显示隐藏文件
. //当前目录
.. //上一级目录
tree . //递归显示当前路径下的所有文件
//若没有该命令,则需切回至root用户 输入:yum install -y tree
cd
- 进入某个目录
- 目录名后可加 / ,也可不加
cd .. //回退上级目录
cd - //在最近的目录之间切换
cd ~ //回到家目录,用户目录
cd t1 //进入t1目录
cd t1/ //效果一样
- / :根目录
- cd / : 从任何用户执行该命令都会进入同一个目录,即所有用户共享
- /home :家目录(我觉得还不如叫用户列表目录)
- cd /home :会显示这台机器的用户,如图,所以我认为与其叫什么家目录,不如说是用户目录
- ~ :当前用户的家目录
- cd ~ 等价于 cd /home/imooc :会进入当前用户的家目录(一般情况连接上机器都是在这个目录,一般操作也都是在这里
cp、mv
- 复制,粘贴
cp -r t1 ../tt1 //递归复制t1目录 至 上一级的tt1目录下
mv t1.xtx t1.txt //重命名
mv t1.xtx ../tt1 //将文件移动至 上一级的tt1 目录下
nano、cat、tac
nano t1.xtx //像记事本一样对 t1.xtx 进行编辑
cat t1.xtx //将文件内容输出到显示器
tac t1.xtx //从文件末尾行倒着显示
//适合显示小文件,多了会刷屏。
more、less
- 文件阅读
more -3 t1.xtx //只显示该文件的前三行,支持分页显示,不支持向上滚动
less t1.xtx //分页显示文件的内容,支持上下翻页 /支持搜索,显示在内容所在的那一页
rm
- 删除目录或文件
rm -rf t1 //强制递归删除t1目录
rmdir t0 //删除空目录
rm t1.xtx //删除普通文件
rm -i * //逐个删除当前目录下的所有文件
rm -i *.xtx //逐个删除当前目录下的.xtx文件
* //通配符
grep
grep -i 'hello' t1.xtx // -i 忽略大小写 显示有'hello'内容的那些行
//过滤
grep -v 'hello' t1.xtx // 显示不带有'hello'内容的那些行
grep -E -i 'hello|hhd' t1.xtx //显示有'hello'和'hhd'内容的那些行
which、whereis、find
- find pathname -options
- 功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
- -name 按照文件名查找文件。
- Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
which ls //查找命令所在的文件路径
whereis ls //在系统的特定路径下,进行命令或文档的相关查找
find ../t1 //在上一级目录下寻找t1文件
管道 |
- 日志,相当于程序的日记,哪里报错了,什么时间报错了。
管道:一个命令的数据,传递给另一个命令
dmesg | grep -i 'error' | more —3 //系统的日志文件,过滤一下错误信息,只显示前三行。
echo
- echo:在屏幕上显示一些信息等.
echo "hello"
-e选项后, \n被赋予了"神奇的能力", 它实现了换行效果
echo -e "hello\nhhd"
重定向:>、>>、<
输出重定向 > ,将原本输出到某文件的内容,输出到另一个文件当中
echo "hello" > t1.xtx //将 hello 输出到 t1文件中,会清空该文件的原来内容,写入新内容
//如何快速清空一个文件的内容?
> t1.xtx //空输入到文件中...秒清.
追加重定向 >>
echo "hello" >> t1.xtx //在文件末尾追加新内容
输入重定向
cat < t1.xtx //先输入重定向,在读取t1.xtx的内容。
cat t1.xtx //程序直接打开文件读取
alias
alias clr='clear' //对命令clear 起别名,输入clr 调用的是clear ,清屏;旨在当次登陆有效
stat
stat t1.xtx //显示:最近一次访问文件的时间
//最近一次修改文件内容的时间
//最近一次修改文件属性的时间
cal、date
日历:
cal 1999 //显示1999年的日历
cal -3 //显示临近三个月的日历
时间戳:比较适合进行范围查找,占用内存小
date +%s //从1970年1月1日00:00:00到当前的秒数,格林威治时间
date +%X //相当于 %H:%M:%S 时分秒
date +%F //相当于 %Y-%m-%d 年月日
zip
zip -r t1.zip t1/ //将t1目录打包压缩
-r 递归处理,将指定目录下的所有文件和子目录一并处理
unzip t1.zip -d ../tmp //解压缩到上一级的tmp目录下
head、tail
head t1.xtx //默认显示一个文件的头部10行内容
head -n3 t1.xtx //显示前3行内容
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件
tail -f filename //会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容
tail -n3 t1.xtx
- 一个5000行的文件,取出1990-2000行的内容,再逆置一下
head -n2001 log.txt | tail -n10 | tac
tar
- Linux有两种压缩格式:.zip,.tgz
- 打包压缩:大量文件搞成一个文件。
- 减少因为网络或者其他原因导致文件丢失的情况
- 减少存储或者传送的成本
tar czvf t1.tgz t1 //打包压缩过程显示出来
tar xzvf t1.tgz //在当前目录下解压
tar xzvf t1.tgz -C tt1 //解压到tt1 目录下
[saul@VM-12-7-centos ~]$ pwd
/home/saul
[saul@VM-12-7-centos ~]$ ll
total 24
drwxrwxr-x 2 saul saul 4096 Jul 20 17:07 tt718
drwxrwxr-x 3 saul saul 4096 Jul 20 16:16 tt719
-rw-rw-r-- 1 saul saul 12102 Jul 20 16:25 tt719.tgz
drwxrwxr-x 2 saul saul 4096 Jul 20 17:34 tt720
bc
- 计算器
table
- 输入一个命令,按两下table,显示相关命令
- 输入一个命令的一部分,按一下table,补全命令
[saul@VM-12-7-centos ~]$ rm
rm rmail rmail.postfix rmdir rmmod
[saul@VM-12-7-centos ~]$ rmdir
uname
- uname用来获取电脑和操作系统的相关信息。
- uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
- a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
[saul@VM-12-7-centos ~]$ uname -a //查看具体信息
Linux VM-12-7-centos 3.10.0-1160.62.1.el7.x86_64 #1 SMP Tue Apr 5 16:57:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
VM-12-7-centos //主机名
3.10.0-1160.62.1.el7.x86_64 //内核版本 3 主版本 10 次版本,偶数通常代表是稳定版本;0 修正版本,修正一些小bug
x86_64 // cpu架构:微软和英特尔合作,一损俱损,一荣俱荣。Intel x86(32位),x86_64(64位操作系统)--> x64
smp //对称多处理
- cpu的位是指一次性可处理的数据量是多少,1字节=8位,32位处理器可以一次性处理4个字节的数据量,依次类推。32位操作系统针对的32位的CPU设计。
history、ctrl R
- 输入过的命令
- 搜索输入过的某条命令
ctrl D
- 退出,账号下线…
Ctrl C、Ctrl Z
-
ctrl-c: ( kill foreground process ) 发送 SIGINT 信号给前台进程组中的所有进程,强制终止程序的执行;
-
ctrl-z: ( suspend foreground process ) 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程,而并非结束进程,用户可以使用使用fg/bg操作恢复执行前台或后台的进程。fg命令在前台恢复执行被挂起的进程,此时可以使用ctrl-z再次挂起该进程,bg命令在后台恢复执行被挂起的进程,而此时将无法使用ctrl-z再次挂起该进程。
shutdown
shutdown -t 60 //60秒后关机
shutdown -h 立即关机
shutdown -r 重启
编者寄语
- 程序员中的那些梗,都是一些老程序员的顶级凡尔赛…hhh
- 意志不坚定如我
- 每条指令都可以百度,谷歌。
- 这里介绍两条man、info
- 云服务:
版权声明:本文标题:初识Linux(1):入门简介、基础指令 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1729413151a1200088.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论