- Linux介绍
1)Linux是一款操作系统,免费,开源,安全,高效,稳定,处理高并发非常强悍。现在很多企业及项目都部署到Linux/unix服务器运行。
2)Linux是内核,CentOS\Redhat\Ubuntu\Suse…是发行版
3)Linux网络模式:
桥连接好处:通讯比较畅通。缺点:可能导致ip冲突
NAT好处:不会造成ip冲突
主机模式:Linux是个独立的主机,不能访问外网。
- 安装vm和centos
- 安装vmtools
1)可以直接粘贴命令在windows和centos系统之间
2)可以设置windows和centos的共享文件夹
操作:
1)进入centos
2)点击vm菜单的->install vmware tools
3)centos会出现一个vm的安装包
4)点击右键解压,得到一个安装文件
tar -zxvf filename.tar.gz
5)进入该vm解压的目录,该文件在 /root/桌面/vmware-tools-distrib/下
6)安装./vmware-install.pl
7)全部使用默认设置即可
8)需要reboot重新启动即可生效
共享文件夹操作:
1)在母机新建一个共享文件夹
2)在虚拟机设置选项里面,共享文件夹选中共享文件夹——>总是启用
3)linux在/mnt/hgfs文件下可以找到
- linux目录结构
在linux里面,一切皆文件,只有一个根目录/
- linux远程登陆
XShell:远程登录到linux的软件
xftp5:文件上传下载文件
安装XShell:
1)linux要开放22号端口
具体步骤如下:
1.查看ssh服务的状态
输入以下命令:
sudo service sshd status
如果出现
Loaded: error (Reason: No such file or directory)
提示的话,说名没有安装ssh服务,按照第二步:安装ssh服务。
如果出现
Active: inactive (dead)
说明已经安装了ssh服务,但是没有开启。按照第三步:开启ssh服务。
2安装ssh服务
安装ssh命令:
如果你用的是redhat,fedora,centos等系列linux发行版,那么敲入以下命令:
sudo yum install sshd
或者
sudo yum install openssh-server(由osc网友 火耳提供)
如果你使用的是debian,ubuntu,linux mint等系列的linux发行版,那么敲入以下命令:
sudo apt-get install sshd
或者
sudo apt-get install openssh-server(由osc网友 火耳提供)
然后按照提示,安装就好了。
3.开启ssh服务
在终端敲入以下命令:
sudo service sshd start
执行完命令后,用第一步:查看ssh服务状态的命令,如果出现以下提示
Active: active (running) since Sun 2013-04-07 13:43:11 CST; 15s ago
说明你的ssh服务已经启动了。如果失败来的话,那试着卸载一下(看第六步:卸载ssh服务)再安装(第二部:安装ssh服务)。
4.使用ssh服务
使用ssh服务跟使用ftp服务一样,推荐安装putty(一款远程登陆工具)来登陆本地主机。安装命令与第二步:安装ssh服务相同,只是把sshd换成putty即可。
安装putty完成后,使用以下命令远程登陆:
putty ip/hostname
其中ip/hostname为你的ssh主机的ip地址或者主机名
比如我的ip地址为192.168.1.103,那么我可以使用 putty 192.168.1.103来登陆我的主机。
5.卸载ssh服务
如果你用的是redhat,fedora,centos等系列linux发行版,那么敲入以下命令:
sudo yum remove sshd
如果你使用的是debian,ubuntu,linux mint等系列的linux发行版,那么敲入以下命令:
sudo apt-get –purge remove sshd
然后就会提示卸载完成。
2.傻瓜式安装XShell
3.输入名称和linux的ip地址连接
-
远程上传下载文件Xftp5
Xftp5的配置和使用
… -
List item
-
vi和vim
1.vi是文本编辑器,vim是vi的增强版本。
2.vi和vim的三种常见模式
正常模式
在正常模式下,可以使用快捷键
插入模式
按下i,I,o,O,a,A,r,R等任何一个字母之后才会进入编辑模式,一般来说按i即可。
命令行模式
可以提供相关指令,完成读取、存盘、替换、离开vim、显示行号等动作。
3.vim快捷键的使用
拷贝当前行 yy,拷贝当前行向下5行 5yy
粘贴 p
删除当前行 dd,删除当前行向下的5行 5dd
在文件中查找某个单词 命令行下/关键字,回车查找,输入n就是查找下一个
设置文件的行号 命令行下 set nu
取消文件的行号 命令行下 set nonu
编辑/etc/profile文件,使用快捷键到底文件的最末行 G和最首行 gg(正常模式)
在一个文件中输入 “hello”,然后又撤销这个动作 u(正常模式)
编辑 /etc/profile文件,并将光标移动到第20行 20 shift+g -
开机、重启、用户注销
1.shutdown
shutdown -h now:表示现在关机
shutdown -h 1:表示一分钟后关机
shutdown -r now:表示立即重启 -
halt:关机
3.reboot:重启系统
4.sync:把内存数据同步到磁盘上,意思是我要关机了,把没保存的数据保存到磁盘上,关机之前,养成习惯同步,防止数据丢失。
5.logout:在远程登陆有效 -
用户管理
1.添加用户
useradd [选项] 用户名
useradd -d 指定目录
2.指定/修改密码
passwd 用户名
3.删除用户
userdel 用户名 //保留家目录(工作中用)
userdel -r 用户名 //家目录同时删除
4.查询用户信息
id 用户名
5.切换用户
su - 切换用户名
exit //重新回到原来的用户
- 用户组
1.创建组
groupadd 组名
2.删除组
groupdel 组名
3.增加一个用户指定组
useradd -g 组名 用户名
4.改变用户在其他组
usermod -g 组名 用户名
- 用户和组的配置文件
1.用户(用户信息)配置文件
/etc/passwd
2.组(组信息)配置文件
/etc/group
3.口令配置文件(密码和登录信息,加密)
/etc.shadow
- 运行级别
1.有7个级别
关机/单用户(找回丢失密码)/多用户无网络服务/多用户有网络服务/保留/图形界面/重启
运行级别配置文件 /etc/inittab
更改级别,打开文件
id:级别:initdefault
2.命令
init [123456]
3.面试题:如何找回丢失的密码
思路: 进入到 单用户模式,然后修改root密码。因为进入单用户模式,不需要root密码
总结
开机->在引导时 回车键->看到一个界面 输入e->输入e->这行最后 输入1->输入b ,进入单用户模式
->使用passwd指令来修改root密码
- 帮助指令
1.man 指令
man [命令或配置文件](功能描述:获得帮助信息)
2.help指令
help 命令
- 文件目录类
1.pwd(显示当前工作的绝对路径)
2.ls [选项] [目录或文件]
例如:
ls
ls -l
ls -al
3.切换目录
问题:如何理解绝对路径和相对路径?
当前工作目录为/root,要切换到/home,有两种方法:
(1)绝对路径:cd /home
(2)相对路径:cd ../home
cd ~直接进家目录
cd ..回到当前目录的上一级目录
4.mkdir创建目录
mkdir [选项] 要创建的目录
eg: mkdir /home/dog
eg: mkdir -p /home/animal/cat //一次性创建多级目录
5.rmdir删除目录
rmdir [选项] 要创建的目录
eg: rmdir /home/dog //此时如果rmdir不是空目录是无法删除的
eg:rm -rf /home/dog //此时可以删除非空目录
6.touch创建空文件
touch 文件名称1 文件名称2
7.cp拷贝文件
cp [选项] source dest
常用选项
-r: 递归复制整个文件夹
eg: cp a.txt bbb/ //将当前的a.txt文件拷贝到当前bbb的文件夹下
eg:cp -r test/ zwj/ //将当前test目录下的所有文件拷贝到当前目录zwj下
强制覆盖不提示的方法: \cp
eg:\cp -r test/ zwj/
8.rm移除文件或目录
rm [选项] 要删除的文件或目录
常用选项
-r: 递归删除整个文件夹
-f: 强制删除不提示
eg:
rm a.txt
rm -rf bbb/
9.mv移动文件与目录或重命名
eg: mv oldNameFile newNameFile //重命名
eg:mv pig.txt /root/ //移动
10.cat查看文件内容(只查看不浏览)
cat [选项] 要查看的文件
eg: cat /etc/profie
cat -n /etc/profile | more 显示行号并一点点显示(按空格键)
11.more
常用操作命令
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
12.less 并不是一次将整个文件加载之后才显示,而是根据显示需要的加载内容,对于显示大型文件具有较高的效率。
less 文件名
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将"tab"键显示为规定的数字空格
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向上翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
13.>输出重定向和>>追加指令
ls -l >文件 //将列表内容覆盖文件内容
ls -al >>文件 //将列表内容追加到文件内容
cat 文件1 > 文件2 //将文件内容覆盖到另一个文件内容
eg: cat /etc/profile > c.txt
echo "内容" >>文件 //将“内容”追加到另一个文件内容
14.echo输出内容到控制台
echo [选项] [输出内容]
eg:echo $PATH
15.head用于显示文件的开头部分内容。默认情况下head指令显示文件的前10行内容
head 文件
head -n 5 文件
16.tail指令
tail用于输出文件尾部内容,默认情况下tail指令显示文件的后10行内容
tail 文件
tail -n 5 文件
tail -f 文件 (实时追踪该文档的所有更新,工作经常使用,注意时实时,如果有变化,就显示出来)
17.In指令
软链接也叫符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
ln -s [原文件或目录][软链接名] (功能描述:给原文创建一个软链接)
eg: ln -s /root linkToRoot
cd linkToRoot/
删除软连接
rm -rf linkToRoot 在删除软连接时不要带斜杠
18.history指令
history 查看已经执行的历史指令
eg:history 10 显示最近执行的10条指令
!178 //执行编号为178的指令
- 时间日期类
1.date
2.date+%Y
3.date+%m
4.date+%d
5.date+"%Y-%m-%d %H:%M:%S"
6.设置时间
date -s 字符串时间
eg: date -s "2020-11-11 11:22:22"
7.cal [选项]
eg:cal
eg:cal 2020
- 搜索查找类
1.find
find [搜索范围] [选项]
选项:
-name<查询方式> eg: find /home -name hello.txt
-user<用户名>eg: find /opt -user nobody
-size<文件大小>eg: find / -size +20M (大于20M)/-20(小于20M)/20M(等于20M)
2.locate 快速定位文件路径,必须使用updatedb指令创建locate数据库
locate 搜索文件
eg: locate hello.txt
3.grep指令和管道符号|
管道符|表示将前一个命令的处理结果输出传递给后面的命令处理
grep [选项] 查找内容 源文件
-n //显示匹配行及行号
-i //忽略字母大小写
eg: cat hello.txt | grep -n yes
- 压缩和解压类
1.gzip/gunzip 指令
gzip 用于压缩文件
gunzip 用于解压缩文件
gzip 文件 (压缩为*.gz) 文件1
gunzip 文件.gz(解压缩) 文件1
eg: gzip hello.txt
eg: gunzip hello.txt.gz
2.zip/unzip指令
zip [选项]XXX.zip 将要压缩的内容
-r 递归压缩
unzip [选项]XXX.zip
-d<目录> :指定解压后文件的存放目录
eg: zip -r home.zip /home/ 将home的整个文件夹打包
eg: unzip -d /opt/tmp/ home.zip
3.tar指令
即可以压缩也可以解压
tar [选项] XXX.tar.gz 打包的内容(压缩后的文件格式.tar.gz)
-c 产生tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
eg: tar -cvfz a.tar.gz /home/al.txt /home/a2.txt
eg: tar -cvfz myhome.tar.gz /home/ 对home整个打包
eg: tar -xzvf a.tar.gz //解压到当前目录
eg: tar -xzvf myhome.tar.gz -C /opt/ //前提目录事先要存在
- 组管理和权限管理
文件分为所有者、所在组、其他组、改变用户的所在组
1.查看文件的所有者
ls -ahl指令
groupadd police
useradd -g police tom
passwd tom
touch ok.txt
ls -ahl
2.修改文件所有者
chown 用户名 文件名
eg: chown tom apple.txt //文件的所有者不一定在所在组
chown -R 用户名 目录 //对该目录下的所有文件修改文件所有者权限
3.修改文件所在组
chgrp 组名 文件名
eg: chgrp police orange.txt
chgrp -R 组名 目录
4.改变文件所在组
usermod -g 组名 用户名
eg: groupadd bandit
usermod -g bandit tom
id tom //查看tom用户信息
- 修改权限 -chmod
1.第一种方式:+、-、=变更权限
u:所有者
g:所有组
o:其他人
a:所有人(u\g\o的总和)
chmod u=rwx,g=rx,o=x 文件目录名
chmod o+w 文件目录名 //给其他人增加一个写的权限
chmod a-x 文件目录名
2.第二种方式:通过数字变更权限
r=4 w=2 x=1 rwx=7
chmod u=rwx,g=rx,o=x 文件目录名
相当于
chmod 751 文件目录名
- crond任务调度
crontab [选项]
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab
- cron -e
-
- /1 * * * * ls -l /etc >> /tmp/to.txt
案例:
每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中
1)先编写一个文件 /home/mytask1.sh
2)给mytask1.sh一个可执行权限 (只有可执行,系统才能调度它)
- /1 * * * * ls -l /etc >> /tmp/to.txt
chmod 744 /home/mytask1.sh
3)crontab -e
4)*/1 * * * * /home/mytask1.sh
5)成功
- 硬盘分区
1.lsblk -f 指令查看当前系统的分区情况
2.挂载案例
如何增加一块硬盘
1)虚拟机添加硬盘 虚拟机->设置->硬盘->...
2)分区 fdisk /dev/sdb -> m -> n -> p ->1-4 -> w
3)格式化 mkfs -t ext2/dev/sdb1
4)挂载 先创建一个目录 ,挂载 mount /dev/sdb1 /home/newdisk (此时是临时挂载)
5)设置可以自动挂载 vim /etc/fstab
编辑模式下加入
/dev/sdb1 /home/newdisk ext4 defaults 0 0
命令行下 mount -a
如果想解挂 用umount 设备名称 或者 挂载目录
- 磁盘情况查询
df -h
df -l
du -h /目录 //查询指定目录的磁盘占用情况
eg: du -ach --max-depth=1 /opt
案例:统计/home目录的文件数量
ls -l /home | grep "^-" | wc -l
案例:统计/home目录下的所有文件数量(包括子目录)
ls -lR /home | grep "^-" | wc -l
- 网络配置
1.自动连接
网络连接->编辑->自动连接勾上
2.指定固定的ip
第一步:vi /etc/sysconfig/network-scripts/ifcfg-eth0
改如下:
ONBOOT=yes
BOOTPROTO=static
IPADDR=你的静态地址
GATEWAY=你的电脑网关
DNS1跟网关一样
第二步:重启服务 service network restart
- 进程管理
1.显示系统执行的进程
ps -a //显示当前终端的所有进程信息
ps -u //以用户的格式显示进程信息
ps -x //显示后台进程运行的参数
ps -aux
eg: ps -aux | grep sshd
2.如果想看父进程
ps -ef | more
- 终止进程kill和killall
kill [选项] 进程号
-9 表示强迫进程立即停止
eg:kill 4010 //踢掉非法用户
killall 进程名称(也支持通配符)
3.查看进程树
pstree [选项]
-p //显示进程的PID
-u //显示进程的所属用户
- 服务管理
service 服务名 [start | stop | restart | reload | status]
注意:centOS7.0 之后不再使用service,而是使用systemctl
eg:service iptables status //查看防火墙
eg:service iptables stop //关闭防火墙(临时生效)
eg:service iptables start //开启防火墙
2.检查某个端口是否在监听
talent ip 端口
- 查看服务名
方式1: 使用setup ->系统服务 就可以看到
方式2: /etc/init.d/服务名称
4.chkconfig指令
chkconfig --list
chkconfig --level 5 服务名 on/off
eg:chkconfig --level 5 sshd off
- 监控服务
1.动态监控进程
top [选项]
-d 秒数 指定top命令每隔几秒更新,默认是3秒在top命令的交互模式当中可以执行命令;
-i 使top不显示任何闲置或者僵死进程;
-p 通过指定监控进程ID来仅仅监控某个进程的状态。
P 以cpu使用率排序,默认就是此项
M 以内存的使用率排序
N 以PID排序
q 退出top
案例1:监视特定用户
top 回车
输入 u 回车 输入用户名
案例2:终止指定的进程
top 回车
k 回车 再输入要结束的进程ID号
案例3:指定系统状态更新的时间
top -d 10
- 监控网络状态
netstat [选项]
-an //按一定顺序排列输出
-p //显示哪个进程在调用
案例1:查看系统所有的网络服务
netstat -anp
案例2:查看某一服务
netstat -anp | grep sshd
- rpm包的管理
1.生成.RPM扩展名文件,类似于windows的setup.exe
2.rpm包的简单查询
rpm -qa | grep xx
eg: rpm -qa | grep firefox //其中noarch表示通用
rpm -qi 安装包名 //查询安装的rpm包详细信息
rpm -ql 软件报名 //查询安装的rpm包路径
rpm -qf 文件 //查询某个文件属于哪个rpm包
- 卸载软件包rpm
rpm -e RPM包的名称
- 安装软件包rpm
rpm -ivh RPM包全路径名称
i = install
v = verbose 提示
h = hash 进度条
步骤
先找到firefox的安装rpm包,你需要挂载上我们安装centos的iso文件,然后到/media/下去找rpm,拷贝到opt目录下,
输入命令安装。
- YUM
1.yum是一款Shell前端软件管理包。基于PRM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖包。
yum list | grep xx软件列表
yum install xxx 下载安装