【Linux】长达一周的Linux(持续总结)< 3 >

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云防火墙,500元 1000GB
简介: 以下使用的Linux开发版是以CentOS7系统来讲解的,如果大家使用的是Ubuntu系统或者其他的可以挑着看,差距也不会很大。以下是我学习韩顺平老师课程的一些总结,以及添加了一些我不明白的地方,用来记录巩固记忆,后续不完善的地方也会继续补充的,那么就开始吧。

25.网络初始配置及测试


首先,linux虚拟机和vmnet8是在同一个网段上,vmnet8相当是windows系统,因此可以相互访问。

(vmnet8访问linux虚拟机没有限制,但反过来vmnet8有防火墙,需要关闭才能访问)

其次,vmnet8充当一个代理的角色。linux虚拟机想要访问外界互联网,就得先和无线网卡连接,因为无线网卡才是一个可以真正上网的IP,而vmnet8又能和无线网卡连接。所以vmnet8就充当中间人,linux虚拟机就间接的连接了无线网卡。

然后,无线网卡能访问教室里的局域网,局域网肯定有个公用的网关,网关再和真正的互联网进行访问。


这就是为什么虚拟机和无线网卡不是同一个网段,但是还是能连接上网,就是因为走了一个代理模式。


且虚拟机的网络号是固定的,只有主机号每次登陆时会自动分配,避免ip冲突。


43ddde192634559018eb77d5ed5bc598.png


查看windows网络ipconfig

例如vmnet8。


ipconfig


查看linux网络ifconfig


ifconfig


Windows网络检测工具ping

主要用于检测远程主机是否正常,或者两部主机之间的网卡或者网线故障。


ping 目的主机IP或者DNS或者主机名(主机名需要hosts映射)


Windows测试端口telnet

在cmd中,输入指令。


telnet IP地址:端口号


telnet案例

启用防火墙,测试111 端口是否能telnet连接


telnet 192.168.2.40 111



linux网络配置


自动配置

DHCP(自动配置),日常使用在家就够了。


指定配置

直接修改配置文件来指定IP,并且可以连接到外网,工作使用。


vi/etc/sysconfig/network-scripts/ifcfg-ens33


这是Linux操作系统下的网卡配置文件,通常保存在/etc/sysconfig/network-scripts目录中。


文件名为ifcfg-网卡名称

[root@localhost network-scripts]# cat ifcfg-ens33
TYPE="Ethernet"        #网络类型(通常是Ethemet以太网)
PROXY_METHOD="none"    #代理方式:为关闭状态
BROWSER_ONLY="no"    #只是浏览器:否
BOOTPROTO="static"    #网卡的引导协议【static:静态IP  dhcp:动态IP   none:不指定,不指定容易出现各种各样的网络受限】
DEFROUTE="yes"        #默认路由
IPV4_FAILURE_FATAL="no"        #是否开启IPV4致命错误检测
IPV6INIT="yes"        #IPV6是否自动初始化:是(现在还未用到IPV6,不会有任何影响)
IPV6_AUTOCONF="yes"    #IPV6是否自动配置:是(现在还未用到IPV6,不会有任何影响)
IPV6_DEFROUTE="yes"    #IPV6是否可以为默认路由:是(现在还未用到IPV6,不会有任何影响)
IPV6_FAILURE_FATAL="no"        #是否开启IPV6致命错误检测
IPV6_ADDR_GEN_MODE="stable-privacy"    #IPV6地址生成模型
NAME="ens33"        #网卡物理设备名称
UUID="ab60d501-535b-49f5-a76b-3336a4120f64"#通用唯一识别码,每一个网卡都会有,不能重复,否则两台linux机器只有一台可上网
DEVICE="ens33"        #网卡设备名称(接口名),必须和‘NAME’值一样
ONBOOT="yes"        #是否开机启动,要想网卡开机就启动或通过 `systemctl restart network`控制网卡,必须设置为 `yes`
IPADDR=192.168.137.129        # 本机IP
NETMASK=255.255.255.0        #子网掩码
GATEWAY=192.168.137.2        #默认网关
DNS1=8.8.8.8#                #域名解析器
DNS2=8.8.8.5#


