怎么学习linux

怎么学习linux,第1张

学习Linux步骤:

1、先了解了解基础吧,找一本薄一点的,浅一点的书,了解一下什么是linux。有个基本了解即可。不建议马上看《鸟哥的Linux私房菜》,这本书很不错,如果你了解linux基础之后再看,对你可以说是不受益匪浅都不行。没基础看《鸟哥的Linux私房菜》比较痛苦,内容很多。

2、了解之后,在自己电脑上弄个虚拟机,装上linux系统(redhat或ubuntu都行)。专攻《鸟哥的Linux私房菜》。当你把这本书攻下来时,才知道原来命令行并不可怕,自己打着打着就很长啦。

学linux最主要靠实践,不实践,只看书对你没好处的哦。自己在虚拟机上慢慢玩吧,玩多了就知道咋回事啦。不懂的多找资料弄懂,弄懂之后再实践,这才会有收获。

sort 是将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按照ASCII码值进行比较,默认将他们按照升序输出

降序

在输出中去重

排序结果输出到原文件

sort的默认输出是输出到标准输出,如果想把结果输出到文件,需要 sort file >newfile,但是如果想把结果输出到原文件这样就不行了,这时就需要 使用sort -o

以数值来排序

sort 默认是按照字符串排序的,这样就会出现10比3小的情况,sort -n 就可以告诉sort 以整数排序

-t 后面跟 分隔符

-k 后面跟数字,表示用第几列排序

如 sort -t : -k 2 表示把每行 以:号分割,按照第二列排序

banana:30:5.5

orange:20:3.4

apple:10:2.5

我们可以看到,当baidu 和soho都是100的时候,baidu排在前面,当当前域按照默认规矩,是从第一个域开始进行升序排序,因此baidu排在了sohu前面。

sort 支持 -k 2 -k3这种模式,如果你需要,你可以继续这么写下去

你仔细看看,在-k 3后面偷偷加上了一个小写字母r,r和-r的作用是一样,你也可以把前面的-n去掉 在r后面加上n,如下

其实-k 选项 功能很强大,语法[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]

从逗号前后 分为两大部分,即-k 2,2,是严格使用第一个域排序,如果只设置-k 2 其实是按照从第一个域到行尾。逗号分开的每部分又有一个点表示子域,即-k 1.2表示 按照第一个域的第二个字符排序,Modifiers就是我们用到的n和r 如 -k 1.2nr 具体我们看下面的例子。

我们使用了-k 1.2,这就表示对第一个域的第二个字符开始到本域的最后一个字符为止的字符串进行排序。你会发现baidu因为第二个字母是a而名列榜首。sohu和 google第二个字符都是o,但sohu的h在google的o前面,所以两者分别排在第二和第三。这和之前说到的按照默认的排序规则 是不同的,当第一个域的第二个字符相同时,他不会去按照第一个字符排序,而是按照后面的字符排序,这是因为-k 1.2是对第一个域的第二个字符开始到本域的最后一个字符为止的字符串进行排序。而之前的夸域其实是一种假象。

-u只识别用-k设定的域,发现相同,就将后续相同的行都删除

但是这时候,却一行也没有删除。原来-u是会权衡所有-k选项,将都相同的才会删除,只要其中有一级不同都不会轻易删除的

可以用到b、d、f、i、n 或 r。

其中n和r你肯定已经很熟悉了。

b表示忽略本域的签到空白符号。

d表示对本域按照字典顺序排序(即,只考虑空白和字母)。

f表示对本域忽略大小写进行排序。

i表示忽略“不可打印字符”,只针对可打印字符进行排序。(有些ASCII就是不可打印字符,比如\a是报警,\b是退格,\n是换行,\r是回车等等)

1.1、服务器注意事项:

远程服务器不允许关机,只能重启

重启时应该先关闭服务

不要在服务器访问高峰运行高负载命令

远程配置防火墙时不要把自己踢出服务器

指定合理的密码规范并定期更新

合理分配权限

定期备份重要的数据和日志

1.2、设置网络桥接命令和(ANT模式):

systemctl restart network------重启网卡service network restart---------重启网络服务

systemctl  stop NetworkManager 临时暂停网络管理器systemctl disable NetworkManager 永久关闭网络管理器

systemctl start NetworkManager      拥有root用户的可执行权限

systemctl stop NetworkManager      停止并禁用虚拟机 NetworkManager 服务

systemctl disable NetworkManager

注意:修改网络配置文件后,需要重新加载网络连接,如果是通过network.service则使用命令:systemctl restart network;如果是通过NetworkManager.service则使用nmcli命令:nmcli connection reload。

设置网络主要 *** 作(桥接模式和)

[root@localhost network-scripts]# cd etc/sysconfig/network-scripts/

