1. Linux基础概述
-
操作系统 :操作系统是用户和硬件之间传递信息的软件,比如Windows操作系统,简称OS,操作系统由内核和外壳组成。
-
常见的操作系统:
个人操作系统: Windows, XP、win7、wins8, win10
服务器Windows系统:2000、2003、2008、2012、2016
服务器Linux系统: HP Unix,Dell Unix, IBM AIX,FreeBSD
服务器系统Unix: centos\RHEL\SUSE\ubuntu\ Fedora -
常见的版本
- RedHat红帽公司: RedHat linux 9.0之后开始收费,Redhat entreprise Linux 简称RHEL
- Centos:自由免费
- Debian,FreeBSD :安全要求比较高
- OpenSUSE :高级数据库应用、电子邮件用户
- Fedora: 继承了一些新功能
- 红旗Linux 中文版本
1.1基础命令
- 关于内核的命令
#查看内核版本#
[root@localhost ~]# uname -r
3.10.0-862.el7.x86_64
'3'--------代表版本号,内核结构发生改变的时候才会改变
'10'-------代表次版本号,在内核基础上加入某些功能,奇数是开发板,偶数是稳定版
'0'--------代表对此版本的修订次数或者补丁包的修订次数
'862'----- 代表编译次数
'e17'------代表企业版
#查看系统位数#
[root@localhost ~]# uname -m
x86_64
#查看内核所有信息#
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
#查看系统版本#
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
root -------------当前登录的用户
~ -------------表示用户加目录
host -------------表示主机名
- 关于开机关机的命令
#关机#
# poweroff
#关机#
# shutdown [option]
- r 调用reboot
- h 调用halt
- c 取消shutdown连接
#重启#
#reboot
#重启#
#init 6
#重启#
#shutdown -r now
#shutdown -r 0
#shutdown -r 20 20s后将重启
#注销#
#loginout
#清屏#
#clear
- 关于编辑网卡
#重启网卡#
#service network restart
#查看IP地址#
#ifconfig
#测试网络连接性#
#ping 192.168.1.9 -c 4 #只发四个包
- 查看系统时间
#查看日历#
#cal
#设置系统时间#
#date -s "20180101 12:00:00"
#查看硬件时间#
#hwclock --show
#修改硬件时间#
#hwclock --set --date = "06/01/2020 12:00:00 "
#显示时间#
#date
- 查看主机名
#查看主机名#
#hostname
#修改主机名#
#hostnamectl set-hostname CentosOS
- 关于防火墙
#查看防火墙的状态#
# systemctl status firewalld
#临时关闭防火墙#
# systemctl stop firewalld
#永久停止防火墙#
# systemctl disable firewalld
#临时打开防火墙#
# systemctl start firewalld
#启动防火墙#
# systemctl enable firewalld
对初学者的建议- 将selinux关闭或者宽容模式
#查看 selinux#
# getenforce
- enforcing 强制模式,代表selinux运作中,且已经正确的开始限制domain-type了
- permissive 宽容模式,代表selinux 运作中,不过仅会有警告讯息,并不会限制实际
- domain/type 的存取, 这种模式可以运来作为selinux 的debug
#临时关闭selinux#
# setenforce 0
#临时打开selinux#
# setenforce 1
#修改配置文件#
#编辑 /etc/ selinux /config 文件, 将selinux 的值设为disabled#
- 修改字符集
#查看字符集#
[root@localhost ~]# echo $LANG
zh_CN.UTF-8
#修改字符集#
vim /etc/local.conf
#LANG="zh_CN.UTF-8"
LANG="en_US.UTF-8"
#修改字符集#
/etc/locale.conf
- 查看用户
#查看当前用户#
#whoami
#查看当前用户#
# who
- 快捷键
Ctrl+l # 清屏
Ctrl+a # 回到句首
Ctrl+e # 回到句尾
Ctrl+U # 清空整行
Ctrl+C # 结束当前进程,关闭ping
- 切换用户
su 用户名
- 创建目录
#创建/下的data的目录-----绝对路径#
mkdir /data
#回到家目录#
# cd ~
#在当前目录下创建data目录#
#mkdir data
#安装tree 命令#
#yum install tree -y
- ls 用法
#ls -l # 以长格式显示信息
#ls -a # 显示所有文件
#ls -h # 以kb mb gb 等形式显示文件信息
#ls -lrt # 以倒叙和时间 的方式显示文件信息
#ls -d # 只查看目录信息
- 文件相关操作
#如果没有就创建文件;如果有就更新文件的时间戳
touch test.txt
#说明:一个>表示替换;两个是追加
echo "I am aaa" > test.txt
#使用vim编辑器
vim test.txt
#查看文件内容
cat test.txt
#分页显示,more只能向下翻;less可以上下翻
more|less 文件名
#查看文件的前10行或者是最后10行
head |tail [-n] 文件名
- 复制命令cp cp 参数 源文件 目标路径
& cp /etc/passwd . #复制/etc/passwd文件到当前路径,保持源文件名
& cp /etc/passwd 3.txt #复制/etc/passwd文件到当前路径,并且重命名为3.txt
& cp aaa/* bbb/ #复制aaa/下的文件到bbb下(不拷贝目录)
& cp -r aaa bbb/ #复制aaa整个目录和子文件到bbb下
- 移动和重命名 mv 源目标 目标路径
& mv 1.txt aaa/ #把1.txt移到aaa目录下
& mv passwd aaa/mima.txt #把passwd移到aaa下,并且重命名为mima.txt
- 删除 (哈哈哈哈哈哈 删库跑路)rm -rf /*
rm -r aaa #删除目录用-r
rm 文件名 #删除普通文件
- 别名 alias
alias ip = 'ifconfig eth0' # 给ifconfig eth0 起个名 叫ip
- 查看目录大小
du -sh /root
- 软链接和硬链接
链接说的是一种文件共享方式,是POSIX 的概念。主流文件系统都支持链接文件。
软连接(符号链接)通常也会将一些目录层次较深的文件到一个更易访问的目录中
硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块
软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径。
ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 eth0
ls -l eth0 #查看eth0的链接;l开头表示软连接
lrwxrwxrwx 1 root root 41 11月 23 15:35 eth0 -> /etc/sysconfig/network-scripts/ifcfg-eth0
1.2.目录介绍
/bin-----------普通用户可执行的二进制命令。
/sbin----------管理员可执行的二进制命令。
/boot----------存放系统引导文件目录,挂载点。
/dev-----------设备文件,外置设备可以是光驱、硬盘、U盘等。
/etc-----------常用配置文件路径。
/mnt-----------临时外置设备挂载点。
/proc----------虚拟文件系统目录,系统的内存、CPU等信息的使用情况映射。
/tmp-----------软件运行的临时文件
/usr-----------系统应用程序默认的安装路径。
/opt-----------第三方应用程序的安装路径。
/var-----------一些经常变化的文件,比如日志。
/var/log/messages:系统日志文件
/var/log/secure:用户登录信息
/home --------普通用户的家目录
/root-----------root用户的家目录
1.3.引导启动过程
开机自检(BIOS)---------MBR引导--------------GRUB 菜单-----------------加载内核-------------systemd进程初始化
#查看进程#
ps -ef
1.2. centos 启动进程
- centos 7 以前启动init 进程
- 由Linux内核加载运行 /sbin/init 程序
- init 是系统里第一个进程
- PID标记永远是1 - centos 7 以后启动systemd 进程
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 09:51 ? 00:00:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
1.3. systemed 单元类型
单元类型 | 扩展名 | 说明 |
---|---|---|
service | .service | 描述一个系统服务 |
socket | .socket | 描述一个进程通信的套接字 |
device | .device | 描述一个内核识别的设备文件 |
mount | .mount | 描述一个系统文件的挂载点 |
automount | . automount | 描述一个文件系统的自动挂载点 |
swap | .swap | 描述一个内存交换设别或者交换文件 |
path | .path | 描述一个文件系统中文件或者目录 |
timer | .timer | 描述一个定时器 |
snapshot | .snapshot | 用于保存一个systemd的状态 |
scope | .scope | 使用systemd 中的总线接口以编程的方式创建外部进程 |
slice | .slice | 描述居于cgroup的一组通过层次组织的管理系统进程\ |
target | .target | 描述一组systemd的单元 |