linux学习-纪录篇

前言:

正式学习linux的时候,除了那些命令之外,更多的是对于这个系统的重新认知。

linux的身世?

在上世纪90年代,那时候计算机非常的珍贵,配置也很一般般,系统也贵,所以没啥人用,在当时就已经有系统了叫UNIX系统,这个是linux的前身,由于当时这个系统非常的吃配置,当然了对于当时来说是这样的,据说可以使用UNIX操作系统的机器在当时可以卖到5W美刀,然后到了后面有一个开源大神(这也是开源的最初形成)认为计算机本来就应该是亲民的,我们要实现其普遍性,因此对于UNIX进行了二次开发,形成了最初的Linux版本0.1x,据说当时代码只有仅仅1w行(c语言),编写Linux内核。以Minix操作系统作为参考,但在Minix的基础上进行了丰富的修改和扩展,以创建一个更符合个人计算机需求的内核,通过互联网将Linux发布到公众,并邀请其他开发者参与到项目中。这一开放的发展模式吸引了大量的开发者,他们为Linux做出贡献,改进了内核的功能和性能,Linux最初是作为一个内核开发的项目,但随着时间的推移,它逐渐发展成为一个完整的操作系统。Linux内核与GNU项目中的工具和应用程序结合在一起,形成了一个完整的Linux操作系统。这种结合被称为GNU/Linux,Linux的开源性质使得任何人都可以查看、修改和分发源代码,这也促进了Linux在全球范围内的发展和广泛应用。如今,Linux已成为主流操作系统,广泛应用于服务器、移动设备、嵌入式系统等各个领域,Linux的身世可以概括为一个由Linus Torvalds发起的开源项目,经过全球开发者的不断贡献和改进,最终发展成为一个强大、稳定的操作系统内核,为现代计算机提供了一个开放、灵活和可定制的平台。

linux为什么力压window成为程序员最喜欢的开发平台?

1.开源性

Linux是一个开源操作系统,这意味着人们可以自由查看、修改和分发其源代码。开源性使得程序员可以深入了解内部运行机制,并对系统进行自定义和优化。可以根据自己的需求修改和扩展Linux内核和其他软件,而不受厂商的限制。

2.稳定性.可靠性

Linux在服务器环境中表现出色,以其高度稳定和可靠的特性著称,减少系统崩溃和数据损失的风险。

3.社区支持

Linux拥有庞大而活跃的开源社区,这是它的一个重要优势。开发者可以通过邮件列表、论坛、社交媒体等途径与其他开发者交流和分享经验。可以获得社区的支持和反馈,解决问题和改善开发技巧。开源社区的合作精神也促进了不同开发者之间的合作和共同进步

服务器运行级别:

服务器运行级别:

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则一开机就会重启
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 
运行级别2:多用户状态(没有NFS) 
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 
运行级别4:系统未使用,保留 
运行级别5:X11控制台,登陆后进入图形GUI模式 
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则一开机就会重启

一般常用于3,5,自己购买的虚拟机是级别是3,因为没有图形化界面,而我们自己的主机装的服务器一般我们设置位5级别即可

命令篇:

对于linux而言,我们都知道linux是一个以树为模型而构建的一个文件系统,通过树的父子关系来进行文件的寻址,文件系统是以根目录(/)为起点,通过目录和子目录的层级关系构建而成的。每个目录可以包含文件和其他目录。那么文件对于linux系统来说是非常重要的。

所以对于文件的crud和属性操作是我最先学习的

文件篇:

文件编辑命令:

vi和vim是最常用的两个编辑文件命令。

1.vi:我从用服务器开始到现在从来没用过这个命令.....

2.vim:最常用的命令,可以直接编辑文件内容,vim ***.txt,输入i进行编辑,编辑好了,依次输入esc :wq,就可以退出并保存,q是退出,q!是强制退出,然后还有yy,dd命令,yy是复制其实用处也不大,我们可以直接复制粘贴,dd用的挺多,删除当前行,ndd删除n行,输入:/可以全文查找需要的数据,set nu显示行号,set nonu不显示行号,u撤销(不是ctrl+z),用到的也就这么多吧。

文本查看命令:

1.cat:一次性加载整个文本文件,也是我之前使用最多的一个查看文本行命令,这个命令有个缺点,就是一次性加载有时候不符合我们查看的要求,所以小文本可以用用,但是当文本内容多了之后就会显得很冗余,当然了与管道符号|和grep和起来用还是可以的,进行筛选。

2.more:缓慢加载,不是一次性加载所有的文本内容,一页一页的加载,可以通过空格键进行控制,但是不能向上翻页看已经看过的内容(可以翻页,不好用),对于大文本来说比较常用。

3.less(用的多,比more强):缓慢加载,和more的大体加载方式是一样的,但是它可以进行向上阅读(上下键即可),向上搜索,按q键退出

4.tail:这个命令我是一般用来查看日志log文件的,最常用的方式tail -f -n 100 xxx.log,用来实时观测这个文件最后100行的内容,用来进行linux日志排错,或者用户行为观测的一些操作,还有一点说明,因为这个tail是根据文件的inode进行观测的,而当文件被vi/vim进行修改的时候,tail是检测不到的,这是因为vi/vim修改文件时会对文件的inode进行修改,所以tail无法观测。

5.head:也是一个观测命令,只不过是动态观测前面n行,和tail恰恰相反,但是一般日志加载都是往后面加,所以这个命令一般用的很少,反正我几乎没用过一次......

6.nl:和cat一样,只不过多了行号,没用过.......

文件位置查找命令:

1.find:全盘查找,需要去磁盘加载所有的文件目录才可以进行查找,所以速度很慢,几乎不用

find / -name ***.***          #查找/路径下所有的***.***的位置

2.which:根据系统的PATH路径进行查找,返回系统命令在哪个位置一般在/usr/下,也不建议用

which ***

3.whereis:只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息,从来没用过......

whereis ***

4.locate:这个命令是最常用的命令,而且运行速度也快,因为这个命令的查找是根据数据库(/var/lib/locatedb)索引进行查找的,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

locate ***

文件CRUD的命令:

1.rm:删除文件命令,-f为强制删除,-r为递归删除,也就是我们常说的rm -rf /*,删库跑路......

2.mv:移动或者改名字,如果是一个文件->另一个文件,则是移动,如果是mv jdk_1.8_6.0.31 jdk,这种就属于是改名字了。

3.cp:复制用的,递归复制-r,cp -r /opt/my /opt/your,将my目录下的所有文件全部复制到your里面,和mv不同的是原来的文件不用被删除。

4.touch:创建文件命令,用的也比较少,因为我们一般直接vim一个文件就直接一步到位了

文件填充内容命令:

1.>:这个是覆盖命令,将原有的内容全部覆盖之后填充新的信息进去,可以用我们cat出来的内容填充,cat xxx.txt > xxx.txt,其实这样就相当于我们做了一个cp命令,如果目标文件不存在则会创建一个新的文件,还有比如ll查看出来的内容都可以进行覆盖

2.>>:这个是追加命令,对于上面的>命令来说只不过是不进行覆盖了,其他没啥区别

文件连接规则:

其实就分为软硬连接两种,都是通过ln命令进行控制,我现在还不懂这个文件连接有啥用.......

1.软连接:ln -s /源文件 /目标文件,相当于我们windows的快捷方式

2.硬连接:ln /源文件 /目标文件,相当于指针,重新分配了一个inode号指向原来的文件

相同点:两个都不是复制文本文件,相当于只是多了一点inode,类似于快捷方式这样的内存。

不同点:硬链接必须在统一的文件系统下,不能跨文件,不允许给目录创建硬链接

常用命令:

管道命令:

|,其实对于管道命令来说就这一个,但是我们经常将其和grep连在一起用,进行过滤查询的信息而言,当然也可以跟其他命令,cat,more,less这些都可以

查看历史命令:

history:

这个命令很厉害,可以查看你历史所有使用过的命令,前提是你不进行历史命令清除,直接输入就可以看到,也可以加入一些参数进行部分命令查看,例如查看带有cd的执行命令,或者查看最后100行执行的命令,根据这个我们可以使用!+id号就可以直接使用我们之前用过的命令,!之后跟的负数表示倒数取命令,目前我用到的就这么多

用户权限命令:

1.su:切换用户命令,从权限大-权限小不需要密码,反之则需要密码,切换之后的PATH环境是不会发生变化的,可以利用who am i/whoami来进行验证

2.sudo:暂时获取root权限的一个命令,类似于这样sudo cat xxx.log,当普通用户没有权限进行观测时,可以用sudo进行权限提升,但这也仅仅是当前命令行的提升,使用过后就没有了。

上面两个命令我也几乎没有过[笑哭],因为我一直都是用root登录操作的......

3.whoami:显示自身的用户名称,本指令相当于执行"id -un"指令。

输出命令:

echo命令

这个在shell脚本中编辑的时候用的也是很多的,一个输出命令

-n 不换行输出

-e 转义字符使用

这两个比如我们在进行九九乘法表的输出时就可以用到:

echo -ne "$i*$j=$SUM\t"

\t就是转义字符,-n就是不用换行,如果没有-n的话就成了81行输出了,其他很少用

查看目录命令:

1.ls:查看当前目录,直接就可以ls,如果需要查看其他目录则可以,ls /xxx/xxx,值得一提的是ls -a,ls -l,ls -h命令,ls -a可以查看隐藏文件,ls -l就相当于ll。

2.ll:ls加强版,一般我都用这个,初学的时候我用上面那个ls多一点,后面就用ll了,显示的

信息更全更多,ll -a显示隐藏文件,ll -h,就是把文件所占字节大小转换为k,m,g这样的形式。

用户权限篇:

介绍:

其实一般我们很少用用户权限,用户组,添加用户,因为这些活一般是运维的,开发或研发根本不用管这个,基本不用,了解即可。

一般我们看到的linux里面的文件形式,如果是ll查询出来的就是如下情况:

每个文件或问价夹前方都有类似于d/-_rwx_rwx_rwx这样的字符串,其实这就是代表文件所有者,文件归属组,其他用户拥有的权限,rwx分别代表,读(read),写(write),执行(excute)。

- :普通文件

d:目录文件

l:链接文件

s:表示socket文件          

c:字符设备文件 character

b:块设备文件 block 磁盘设备

p:pipe管道文件

文件的读、写、执行权限:

        r:允许查看文件的内容,包括的命令:cat、grep、head、tail、more、less、nl等      

        w:允许修改文件内容,包括的命令:vim、>>、>(重定向)      

        x:运行脚本里的命令: ./a.sh(相对路径)、/lianxi/a.sh(绝对路径) 直接运行文件,需要给脚本文件授予可执行权限.(一般我们写完shell脚本就需要给脚本一个x权限负责无法执行)          

文件夹的读、写、执行权限:

        r:可以显示目录列表,包括的命令:ls       

        w:允许在目录中创建、移动等,包括的命令:cp、mv、rm、vim、touch、mkdir等      

        x:允许切换目录,包括的命令:cd 

归属(所有权):

        文件拥有者(owner):拥有该文件或目录的用户账号   -- user --u

        属组(group):拥有该文件或目录的组账号   --group --g

        其他人(others):除了属主和属组的其他人   --others --o

1.chgrp:改变用户者组的(一般文件或者文件夹是谁创建的,那么用户者就是创建那个人)

2.groupadd:增加用户组

3.usermod:改变用户所在组

定时任务调度:

概述:是指系统在某个时间执行的特定的命令或程序,比如有些重要的工作需要周而复始的执行,例如:病毒扫描,数据库的备份等等......

任务调度分类:

1,SCHED_OTHER 分时调度策略,

2,SCHED_FIFO实时调度策略,先到先服务

3,SCHED_RR实时调度策略,时间片轮转

crond任务调度:

crontab进行定时任务的设置,基本用法,-e编辑crontab定时任务,-l查询crontab任务,-r删除当前用户所有的crontab任务

设置任务调度文件:/etc/crontab

设置个人任务调度,执行crontab -e

输入例如:*/1 * * * * (加入你想要定时任务的操作)

这句话的意思是每隔一分钟就进行操作的执行

五个占位符的作用 

特殊符号

 举例说明

 at定时任务:

概念:at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行,默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果与当前时间匹配,则运行此作业,可以用ps -ef | grep atd来查看at命令是否生效。

命令详情

 例如: at 5pm + 2 days:意思是两天后的下午5点执行

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新城已无旧少年_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值