如果虚拟机的IP网段发生变化,那么Window下的vmnet8IP也要跟着改变,不然两者无法网络连接。

最后,service network restart重启网卡或者reboot重启系统 ,配置文件修改生效。



设置主机名和hosts映射


hosts:一个文本文件,用来记录IP和Hostname(主机名)的映射关系。


DNS:互联网上作为域名和IP地址相互映射的一个分布式数据库。


查看Linux虚拟机主机名


hostname


设置Linux虚拟机主机名


给linux系统设置主机名


/etc/hostname中指定,重启生效。


Windows通过hosts文件映射找到Linux


在Windows系统通过ping IP可以连接到linux虚拟机,但是如果是通过ping Linux虚拟机的主机名呢?

此时此刻我们windows系统有个hosts文件,里面写着主机名和IP的映射关系,你通过主机名找Linux虚拟机,hosts映射相当于把主机名替换成了对应的IP。

但是此时此刻我们修改了Linux虚拟机的新主机名,在Windows的hosts文件还是之前的旧主机名,即使IP是对的,但是映射关系已经对不上了。

那怎么办?

那就修改C:\Windows\System32\drivers\etc目录下的hosts文件。


960a1932227ec7f41aca505206097818.png


36a457c5302d928b8b78dce9b562388f.png


07e90bf3d1187a96a0f8775d29107201.png



在最后添加IP 加主机名即可。

也就是说此时我们ping 主机名 ,就会到这个文件去找IP,所以最后还是一个走IP的过程。

Linux通过hosts文件映射找到Windows


在 /etc/hosts指定即可。

只要Windows 端的IP能对应上,主机名随便你起,但是ping主机名的时候你也只能用你起的这个名字去ping测试连接。



举例:浏览器输入www.baidu.com


1)浏览器先检查浏览器缓存中有没有该域名解析IP地址,有就先调用这个IP完成解析;如果没有,就检查DNS解析器缓存,如果有直接返回IP完成解析。浏览器缓存和DNS缓存,可以理解为本地解析器缓存。

2)一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存他的IP地址(DNS解析记录) .如在Windows 的cmd窗口中输入下方指令:

ipconfig /displaydns //DNS域名解析缓存

ipconfig /flushdns //手动清理dns缓存

3)如果本地解析器缓存没有找到对应映射,检查系统中hosts文件中有没有配置对应的域名IP映射,如果有,则完成解析并返回。

4) 如果本地DNS解析器缓存和hosts文件中均没有找到对应的IP,到公网的域名服务DNS进行查找解析,如果还是找不到则返回域名不存在。



26.进程管理(重点)


在 Linux 系统中,进程是一个正在执行的程序的实例,它拥有自己的进程号(PID)、内存空间、文件描述符等资源。系统服务也是一种在后台运行的程序,它们通常以守护进程(daemon)的形式存在。

因此,可以说系统服务就是一个特殊类型的进程,它不像前台应用那样需要与用户互动,在后台运行并提供某些功能或服务。相比较而言,系统服务会一直在后台运行直到被手动停止或系统关机。

在 Linux 中,通常使用init 或 systemd 这样的进程管理器来启动和管理系统服务。当一个系统服务启动时,init 或 systemd 会为其分配一个单独的进程ID,并且它将以该 ID 的身份在操作系统上运行。

因此可见,在 Linux 中一个系统服务可以算作一个进程。


静态显示系统进程信息

ps和top相似,但一个是静态一个是动态。


😉 ps -aux详解

基本语法

ps-aux l grep xxx ,比如我看看有没有sshd服务


选项说明

1.ps-a:显示当前终端的所有进程信息

2.ps -u:以用户的格式显示进程信息

3.ps-x:显示后台进程运行的参数


