第一周 Linux基础入门(Mgedu)

一、计算机的组成及功能

计算机系统由硬件系统、软件系统两部分组成。

1.1 硬件系统(Hardware)

硬件系统是由主机、外部设备组成
主机包含: CPU、内存等
外部设备: 键盘、鼠标、显示器、移动硬盘等

硬件系统体系由 冯· 诺依曼 提出:运算器、控制器、存储器、输入设备、输出设备、五个部分组成

服务器硬件组成:主板、电源、风扇、内存、CPU、网卡、显卡、硬盘等

1.2 软件系统(Software)

软件系统包含 系统软件、应用软件
系统软件:操作系统、程序语言、数据库等等
应用软件:各个专有软件,比如OFFICE、QQ等


二、Linux各发行版及其区别

2.1 Linux起源

Torvalds在1991年发布
官网:www.kernel.org

2.2 Linux发行时间轴

http://futurist.se/gldt/wp-content/uploads/12.10/gldt1210.png

Linux发行时间轴

2.3 Linux目前主流发行版本

  • Slackware: SUSE Linux Enterprise Server (SLES)

  • Debian: ubuntu ,mint

  • RedHat: RHEL: RedHat Enterprise Linux
    CentOS
    CentOS与RedHat基本一致,比RedHat发行时间延后一些

  • ArchLinux :轻量简洁

  • Gentoo :极致性能, 不提供传统意义的安装程序

  • Android: kernel+busybox (工具集)+java 虚拟机

2.4 Linux内核版本

内核版本号由3部分组成(主、次、末版本号)
3.10.0-123.el7
3 是主版本号
10是次版本号(偶数是稳定版本、奇数是开发版本)
0 是末版本号
123 是编译版本号
el7 是厂商版本号


三、Linux的哲学思想

3.1 一切皆文件

在Linux系统中,包括硬件都可以以文件的形式表现出来,包括硬盘:/dev/sdb1

3.2 小型、单一用途的程序

由众多小的程序构成,简洁、灵活、高效

3.3 避免令人困惑的用户界面

在Linux中,图形、交互界面很少,一个是可以避免系统资源占用、一个是用命令行,效率会更高一些

3.4 配置数据存储在文本中

以文件的形式存放配置数据,可以更简单易读、便于编辑。
比如Nginx在/etc/nginx/conf 的配置文件


四、Linux系统命令使用

4.1 命令使用格式

#COMMAND [OPTIONS...] [ARGUMENTS...]

COMMAND:一个可执行的二进制程序文件。
OPTIONS:用于启用或关闭命令的某个或某些功能,通常由两种表现形式:短选项-c,长选项--help。如果同一命令在运行时使用多个短选项,可将多个短选项合并,如:-l -d -> -ld。
ARGUMENTS:命令的作用对象;不同的命令的作用对象不同,可以是文件,目录,硬件设备,用户名等。

注意事项:

  • 多个选项以及多参数和命令之间使用空白字符分隔
  • 取消和结束命令执行:Ctrl+cCtrl+d
  • 多个命令可以用;符号分开
  • 一个命令可以用\分成多行

4.2 介绍如下命令

ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date

4.2.1 ifconfig 命令