[root@localhost network-scripts]# vi ifcfg-ens33

systemctl restart network------重启网卡

service network restart---------重启网络服务

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static            设置静态

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=ens33

UUID=10c17057-e9c9-4831-a8ff-0757ea0abc0b

DEVICE=ens33

ONBOOT=yes                          #开机重启

#IPADDR=192.168.43.168              #ip地址(需要跟主机同一个网段,不同一个IP)

IPADDR=10.63.73.20                 

#NETMASK=255.255.255.0              #子网掩码(下面三个都跟主机一样)

NETMASK=255.255.0.0

#GATEWAY=192.168.43.1              #网关

GATEWAK=10.63.255.254

#GATEWAK=10.200.0.3

#DNS1=192.168.43.1                  #DNS服务

设置网络主要步骤(Nat模式)

1.打开Vm,点击编辑->虚拟网络编辑

2.选择VMnet8,将VMnet信息改为NAT模式,比如我的本机IP是192.168.138.1,子网掩码为255.255.255.0

所以我将下面的IP配置成192.168.138.0 子网掩码配置成255.255.255

3.再点击NAT设置将网管配置成192.168.138.2(ps:网关不要配置成和自己IP地址一样)

然后再应用确定

4.右键点击虚拟机设置,网络适配器改为自定义(选择Vmnet8 Nat模式)

5.接下来开启虚拟机

cd /etc/sysconfig/network-scripts/

vim ifcfg-eno16777736

然后再执行命令:/etc/init.d/network restart

1.3、设置防火墙

1.3.1、防火墙命令

停止防火墙:

systemctl stop firewalld.service #停止firewall 防火墙

service  iptables stop  #(centos7版本之前)

永久关闭防火墙:

systemctl disable firewalld.service #禁止firewall开机启动 ( 永久关闭防火墙 )

chkconfig iptables off #永久关闭防火墙

开始防火墙:

systemctl start firewalld  #启动防火墙

systemctl restart iptables.service #重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动(重启)

查看防火墙状态:

systemctl status firewalld

service  iptables status # (7版本之前)

1.3.2、Linux chkconfig 命令

Linux chkconfig 命令用于检查,设置系统的各种服务。

这是Red Hat公司遵循GPL规则所开发的程序,它可查询 *** 作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。

语法

chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]

参数 :

--add  增加所指定的系统服务,让 chkconfig 指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。

--del  删除所指定的系统服务,不再由 chkconfig 指令管理,并同时在系统启动的叙述文件内删除相关数据。

--level<等级代号> 指定读系统服务要在哪一个执行等级中开启或关毕。

实例

列出chkconfig 所知道的所有命令,可以用chkconfig –list查看所有的服务及其在每个级别的开启状态。

# chkconfig --list

开启服务

# chkconfig telnet on   //开启 Telnet 服务

# chkconfig --list      //列出 chkconfig 所知道的所有的服务的情况

关闭服务

# chkconfig telnet off  // 关闭 Telnet 服务

# chkconfig --list      // 列出 chkconfig 所知道的所有的服务的情况

[root@cent01 sbin]# chkconfig --level 3 network off  //关闭3级别的network服务

[root@cent01 sbin]# chkconfig --list //3级别已关闭

network        0:关 1:关 2:开 3:关 4:开 5:开 6:关

[root@cent01 sbin]# chkconfig network on //不输入级别,默认打开2,3,4,5级别

[root@cent01 sbin]# chkconfig --list

network        0:关 1:关 2:开 3:开 4:开 5:开 6:关

[root@cent01 sbin]# chkconfig --del network //删除network

[root@cent01 sbin]# chkconfig --list  //network已消失

mysqld          0:关 1:关 2:开 3:开 4:开 5:开 6:关

netconsole      0:关 1:关 2:关 3:关 4:关 5:关 6:关

[root@cent01 sbin]# chkconfig --add network //增加network服务

[root@cent01 sbin]# chkconfig --list  //network服务又恢复了

mysqld          0:关 1:关 2:开 3:开 4:开 5:开 6:关

netconsole      0:关 1:关 2:关 3:关 4:关 5:关 6:关

network        0:关 1:关 2:开 3:开 4:开 5:开 6:关

[root@cent01 sbin]# chkconfig --list

注:该输出结果只显示 SysV 服务,并不包含

原生 systemd 服务。SysV 配置数据

可能被原生 systemd 配置覆盖。

      要列出 systemd 服务,请执行 'systemctl list-unit-files'。

      查看在具体 target 启用的服务请执行

      'systemctl list-dependencies [target]'。

mysqld          0:关 1:关 2:开 3:开 4:开 5:开 6:关

netconsole      0:关 1:关 2:关 3:关 4:关 5:关 6:关

