Linux之父-林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds),真是计算机界的传奇人物。创造了Linux这个伟大的操作系统,如今生活中各种智能终端设备手机、电脑、服务器、路由器、交换机、机顶盒等各种家电都离不开Linux。今天开始就走进Linux的世界吧!(大佛是一个motd文件,放置在/etc/下。可以通过cat /etc/motd 查看)
#重启Linux系统
reboot
#退出ssh连接终端exit和logout都行
exit
#logout注销当前的身份所以等同于exit
logout
[root@centos8 ~]# hostname
centos8.leilei
[root@centos8 ~]# hostname -I
10.0.0.201 192.168.122.1
[root@centos8 ~]#
上手了一台linux服务器,登录之后首先得了解它的配置信息,linux版本(内核版本、发行版),cpu、各种硬件信息、内存、分区等。
#查看Linux内核版本
cat /proc/version
#内核版本; 查看内核版本; 发行版本号;
[root@centos8 ~]# uname -r
4.18.0-305.3.1.el8.x86_64
[root@centos7~]#uname -r
3.10.0-1160.el7.x86_64
[root@centos6 ~]# uname -r
2.6.32-754.el6.x86_64
lei@ubuntu1804:~$ uname -r
4.15.0-175-generic
redhat发行版
#查看Linux的发行版(红帽,一般也适用于centos)
#Linux的etc目录就相当于windows的注册表
cat /etc/redhat-release
#redhat、centos也支持os-release,虽然支持但也得看版本想centos6就不支持,7和8版本就支持
lei@ubuntu1804:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.6 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.6 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
lei@ubuntu1804:~$
lscpu
#cat /proc/cpuinfo将每个核的cpu信息到单独的罗列出来了
cat /proc/cpuinfo
[root@centos8 ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4 (总共四个核)
On-line CPU(s) list: 0-3 (CPU的编号是0到3)
Thread(s) per core: 1
Core(s) per socket: 2 (每个cpu有两个核)
Socket(s): 2 (两个物理CPU)
NUMA node(s): 1
Vendor ID: GenuineIntel
BIOS Vendor ID: GenuineIntel
CPU family: 6
Model: 58
Model name: Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz(CPU型号)
BIOS Model name: Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz
Stepping: 9
CPU MHz: 2394.560
BogoMIPS: 4789.12
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K (一级数据缓存)
L1i cache: 32K (一级指令缓存)
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c hypervisor lahf_lm cpuid_fault pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust smep arat md_clear flush_l1d arch_capabilities
free
#除了free,还可以通过cat /proc/meminfo查看
[root@centos8 ~]# free
total used free shared buff/cache available
Mem: 1833388 713996 308060 10796 811332 952728
Swap: 4194300 0 4194300
[root@centos8 ~]# free -h
total used free shared buff/cache available
Mem: 1.7Gi 697Mi 300Mi 10Mi 792Mi 930Mi
Swap: 4.0Gi 0B 4.0Gi
[root@centos8 ~]#
cat /proc/meminfo
除了free,还可以通过cat /proc/meminfo查看
[root@centos8 ~]# cat /proc/meminfo
MemTotal: 1833388 kB
MemFree: 305884 kB
MemAvailable: 950568 kB
Buffers: 3272 kB
Cached: 757836 kB
SwapCached: 0 kB
Active: 385912 kB
Inactive: 722672 kB
Active(anon): 2368 kB
Inactive(anon): 355904 kB
Active(file): 383544 kB
Inactive(file): 366768 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 4194300 kB
SwapFree: 4194300 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 345440 kB
........
proc到底是个什么文件,proc对应的实际上是内存中的数据,proc显示的就是你当前系统的状态,proc中的内容都是以内存的方式保存的。所以说proc下的文件都不是磁盘上的文件都是内存里的文件
#Linux的ps aux命令相当于windows的任务管理器
#可以查看用户、进程ID、CPU使用率、内存占有率、进程状态等
ps aux
[root@centos8 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 50G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 4G 0 part [SWAP]
sr0 11:0 1 9.3G 0 rom
[root@centos8 ~]# cat /proc/partitions
major minor #blocks name
8 0 209715200 sda
8 1 1048576 sda1
8 2 104857600 sda2
8 3 52428800 sda3
8 4 1 sda4
8 5 4194304 sda5
11 0 9696256 sr0
既修改内存又修改磁盘文件的命令“hostnamectl”
#此命令较新支持centos7和以上的版本,支持ubuntu等
#主机名不支持下划线符号
hostnamectl set-hostname 主机名称
默认情况下普通用户的标识是“$”,管理员标识是“#”
whoami查看当前用户是谁
通过修改提示符的颜色,可以让提示符显示得更加明亮(花里胡哨的五颜六色)。这样做可以通过颜色来快速区分当前连接的哪个主机(这也就是执勤交警、铁路维修工人为什么都要穿上鲜艳的工作服,就是为了防止发生事故。鲜艳的颜色能最快的引起人们的注意)。实际工作中,你可能连接了十几台主机,也可能同时连接测试环境和生产环境的主机,通过设置不同的显示符的颜色可以快速做区分,防止误操作。
#不写到文件里的这种设置只是暂时写到了内存中,当重启后设置就会消失。
PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"
#提示符的设置写入到/etc/profile.d/env.sh文件里(将配置写入到磁盘文件中)
#env.sh是自定义的文件,只是是.sh的后缀就行。
echo 'PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\]\W\[\e[1;32m\]]\[\e[0m\]\\$"' > /etc/profile.d/env.sh
linux命令就是一些英语字母或是英语单词的缩写,为什么输入这些命令就能帮我们去操作linux呢?
当输入linux命令回车后,命令字符串会提交给Linux后台的shell,默认情况下centos、ubuntn都使用的bashShell。当命令提交给shell后,shell就会解析这个命令,首先shell会判断这个命令是内部命令(由shell内置的命令)还是外部指令(在文件系统路径下有对应的可执行程序文件)。shell本身也是一个程序,它对应的目录是/bin/bash,当用户登录时,shell就已经加载在了内存中了。所以此时没有集成在shell内部的命令就称之为外部命名了。
怎么辨别命名是内部命名还是外部命名?通过type来辨别
外部命名会显示命令存放的路径
type command
外部命令是存放在磁盘上的某个路径下的文件里的,当shell判断不是它的内部命令时,怎么去找存放外部命令的路径呢?
外部路径的存放是有规范的,可以通过echo $PATH查看shell搜索外部命令的次序。
当某个外部命令第一次被执行后,linux会将这个外部命令的路径记录到内存里方便下次快速问(这个记录的动作称之为hashed)
通过hash命令可以查看曾经执行过的外部命令的路径,hits是执行的次数
命令别名
工作中有的命令很长,比如要切换到一个路径很长的文件夹下(cd /etc/sysconfig/network-scripts),而这个命令又会频繁的使用。为了提高使用效率,可以将这个很长的命令自定义一个有意义的不能跟系统命令相同的短命令。如果冲突会覆盖别名会覆盖掉内部命令,由此可见,命令的优先级是:别名命令>内部命令>外部命令>其他命令
[root@centos8 ~]# cd /etc/sysconfig/network-scripts
[root@centos8 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@centos8 network-scripts]# type cdnetwork
-bash: type: cdnetwork: not found
[root@centos8 network-scripts]# alias cdnetwork="cd /etc/sysconfig/network-scripts"
[root@centos8 network-scripts]# type cdnetwork
cdnetwork is aliased to `cd /etc/sysconfig/network-scripts'
[root@centos8 network-scripts]# cd ~
[root@centos8 ~]# cdnetwork
[root@centos8 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@centos8 network-scripts]#
自定义别名时,可以通过type命令查看是否与系统命令冲突
#查看系统目录有哪些别名包括自己新建的
alias
#取消别名
unalias 要取消的别名名称
Linux家目录"~"就相当于windows系统的桌面,每一个用户都有自己的桌面。linux每个用户都有自己的家目录,root用户的家目录是/root,其他用户的家目录是./home
命令格式
#COMMAND [OPTIONS...] [ARGUMENTS...]
#查看(.bashrc)文件的属性,包括用户组权限,大小等。
#(-l)是选项,(.bashrc)是参数
[root@centos8 ~]# ls -l .bashrc
-rw-r--r--. 1 root root 176 May 11 2019 .bashrc
[root@centos8 ~]# ls .bashrc
.bashrc
Ctrl+c ,Ctrl+d
Ctrl+c中断命令的执行,属于强行退出,可能会丢失数据
Ctrl+d正常退出,就不会丢失数据
在没有任何命令执行的情况下按Ctrl+c没有作用,而按Ctrl+d则会执行logout的命令
#关闭SeLinux
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
#关闭防火墙
systemctl disable --now firewalld