System V展示风格

USER: 用户名称

PID: 进程号

%CPU:进程占用CPU的百分比

%MEM: 进程占用物理内存的百分比

VSZ:进程占用的虚拟内存大小(单位: KB)

RSS:进程占用的物理内存大小(单位: KB)

TTY:终端名称,缩写

STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等

STARTED:进程的启动时间

TIME:CPU时间,即进程使用CPU的总时间.

COMMAND: 启动进程所用的命令和参数,如果过长会被截断显示

😉 ps-ef详解


ps -ef 是以全格式显示当前所有的进程。-e所有进程,-f全格式


是BSD风格。关于BSD是什么,详情点击这里


UID:用户ID .

PID:进程ID

PPID:父进程ID

C: CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高

STIME:进程启动的时间

TTY:完整的终端名称

TIME: CPU 时间

CMD:启动进程所用的命令和参数


ps -ef 和 ps -aux 在 Linux 中都是用来查看进程的命令。

它们的区别在于:

ps -aux 显示的信息更详细,包括进程启动时间、CPU 使用率、内存使用率等。

而 ps -ef 只显示进程的基本信息。


终止进程

kill

杀死单个进程。


选项说明


-9 强制停止


基本语法


kill 进程号


killall


杀死进程以及进程相关联的进程。


基本语法


killall 进程名称


进程树pstree


pstree -p:显示进程PID


pstree -u:显示进程所属用户


实例:创建子shell进程


在 Linux 中,可以通过在当前 shell 环境下启动一个新的子 shell 来完成。

一般情况下,在 Bash Shell 中,可以使用以下两个命令来启动一个新的子 shell:

1.bash 命令:这个命令会开启一个新的 Bash Shell 终端窗口,并进入子 shell 环境。例如:

bash


2.sh/bin/sh命令:这个命令会开启一个新的 Bourne Shell 或兼容版本的 Shell 终端窗口,并进入子 shell 环境。例如:

sh


或者


/bin/sh


注意,启动一个子 shell 后,你可以在子 shell 环境中执行任何命令,但是它们都不会对父 shell 环境造成任何影响。当退出子 shell 后,你将回到原来的 shell 环境。

3.退出子shell:exit或者kill -9 子shell进程号(强制退出)


aa1fcba1643dcb58ac5ffdb2bfb66547.png

07fc49a15fafacb6aed9bde0fa22c9bf.png


局部变量:


96beed3228fd5de73f544eca2140b2a9.png



27.Linux开机流程

39b823b734e8df3174af991f115f0275.png

Linux开机的流程大致可分为以下几个步骤:

1. BIOS和BootLoader启动

当计算机开机时,首先由BIOS(Basic Input/Output System,基本输入输出系统)进行自检,并确定哪些硬件可以使用,然后将控制权交给引导加载程序(BootLoader)。

常见的引导加载程序有GRUB、LILO等,它们负责查找并加载操作系统内核。

2. 内核启动

引导加载程序通过从硬盘、U盘等存储设备中读取内核镜像,并将内核镜像载入到内存中。随后,内核开始执行,首先进行硬件初始化并建立系统数据结构。

3. 运行init进程

当内核启动后,第一个用户级进程--init进程会被创建。init是所有用户级别进程的祖先进程,在整个系统运行期间都不会退出。其主要职责是启动和管理其他所有进程的生命周期。

4. 启动若干个系统服务和守护进程

在启动过程中,init会读取配置文件,并依次启动一些必要的系统服务和守护进程。这些服务和守护进程包括网络服务、防火墙、日志管理等。通过setup,选择系统服务,就可以选择哪些服务是否开机启动,或者手动启动

5. 进入图形界面或命令行界面

最后一个步骤是根据配置文件决定是否需要进入图形界面或命令行界面。如果用户登录时没有指定运行级别,默认情况下会直接进入图形化运行级别(Runlevel 5),否则会按照用户指定的运行级别执行。

