Linux篇章(一)
Linux基本概述
Linux操作系统(开源<--->开放源代码),托瓦兹写的是内核,芬兰人,写内核的时候24岁,第一个Linux内核是在1991年发布。
Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。
托瓦兹最后将其内核源代码交给至GNU组织(logo公羊), Linux操作系统部署
主机名修改
# centos6.0中临时性修改主机名
hostname 主机名
hostnamectl 查看主机名
# centos6.0中永久性修改主机名(需要reboot,才能生效)
vi /etc/sysconfig/network
HOSTNAME=主机名
:wq
# centos7.0中修改主机名,不区分临时和永久
hostnamectl set-hostname 主机名
logout 注销一下重新登陆查看
基本命令
Linux一切从/开始,/就相当于windows7的计算机;
cd, mkdir, ls, mv
创建目录:mkdir 目录名
批量创建目录:mkdir -p 路径
查看当前路径下的内容: ls
切换路径:cd(只能cd目录) 路径
如何查看当前所在路径:pwd
如何修改目录文件名,且进行移动目录文件位置:mv
示例:
mkdir -p /11/22/33/44/55/66/77/88/99/00
1、我想去/11/22/33/44/55
cd /11/22/33/44/55 这叫做绝对路径,绝对路径一切从/开始
2、现在在55,我想去99下边
用绝对路径: cd /11/22/33/44/55/66/77/88/99/
用相对路径: cd 66/77/88/99/ 这个叫做相对路径,相对路径是从当前位置开始
用相对路径: cd ./66/77/88/99/ ./ 指的是当前路径; ../ 指的是上一级目录
cd - 返回上一次所在路径
3、将00目录名修改为10
mv /11/22/33/44/55/66/77/88/99/00 /11/22/33/44/55/66/77/88/99/10
4、将10目录移动至11下一层目录位置
mv /11/22/33/44/55/66/77/88/99/10 /11/
Linux常用文件
# 网卡文件路径
/etc/sysconfig/network-scripts/ifcfg-eth0
# 安全系统文件
/etc/sysconfig/selinux
# shell解释器文件路径
/etc/shells
# CPU信息文件路径
/proc/cpuinfo
# 内存的文件路径
/proc/meminfo
# 系统镜像的文件路径
/dev/cdrom
# 存放的是用户 (用户文件)
/etc/passwd
# 存放的是用户的密码 (用户的密码文件)
/etc/shadow
# 存放的是组 (组文件)
/etc/group
# 存放的是组的密码 (组的密码文件)
/etc/gshadow
# 普通用户执行程序文件 {系统普通用户的命令文件}
/usr/bin
# root用户执行程序文件和管理程序文件 {系统root用户的命令文件}
/usr/sbin
# 应用程序配置文件 {软件包的配置文件:1、rpm包 2、yum包}
/etc
# 日志文件 {分为两个日志:(1)软件日志 (2)系统日志}
/var/log
# 块设备文件 {U盘、硬盘、光盘等储存数据的硬件都属于块设备}
/dev
# linux分区开机自动挂载的文件
/etc/fstab
# 全局环境变量配置文件;对所有用户都生效
/etc/profile
# linux主机名与 IP 地址的映射记录的配置文件
/etc/hosts
# linux临时存放DNS IP地址的配置文件
/etc/resolv.conf
# 系统日志
/var/log/messages
# 计划任务日志
/var/log/cron
# 在系统启动时,会在屏幕上显示许多与硬件有关的信息。可以用dmesg查看它们。
/var/log/dmesg
# 邮件服务器的日志
/var/log/maillog
# 记录所有用户的最近登陆信息,需要用lastlog查看
/var/log/lastlog
# 包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里。
/var/log/secure
# 包含登录信息。可以找出谁正在登陆进入系统,谁使用命令显示这个文件或信息等。last
/var/log/wtmp或/var/log/utmp
# 记录登入系统失败的用户lastb
/var/log/btmp
# linux的回收站、也可以叫黑洞
/dev/null
Liunx服务控制
systemctl 控制类型 服务名
控制类型:start启动 stop停止 restart重启 reload重新加载 status状态
# 查看启动脚本列表
systemctl list-unit-files
基本网络命令
ip, ipconfig, ping
# 查看的是所有网卡的IP地址
ip a
# 查看的是所有网卡的IP地址,可在后面加上网卡名称单独检查
ifconfig
# 给linux系统网卡的子接口配置ip地址
ifconfig eth0:0 192.168.100.104/24
基本网络配置
Linux 最最基本的配置!!!
# 给服务器配置IP地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 启动协议,也就是你的ip地址是基于 静态static的 还是动态dhcp的
BOOTPROTO=static
# 网卡的MAC地址,这个MAC地址是通过ifconfig这个命令查看的
HWADDR=00:0c:29:1a:08:b8
# 网卡的名称,这个网卡名称是通过ifconfig这个命令查看的
NAME=eth0
# 网卡的名称,这个网卡名称是通过ifconfig这个命令查看的
DEVICE=eth0
# 是否启用当前这块网卡
ONBOOT=yes
# ip地址
IPADDR=192.168.1.1
# 子网掩码
PREFIX=24或NETMASK=255.255.255.0
# 网关
GATEWAY=192.168.100.100
# DNS
DNS1=192.168.100.100
:wq
# 重启网络服务(network),让修改的配置文件生效
systemctl restart network
# linux主机名与 IP 地址的映射记录的配置文件
vi /etc/hosts
192.168.100.102 www.baidu.com
:wq
# linux临时存放DNS IP地址的配置文件
vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114
:wq
Ps. 重启network服务,网卡配置文件的DNS会覆盖/etc/resolv.conf配置文件中的DNS
NetworkManager网络服务
在CentOS系统上,目前有NetworkManager和network两种网络管理工具。如果两种都配置会引起冲突,而且NetworkManager在网络断开的时候,会清理路由,如果一些自定义的路由,没有加入到NetworkManager的配置文件中,路由就被清理掉,网络连接后需要自定义添加上去。
解决冲突:
目前在CentOS上的NetworkManager版本比较低,而且比较适合有桌面环境的系统,所以服务器上保留network服务即可,将NetworkManager关闭,并且禁止开机启动。
# systemd管理上:
systemctl status NetworkManager #查看状态
systemctl stop NetworkManager #关闭NetworkManager
systemctl disable NetworkManager #永久关闭
systemctl is-enabled NetworkManager #查看是否禁用
// 可以看到关联的几个服务一起被禁用了。如果使用桌面的话,会发现网络管理的图标不见了。
# sysv+upstart管理上:
service NetworkManager stop
chkconfig NetworkManger off
sshd服务优化
vi /etc/ssh/sshd_config
#UseDNS no
将这行的注释号(#)删掉
GSSAPIAuthentication yes
将这行的yes改成no
wq!
systemctl restart sshd
停止或启用网卡
ifdown, idup 命令
ifdown 网卡名
ifup 网卡名
Linux路由表
route 命令
# 查看路由表
route -n
# linux添加到静态路由
route add -net 192.168.200.0/24 gw 192.168.100.100
# linux删除静态路由
route del -net 192.168.200.0/24
# linux向路由表中添加默认路由
route add default gw 192.168.100.200
# linux删除路由表中的默认路由
route del default gw 192.168.100.200
网络的连通性
ping 命令
# 无限ping
ping 目标IP地址
# linux默认无限ping, 想ping10次退出
ping -c 10 目标IP地址
域名解析
nslookup 命令
nslookup www.baidu.com
查看linux主机监听端口
netstat 命令
# 日常使用
netstat -anptu
a 查看所有
n 以数字显示
p 显示进程号
t tcp协议
u udp协议
# 上边输出命令的解释:
Proto 指的是当前服务用的是tcp协议还是udp协议
Recv-Q 当前这个服务接受数据的大小
Send-Q 当前这个服务发送数据的大小
Local Address 本地服务器监听的Ip地址以及端口号 格式: IP:端口号
Foreign Address 客户端的IP地址和端口号,格式:IP:端口号
State tcp协议的状态,LISTEN:监听 ,ESTABLISHED:已连接的状态
PID 这个服务的进程号
Program name 服务名
vi 命令使用
vi 命令的主要作用就是编辑文件的,分为两种模式:命令和末行;格式:
vi $filename
# 命令模式:
dd 删除当前光标所在行
3dd 删除当前光标以下3行
u 返回上一步,也叫做撤销
yy 复制当前光标所在行
3yy 复制当前光标以下三行
p 粘贴复制的行
^ 快速回到行首
$ 快速回到行尾
G 快速回到最后一行
gg 快速回到第一行
dG 删除当前光标以下所有内容
zz 保存并退出
# 末行模式:
set nu 显示行号
set nonu 取消行号
1,5d 删除1到5行
3 快速跳到3行
w 保存
q 退出
wq 保存并退出
wq! 强制保存并退出
%s/shutdown/lemon/g 将文档中所有的shutdown替换成lemon
1,10s/lemon/armin/g 将文档中的1到10行的lemon替换成armin
1s/armin/root/ 将第一行的第一个armin替换成root
%s/armin/root/ 将每一行的第一个armin替换成root
%g/^#/d 删除以#开头的所有行
%g/^$/d 删除文档中所有空行
Linux基本使用
# 如何让服务随着系统的启动而启动?
systemctl enable 服务名
# 如何不让服务随着系统的启动而启动?
systemctl disable 服务名
# 如何查看服务是否随着系统的启动而启动?
systemctl is-enabled 服务名
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 临时性关闭selinux
setenforce 0
# 临时性打开selinux
setenforce 1
# 查看selinux状态
getenforce
# 永久性关闭selinux (这种修改需要重启系统才会生效)
vi /etc/sysconfig/selinux
SELINUX=disabled
:wq!
# linux里边常用的退出命令
exit quit q ctrl+c ctrl+z
# shell解释器是用户与内核之间的翻译官,那么系统当中有哪些shell解释器呢?
cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
# 家目录下比较重要的文件
.bash_logout 这个文件中的内容,用户每次退出的时候运行
.bash_profile 这个文件中的内容,用户每次登录的时候运行
.bashrc 这个文件中的内容,用户切换shell环境的时候运行
# linux命令的快捷键
ctrl+a 快速回到命令的行首
ctrl+e 快速回到命令的行尾
ctrl+u 清除当前光标到行首
ctrl+k 清除当前光标到行尾
ctrl+l 或者clear 清屏
ctrl+c 强制中断
# 如何创建隐藏的目录及文件?
mkdir .目录名 例如:mkdir .lemon
touch .文件名 例如:touch .lemon
# 如何查看隐藏的目录及文件呢?(查看所有的内容,包括隐藏的)
ls -a
# 如何创建文件?
touch 文件名 例如:touch lemon.txt
# 创建100个文件
touch lemon{1..100}.txt
# 如何删除文件或者目录
rm -rf 目录或者文件名
# 如何查看文件的属性
ls -l [文件名]
# 如何查看目录的属性
ls -ld [目录名]
# 如何把lemon目录复制到/opt路径下?
cp -r lemon /opt
# 如何把文件lemon.txt复制到/opt路径下?
cp lemon.txt /opt
# 如何剪切lemon目录和lemon.txt文件移到/opt路径下?
mv lemon lemon.txt /opt
# 如何远程拷贝文件到另一个主机root用户上的/opt路径下?
scp /root/lemon.txt root@192.168.1.2:/opt
# 如何远程拷贝整个目录到另一个主机root用户上的/opt路径下?
scp -r lemon root@192.168.1.2:/opt
# 查看linux系统的cpu?
cat /proc/cpuinfo
# 查看linux系统的内存?
cat /proc/meminfo
free -g 或者 free -m 或者 free -k #加上{h}就会以人性化的方式呈现
输出解释:
total 总共多大
used 用了多少
free 还剩多少
# linux查看磁盘的容量?
df -Th
# 一块硬盘,分区格式化后,想要存取数据,还需要挂载到系统的某一个目录下,这个目录简称挂载点
- centos7.0的系统,硬盘默认的文件系统类型是xfs
- centos6.0的系统,硬盘默认的文件系统类型是ext4
- centos5.0的系统,硬盘默认的文件系统类型是ext3
# linux系统当中如何统计目录的大小?
du -sh 目录名
# 查看文件内容有哪些命令?
cat 文件名 加上-n就是查看文件内容的同时,显示行号
more 文件名 分页查看文件内容 只能向下翻页不能像下翻页
less 文件名 分页查看文件内容 既能向下翻页也能向下翻页
head 文件名 默认查看文件的前10行
tail 文件名 默认查看文件的后10行
# 输出命令
echo 输出的意思,默认输出到屏幕
> 重定向覆盖
>> 重定向追加
# 例如:想要把123123写到文件1.txt
echo "123123">1.txt
# 统计文件的行数?
wc -l 文件名
# 查看系统的日期?
date +%F 查看系统的日期
date +%T 查看系统的时间
date +%w 查看周几
# 修改系统的时间?
date -s "2019-03-01 17:10:45"
如何关机重启
关机:init 0 | poweroff | shutdown -s -t 0; 重启:init 6 | reboot
Ps. 选项那么多,怎么知道一个命令,有哪些选项呢?
命令 --help 或者 man 命令