ficonfig : 查看当前主机网卡配置详情
使用格式:ifconfig [interface] [options] | address
选项:

  • -a:显示全部接口信息
  • -s: 显示摘要信息(类似于 netstat -i)
  • up 启动指定网络设备/网卡
  • add: 给指定网卡配置IPv6地址
  • del :删除指定网卡的IPv6地址
  • down: 关闭指定网络设备/网卡
  • address: 为网卡设置IPv4地址
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# ifconfig -a
eth0: flags=4163  mtu 1500
        inet 172.17.166.75  netmask 255.255.240.0  broadcast 172.17.175.255
        ether 00:16:3e:2e:ea:37  txqueuelen 1000  (Ethernet)
        RX packets 1953760  bytes 550322809 (524.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1503422  bytes 184479332 (175.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0 表示第一块网卡,UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节
inet 表示网卡ip、 netmask表示子网掩码 、 broadcast 表示广播地址
ether 表示以太网络(Ethernet)的mac地址是 00:16:3e:2e:ea:37
RX 接收数据包、数据字节
TX 发送数据包、数据字节
lo 是表示主机的回环地址

ifconfig eth0 up  # 启动eth0网卡

ifconfig eth0 down # 关闭eth0 网卡

ifconfig eth0 add fe80::1d2e:9f81:2ece:87c7::2/64 # 为网卡eth0配置IPv6地址;

ifconfig eth0 del fe80::1d2e:9f81:2ece:87c7::2/64 # 为网卡eth0删除IPv6地址;

ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255 # 配置IP地址

使用 ifconfig 命令配置的网卡只能临时使用,如果需要永久使用,需要到配置文件里面更改,再次验证了Linux一切皆文件的理念。

 vim /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet #网卡类型
DEVICE=eth0 #网卡接口名称
ONBOOT=yes #系统启动时是否自动加载
BOOTPROTO=dhcp #启用地址协议 --static:静态协议 --bootp协议 --dhcp协议
IPADDR=192.168.1.11 #网卡IP地址
NETMASK=255.255.255.0 #网卡网络地址
GATEWAY=192.168.1.1 #网卡网关地址
DNS1=10.203.104.41 #网卡DNS地址
HWADDR=00:0C:29:13:5D:74 #网卡设备MAC地址
BROADCAST=192.168.1.255 #网卡广播地址 

4.2.2 echo 命令

用于在shell中打印shell变量的值,或者直接输出指定的字符串。
命令格式:echo [options] [string]
选项:

  • -n : 关闭自动换行功能。
  • -e : 激活转义字符。
    \t : 制表符。
    \b : 退格键(即删除键)
    \n : 回车
    \033[xxm文字\033[0m : 控制颜色 xx 为数字
    \033[0m : 关闭字体功能
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# echo -e "https://www.jianshu.com/u/57f079a3f56b\tallen"
https://www.jianshu.com/u/57f079a3f56b  allen
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# echo "hello world!"
hello world!
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# echo -n "hello world!"
hello world![root@iZ2zecjyzb15bzhr9xrg5oZ ~]# echo `ifconfig`
eth0: flags=4163 mtu 1500 inet 172.17.166.75 netmask 255.255.240.0 broadcast 172.17.175.255 ether 00:16:3e:2e:ea:37 txqueuelen 1000 (Ethernet) RX packets 1955785 bytes 550486581 (524.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1505060 bytes 184877561 (176.3 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 loop txqueuelen 1 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# echo "`ifconfig`"
eth0: flags=4163  mtu 1500
        inet 172.17.166.75  netmask 255.255.240.0  broadcast 172.17.175.255
        ether 00:16:3e:2e:ea:37  txqueuelen 1000  (Ethernet)
        RX packets 1955793  bytes 550487095 (524.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1505067  bytes 184878787 (176.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
颜色效果

4.2.3 tty

打印连接到标准输入的终端的文件名
命令格式:tty [OPTION]...
选项:
-s, --silent, --quiet :不打印任何内容,只返回退出状态,可以根据命令执行状态来判断标准输入是否为终端。如果标准输入是终端,则退出状态为0,否则返回1。
--version:显示版本
/dev/tty# #为[1-6]
tty 可有n 个,Ctrl+Alt+F[1-6]

[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# tty -s
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# tty
/dev/pts/0

4.2.4 startx

图形终端 /dev/tty7
命令格式:
startx [ -d Display:0 ] [ -t | -w ] [ -x Startup | [ -r Resources ] [ -m Window_Manager ] ] [ -wait ]
作用:用于初始化一个X windows 会话。实际上startx 是调用xinit程序来启动X window的。


4.2.5 export

命令格式:export [options] [arguments]=[value]
作用:将shell变量输出为环境变量,或者将shell函数输出为环境变量。
选项:
-f:代表指定输出的arguments为函数名称。
-n:删除指定的变量。变量实际并未删除,只是不会输出到后续指令的执行环境中。
-p:列出所有的shell赋予程序的环境变量。


4.2.6 pwd

命令格式:pwd [options]
作用:以绝对路径的方式显示用户当前的工作目录。

[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# pwd
/root

4.2.7 history

命令格式:history [options] [arguments]
作用:显示历史命令记录
存放在家目录 .bash_history 文件中

选项:
-c:清空当前历史命令。
-a:将当前内存中的新增的历史命令记录追加至历史命令文件。
-r`:将历史命令文件中的命令读取至内存中。-w:将当前内存中历史命令记录写入并覆盖至历史命令文件或者是新的文件中。-d ID:删除当前历史命令记录中的指定的命令条目。n``:打印最近n条历史命令。

[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# history
    1  history
    2  yum update
    3  yum install git

[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# history | grep git
    3  yum install git
   44  git init --bare hexo.git
   45  vim /usr/local/hexoRepo/hexo.git/hooks/post-receive
   46  chmod +x /usr/local/hexoRepo/hexo.git/hooks/post-receive


4.2.8 shutdown

命令格式:shutdown [OPTIONS...] [TIME] [WALL...]
作用:关闭机器
选项:
-H, --halt: 停止机器
-P, --poweroff :关闭机器(默认)。
-r, --reboot :重新启动机器。
-h :系统关机后,关闭电源。
-c:取消正在执行的关机程序。

[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# shutdown -h +10
Shutdown scheduled for Fri 2019-01-25 20:20:31 CST, use 'shutdown -c' to cancel.
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]#
Broadcast message from root@iZ2zecjyzb15bzhr9xrg5oZ (Fri 2019-01-25 20:10:31 CST):

The system is going down for power-off at Fri 2019-01-25 20:20:31 CST!

shutdown -c

Broadcast message from root@iZ2zecjyzb15bzhr9xrg5oZ (Fri 2019-01-25 20:10:48 CST):

The system shutdown has been cancelled at Fri 2019-01-25 20:11:48 CST!

4.2.9 poweroff、reboot、halt

命令格式:
halt [OPTIONS...]
poweroff [OPTIONS...]
reboot [OPTIONS...]
作用:关闭或者重启机器
选项:
-f: 强制,不调用shutdown
-p: 切断电源
--reboot 重启机器


4.2.10 hwclock/date 时间命令

命令格式:
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

hwclock [function] [option...]

date :显示、设置系统时间

  • date +%s
  • date -d @1509536033
  • -s 设置时间
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# date
Fri Jan 25 19:22:08 CST 2019
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# date -d @1548415323
Fri Jan 25 19:22:03 CST 2019
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# date +%s
1548415359
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]#  date -s "20190125 19:26:25"
Fri Jan 25 19:26:25 CST 2019

hwclockclock:显示硬件时钟

  • -r --show 读取并打印硬件时钟
  • -s --hctosys 以硬件时钟为准,校正系统时钟
  • -w --systohc 以系统时钟为准,校正硬件时钟
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# hwclock
Fri 25 Jan 2019 07:34:37 PM CST  -0.097345 seconds
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# hwclock -r
Fri 25 Jan 2019 07:34:40 PM CST  -0.423414 seconds
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# hwclock --show
Fri 25 Jan 2019 07:35:09 PM CST  -0.022756 seconds
[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# hwclock -w

五、如何在Linux获取命令的帮助信息

5.1 利用man命令来获取帮助

[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# man poweroff

5.2 利用command --help来获取帮助

[root@iZ2zecjyzb15bzhr9xrg5oZ ~]# ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
……

5.3 man文档的章节

1: 用户命令
2: 系统调用
3: C 库调用
4: 设备文件及特殊文件
5: 配置文件格式
6: 游戏
7: 杂项
8: 管理类的命令
9 :Linux 内核API
注manual 手册是分章节的;man # Command (#表示章节号)


六、Linux系统目录名称命名发展及功用规定

/:根目录,一般根目录下只存放目录,不要存放件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中

/boot 存放linux系统启动时用到的一些文件
/etc/ 存放各个应用的配置文件
/bin 执行脚本
/dev/ 硬盘
/lib
/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,表示当前用户的家目录,allen 表示用户 allen 的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
/mnt挂载目录...

你可能感兴趣的:(第一周 Linux基础入门(Mgedu))