注意: 但是这里只显示了SysV管理的服务,centos6及之前都是这个管理工具,但是在centos7用的是systemd管理,所以systemd管理的服务在这里没有显示出来。

运行级别为系统启动级别,具体含义如下:

0 shutdown关机

1 单用户模式

2 无NFS支持的多用户模式

3 完全多用户模式,常用的命令行模式

4 保留给用户自定义

5 图形界面登录,比3多了一个图形界面

6 重启

1.3.2、Linux systemd命令

systemd是管理开机启动程序的工具(SysV启动开机进程时一次只能启动一个,而systemd则一次可以启动多个服务,这样就导致systemd的开机速度会更快。)

[root@localhost ~]# systemctl list-units --all --type=service

  UNIT                            LOAD      ACTIVE  SUB    DESCRIPTION

  abrt-ccpp.service              loaded    active  exited  Install ABRT coredump hook

  abrt-oops.service              loaded    active  running ABRT kernel log watcher

  UNIT                            LOAD      ACTIVE  SUB    DESCRIPTION

[root@cent01 sbin]# ls /usr/lib/systemd/system  //启动的脚本文件目录

[root@cent01 ~]# systemctl list-units  //列出正在运行的unit

[root@cent01 ~]# systemctl list-units --all //列出所有的unit,包括active和inactive

[root@cent01 ~]# systemctl list-units --all --state=inactive //列出inactive的unit

[root@cent01 ~]# systemctl list-units --all --type=service  //列出所有状态的service

[root@cent01 ~]# systemctl list-units --type=service  //列出active的service

[root@cent01 ~]# systemctl is-active crond.service  //查看某个unit是否active

systemctl enable crond.service //开机启动 .service可以省略

systemctl disable crond.service //禁止开机启动

systemctl status crond.service  //查看服务状态

systemctl start crond.service //启动服务

systemctl stop crond.service  //停止服务

systemctl restart crond.service  //重启服务

systemctl is-enabled crond.service  //查看某个服务是否开机启动

unit /usr/lib/systemd/system 此目录下列出了很多文件,这些文件都是unit。类别如下:

service 系统服务target 多个unit组成的组device 硬件设备mount 文件系统挂载点automount 自动挂载点path 文件或路径scope 不是由systemd启动的外部进程slice 进程组snapshot systemd快照socket 进程间通信的套接字swap swap文件timer 定时器

target target类似于centos6的启动级别,target内又包含多个unit的组合,当然target内也可以包含target。启动target就是启动多个unit,用target来管理这些unit。

[root@cent01 ~]# systemctl list-units --all --type=target  //查看当前所有的target

  UNIT                      LOAD      ACTIVE  SUB    DESCRIPTION

  basic.target              loaded    active  active Basic System

  bluetooth.target          loaded    active  active Bluetooth

[root@localhost ~]# systemctl list-dependencies multi-user.target

multi-user.target

● ├─abrt-ccpp.service

● ├─abrt-oops.service

● ├─abrt-vmcore.service

● ├─abrt-xorg.service

[root@localhost ~]# systemctl get-default  //查看系统默认的target

multi-user.target

systemctl set-default multi-user.target  //设置默认的target

multi-user.target等同于centos6的运行级别3。他们的对应关系如下:

SysV运行级别systemd target备注

0poweroff.target关闭系统

1rescure.target单用户模式

2multiuser.target用户自定义级别,通常识别为3

3multiuser.target多用户命令行模式

4multiuser.target用户自定义级别,通常识别为3

5graphical.target多用户图形界面,比级别3只多一个GUI

6reboot.target重启

所以总结起来,一个service属于一种unit,多个unit组成一个target,当然target里面也可以包含target。

1.4、ifconfig命令配置IP网络参数

格式:

[root@localhost /]#ifconfig [网络设备] [ip地址] [MAC地址] [netmask掩码地址] [broadcast广播地址(NDC)] [up/down]

[root@localhost /]#ifconfig eth0 192.168.74.130 netmask 255.255.255.0 up

用ifconfig命令配置eth0别名设备,为eth0绑定多个IP地址。

[root@localhost /]#ifconfig eth0:1 192.168.74.130

[root@localhost /]#ifconfig eth0:2 192.168.73.130

1.5、使用routedel命令添加路由

格式:

[root@localhost /]#routedel [-net|host] [网域或主机] netmask [mask] [gw]

[root@localhost /]#route #查看路由信息

功能:添加路由

-net : 表示后面接的路由为一个网络。

-host : 表示后面接的为连接到单部主机的路由。

netmask : 与网络有关,可以设定netmask决定网路的大小。

gw : gateway (网关)的简写,后面接的是ip地址。

1.6、使用hostname命令修改主机名称

[root@localhost /]#hostname service.jw.com

hostnamectl set-hostname nod1


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7459342.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存