以上就是Linux开机流程的大致说明,每个步骤涉及到的细节还很多,请根据实际情况了解更多信息。



28.Service服务(重点)


目前service指令和chkconfig指令都只管理这三个服务了,其他的服务都是systemctl指令在管理。


0247854240de82baf8fdf9e1697c0e36.png


c877047d5fe5865b402c6fafddf1957e.png


本来大部分是用service指令,Centos7.0更新后大部分都变成systemctl指令了,留下三个旧的。


Service指令(旧)


Centos7.0后,很多服务使用systemctl指令来管理。


基本语法


service 服务名 选项


选项说明


start | stop | restart | reload | status


如果stop了sshd,相当于远程登录的服务被关闭,那么XShell也就登录不上去了,等于访问22端口被关闭了。


指令位置:


ls -l /etc/init.d


service指令管理的服务在 /etc/init.d 中查看。


chkconfig 指令(旧)


Centos7.0后,使用systemctl指令来管理。

通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭,不过我们用的最多的是3和5。


基本语法


查看服务chkconfig--list [| grep xx]


chkconfig 服务名--list


chkconfig --level5 服务名 on/off


指令位置:


ls -l /etc/init.d


chkconfig指令管理的服务在/etc/init.d 中查看。


案例演示:


对network服务进行各种操作,把network在3运行级别关闭自启动


chkconfig --level 3 network off

chkconfig --level 3 network on


1)首先看看这个服务目前是什么状态。


69764aa89c658863ffb5b3e63ab043d3.png


代表在0运行级别是关的,在1运行级别也是关的,在2运行级别是开的,等等以此类推。


a722351bc27263fb811c48cb36613494.png


2)修改并查看


65050b159a3cdd2d8f42c16edc43433a.png


我们可以看到3运行级别已经变成关的了。


9864e428896304e39727e0592bef2fa2.png


注意:最后使用完需要重启reboot。


systemctl指令(新)


设置服务的启动停止指令


基本语法


systemctl 选项 服务名


选项: start | stop | restart | status


指令位置


ls -l /usr/lib/systemd/system


systemctl指令管理的服务在 /usr/lib/systemd/system 中查看。


设置服务的自启动状态


systemctl list-unit-files [| grep 服务名(查看服务开机是否启动, grep可进行过滤)

systemctl enable服务名(设置服务开机启动)

systemctl disable服务名(关闭服务开机启动)

systemctl is-enabled服务名(查询某个服务是否是自启动的)


Service服务的firewall服务


可以把防火墙理解成管理端口的,有两个组open和close,有部分端口在close组中,其余部分在open组中。

在真正的生产环境,往往需要将防火墙打开,但问题来了,如果我们把防火墙打开,而指定端口没有在防火墙中,那么外部请求就不能跟服务器监听端口通讯。这时,需要把指定的端口添加到防火墙的open端口列表中。比如80、22、 8080等等。

打开端口: firewall-cmd --permanent --add-port=端口号/协议

关闭端口: firewall-cmd --permanent --remove-port=端口号/协议

重新载入,才能生效: firewall-cmd --reload

查询端口是否开放: firewall-cmd -query-port=端口/协议

举例:

1.启用防火墙,测试111 端口是否能telnet连接

telnet 192.168.2.40 111

2.开放111端口

firewall-cmd --permanent --add-port=111/tcp (开放端口)

firewall-cmd --reload(重新载入)

firewall-cmd -query-port=111/tcp(如果需要,可以查询确认是否开放)

打开成功会显示success或yes。

3.再次关闭111端口

firewall-cmd --permanent --remove-port=111/tcp (开放端口)

firewall-cmd --reload(重新载入)

firewall-cmd -query-port=111/tcp(如果需要,可以查询确认是否开放)

关闭成功会显示success或no。



29.动态监控进程top


ps和top相似,但一个是静态一个是动态。


动态显示正在执行的进程信息。


基本语法


top 选项


选项说明


505117582b23d95c43d78164c96f4b50.png


当你用top指令进入下下图后,你可以用下方操作来控制显示,就像more指令查看文档的操作一样。


cbe33e02f87bd8475b871a4ec0ea0970.png


再接着解释一下下方名词的含义:

1.top:当前时间

2.up:系统运行了多久

3.users:有几个用户登录此服务器

4.load average:负载均衡,3个相加除以三大于0.7则危险。

5.Tasks:任务数

6.running:正在运行的进程

7.sleeping:睡眠中的进程

8.stopping:停止中的进程

9.zombie:僵尸进程,没运行但占内存。

10.%CPU(s):显示CPU的总使用率以及各个CPU核心的使用情况

11.KiB Mem:显示物理内存总量和可用内存。

12.KiB Swap:显示交换分区总量及可用空间。


22bc81f64038a2c5737d753b6c8cfb99.png


13.PID: 进程ID,表示系统为每个进程分配的唯一标识符。

14.USER: 进程所属用户,表示运行该进程的用户帐号名。

15.PR: 进程优先级别,表示内核按照人工设置的优先级来调度进程执行的顺序。PR值越低,表示该进程在系统中的优先级别越高。

16.NI: NI值也是进程优先级别中的一种方式,与PR值类似,但是NI值是在PR值基础上计算而来。较高的NI值表示较低的进程优先级别。

17.VIRT: 进程占用虚拟内存大小(单位K),包括程序、数据、动态链接库等所有映射到进程地址空间中的内存空间大小。VIRT大小可能会比物理内存和交换空间总和还要大。

18.RES: 进程占用实际物理内存大小(单位K),表示此刻真正被分配给该进程使用的物理内存空间大小。

19.SHR: 共享内存大小(单位K),分为共享库和私有数据两部分。共享库是所有进程可以共享使用的代码段和静态数据段;私有数据则只属于一个进程自己使用。

20.S: 进程状态,包括R(running)、S(sleeping)、T(stopped或traced)、Z(zombie)等。

21.%CPU: 进程占用CPU的使用率,表示该进程在一段时间内占用的CPU资源百分比。

22.%MEM: 进程占用物理内存的使用率,表示该进程占用系统物理内存总量的百分比。

23.TIME+: 进程已经启动的累计时间,包括运行在用户态和内核态的总时间。

top案例1

监视特定用户。


比如我们监控tom用户。

top:输入此命令,按回车键,查看执行的进程。

u:然后输入“u”回车,再输入用户名,即可。


top案例2


终止指定的进程。


比如我们要结束tom登录。

top:输入此命令,按回车键,查看执行的进程。

k:然后输入“k”回车,再输入要结束的进程ID号。



30.监控网络端口状态netstat


可以用来查看目前系统的端口和外部端口的情况,以及被什么进程占用着端口。


基本语法


netstat [选项]


选项说明


1. netstat -a:显示所有打开的端口

2. netstat -t:显示所有TCP连接

3. netstat -u:显示所有UDP连接

4. netstat -n:以数字形式显示所有地址和端口号,而不是将它们转换为域名和服务名称

5. netstat -p:显示哪个 进程(服务)正在 监听或连接Linux系统的端口

6. netstat -r:显示当前的路由表信息

7. netstat -s:显示各种统计信息,如传输数据量、错误数量等


netstat案例1


查看当前的所有端口状态(监听/连接)


输入netstat -an


bf92025164404b0689623f73f194969a.jpg


解释一下含义:


Proto(protocol):协议(tcp就是IPv4,tcp6就是IPv6)

Recv-Q:接收的信息数量

Send-Q:发送的信息数量

Local Address:本地地址及端口

Foreign Address:外部地址及端口

State:状态(ESABLISHEN:连接成功)


netstat案例2


查看sshd 服务(进程)的网络信息。


我们前面在进程管理说过,系统服务也算一个进程,那么系统服务也会监听我们Linux系统的端口。

但他们是本地的,所以没有外部地址。

输入netstat -anp | grep sshd


ca4ed382dc9c49958a47b1d2b4333d4a.png


看完这个对我们的远程登录应该有些了解了吧,就是XShell6连接我们系统服务sshd的22号端口。连接成功后就多了一个进程,而这个进程的中间人就是我们的sshd。



31.rpm包和yum管理器


rpm

rpm(Red Hat Package Manager ),它是一种在Red Hat和CentOS Linux操作系统上使用的软件包管理器 。


如果你是Ubuntu系统则是用.deb(Debian)软件包,则用dpkg包管理器来安装和管理deb包 。

1. 下载.deb软件包:在终端中运行 `wget *软件包下载链接*` 命令或直接从软件官方网站下载。

2. 安装.deb软件包:在终端中运行 `sudo dpkg -i *软件包.deb*` 命令,这将安装该软件包。

3. 如果出现依赖关系问题,则需要手动安装缺少的依赖项。您可以使用命令 `sudo apt-get install -f` 来自动解决依赖关系问题并完成安装。


就是类似Windows的setup.exe的软件安装包,用指令安装,卸载,以及下载。


yum


Yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。



32.shell编程


33.Ubuntu系统


34.Ubuntu之APT远程登录


35.日志管理及日志轮替


36.Linux内核源码


37.Linux备份和恢复



32、ANSI转义序列


ANSI转义序列是一种特殊的字符序列,用于控制文本终端的显示方式、颜色和样式。通常由转义字符(\033)和一系列特定的控制字符组成。

ANSI转义序列以\033[开头,后面跟着一个或多个参数,每个参数用分号;隔开,最后以字母结尾。参数可以是数字或字母,不同的参数组合表示不同的控制命令。例如,\033[31m这个转义序列用于设置前景色为红色。

常见的ANSI转义序列包括:

● 颜色控制序列:用于设置文本的前景色和背景色,例如 \033[31m 表示设置前景色为红色,\033[41m 表示设置背景色为红色。

● 光标控制序列:用于移动光标或隐藏/显示光标,例如 \033[2J 表示清除屏幕内容并将光标移动到左上角,\033[?25l 表示隐藏光标。

● 显示属性序列:用于设置文本的样式,例如 \033[1m 表示设置粗体样式,\033[4m 表示设置下划线样式。

● 其他控制序列:还有其他许多控制序列可以用于控制终端的行为,比如 \033[0m 表示重置所有属性为默认值。

ANSI转义序列通常用于编写控制终端输出的脚本或程序,例如终端颜色化的工具。

# 字体颜色
for i in {31..37}; do
  echo -e "\033[$i;40mHello world!\033[0m"
done


作用是在终端中输出带有颜色的文本。它使用了ANSI转义序列来设置文本的样式和颜色。

具体来说,\033[表示开始一个转义序列,$i表示循环变量i的值,它代表不同的颜色代码(31表示红色,32表示绿色,33表示黄色,34表示蓝色,35表示紫色,36表示青色,37表示白色),;40m表示设置字体颜色为$i对应的颜色,背景颜色为黑色(40),Hello world!表示要输出的文本,\033[0m表示重置颜色为默认值。

这句话的意思是循环打印7次"Hello world!",每次使用不同颜色(从红色到白色)和黑色背景输出。



# 背景颜色
for i in {41..47}; do
  echo -e "\033[47;${i}mHello world!\033[0m"
done


作用是在终端中输出带有背景色的文本。它使用了ANSI转义序列来设置文本的样式和颜色。

具体来说,\033[表示开始一个转义序列,47表示背景颜色为灰色,${i}表示循环变量i的值,它代表不同的颜色代码(41表示红色,42表示绿色,43表示黄色,44表示蓝色,45表示紫色,46表示青色,47表示白色),m表示转义序列的结束符号,Hello world!表示要输出的文本,\033[0m表示重置颜色为默认值。

这句话的意思是循环打印7次"Hello world!",每次使用不同颜色(从红色到白色)和灰色背景输出。



# 显示方式
for i in {1..8}; do
  echo -e "\033[$i;31;40mHello world!\033[0m"
done


这句话的作用是在终端中输出带有不同显示方式的文本。它使用了ANSI转义序列来设置文本的样式和颜色。

具体来说,\033[表示开始一个转义序列,$i表示循环变量i的值,它代表不同的显示方式(1为粗体、2为淡色、3为斜体、4为下划线、5为闪烁、6为闪烁并且粗体、7为反显、8为隐藏),;31表示字体颜色为红色,;40表示背景颜色为黑色,m表示转义序列的结束符号,Hello world!表示要输出的文本,\033[0m表示重置颜色为默认值。

这句话的意思是循环打印8次"Hello world!",每次使用不同的文本显示方式(从粗体到隐藏)和红色字体、黑色背景输出。


目录
相关文章
|
Linux Windows
Linux该如何学习,给你支招
如果你已经确定对 Linux 产生了兴趣,那么接下来我们介绍一下学习 Linux 的方法。这只是自己关于学习Linux的建议。 一、如何去学习 学习大多类似庖丁解牛,对事物的认识一般都是由浅入深、由表及里的过程,循序才能渐进。学习 Linux 同样要有一定的顺序和方法,当然这也是你学习本教程的意义。如果你是初学者,那么建议按照本教程的顺序阅读,不要跳跃,欲速则不达,揠苗也不见得能助长。 另外,强烈建议做好读书笔记,边看边记,边练习边思考,“学而不思则罔,思而不学则殆”,比勤奋更重要的是思考的能力,不要傻学、死学。养成看书的好习惯,学习类的图书如果没能看成自己知识的积累,就是白读。一本书,
|
5月前
|
Linux 程序员 Perl
老程序员分享:Linux查看系统开机时间
老程序员分享:Linux查看系统开机时间
112 0
|
6月前
|
Linux
如何解决Linux时差问题
如何解决Linux时差问题
1049 13
|
5月前
|
Linux C语言 iOS开发
【Linux1】为什么要学习Linux,为什么互联网公司在招聘时,会提出要有Linux经验,及其使用;一些Linux常见指令
【Linux1】为什么要学习Linux,为什么互联网公司在招聘时,会提出要有Linux经验,及其使用;一些Linux常见指令
|
存储 监控 Ubuntu
【Linux】长达一周的Linux(持续总结)< 1 >
以下使用的Linux开发版是以CentOS7系统来讲解的,如果大家使用的是Ubuntu系统或者其他的可以挑着看,差距也不会很大。以下是我学习韩顺平老师课程的一些总结,以及添加了一些我不明白的地方,用来记录巩固记忆,后续不完善的地方也会继续补充的,那么就开始吧。
65 0
|
存储 IDE Ubuntu
【Linux】长达一周的Linux(持续总结)< 2 >
以下使用的Linux开发版是以CentOS7系统来讲解的,如果大家使用的是Ubuntu系统或者其他的可以挑着看,差距也不会很大。以下是我学习韩顺平老师课程的一些总结,以及添加了一些我不明白的地方,用来记录巩固记忆,后续不完善的地方也会继续补充的,那么就开始吧。
62 0
|
Java 关系型数据库 MySQL
|
机器学习/深度学习 算法 Java
11月29日云栖精选夜读 | Linux里10个最危险的命令
Linux命令行佷有用、很高效,也很有趣,但有时候也很危险,尤其是在你不确定你自己在正在做什么时候。 这篇文章将会向你介绍十条命令,但你最好不要尝试着去使用。 当然,以下命令通常都是在root权限下才能将愚蠢发挥到无可救药;在普通用户身份下,破坏的只是自己的一亩三分地。
2746 0
|
Linux Python
linux积累
1、运行Python文件,将文件的输出赋值给一个变量 read -r lines_in_json
714 0
|
安全 Linux 网络安全