一、文件内容搜索
格式: grep 内容 文件路径
1.常见grep参数
-i 忽略字符大小写的差别。
--color=auto : 颜色自动提示,将grep设置为默认颜色提示,
其实就是可以给grep指令器别名
-n : 显示内容出现的行号
-l : 显示内容出现的文件名
-c : 显示出现该内容的次数
【例】编辑一个1.txt文件,输入一部分文字
[root@localhost ~]# vi 1.txt #进入编辑内容
[root@localhost ~]# grep 关羽 1.txt
关羽
关羽是著名的三国大将,桃园三结义、过五关斩六将
[root@localhost ~]# grep 关羽 1.txt --color=auto
关羽 #此时显示的关羽是彩色的
关羽是著名的三国大将,桃园三结义、过五关斩六将
2.设置自动颜色提示
vi ~/.bashrc
source ~/.bashrc
(1)[root@localhost ~]# vi ~/.bashrc #进入编辑模式
添加一句 alias grep='grep --color=auto' #在里面添加一句这个代码
(2)[root@localhost ~]# ~/.bashrc #调用一下这个文件
(3)[root@localhost ~]# grep 是 4.txt
#重新搜索,可以显示搜索到的‘是’变颜色
。。。。。
3.也可以写正则
grep -p
grep -e 两种均可
【例】13838384380
\d{11}
^1\d{10} 3456789
^1[3-9]\d{9}
test@qq.com duduxixi@163.com lalahehe@sina.cn
\w+@\w+\.(com|cn|net)
grep 王者荣耀 1.txt
grep 王者荣耀 *.txt
grep 王者荣耀 ~/.txt
grep -P '1[3-9]\d{9}' 3.txt
二、管道
格式 指令1 | 指令2
指令1的输出作为指令2的输入,指令2的输出显示到屏幕中
1.常用的管道指令
[root@localhost ~]# ls -l /etc | less #翻页查找
[root@localhost ~]# ls -l /etc | head #查看前十行
[root@localhost ~]# ls -l /etc | head -10 | tail -5
#查看前十行中后五行内容
和grep结合使用
ls -l /etc | grep 找的内容
2.进程相关指令===ps +管道
#查看进程中ssh的
[root@localhost ~]# ps -ef | grep ssh
root 1168 1 0 17:16 ? 00:00:00 /usr/sbin/sshd
root 1668 1168 0 17:22 ? 00:00:01 sshd: root@pts/0
root 2118 1672 1 18:45 pts/0 00:00:00 grep ssh
三、搭建主机信任
搭建主机信任就是实现免密登录
1.公钥和私钥
密码学的内容,加密-解密,这里引入一个知识:秘钥
加密--解密秘钥相同====对称加解密
加密--解密秘钥不相同====非对称解密
一对密钥:公钥和私钥
公钥:给你们,你们拿的都是公钥
私钥:我自己拥有
公钥加密—私钥解密,私钥加密—公钥解密
2.linux1登录linux2,实现免密码登录
(1)在linux1上生成公钥和私钥
ssh-keygen
指令,然后一路敲Enter键就可以,不需要输入
[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
a6:6a:c1:00:0e:a2:72:26:bd:a7:bb:00:50:a9:bc:81
[email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| .. |
|+.. |
|O+ |
|E+= |
|o+o+ S |
|... + o |
|. o .. |
| .. .. |
| o+. |
+-----------------+
(2)来到生成秘钥的文件中
id_rsa : 私钥
id_rsa.pub : 公钥
[root@localhost ~]# ls -a
. .. 1.txt 2.txt anaconda-ks.cfg .bash_logout
.bash_profile .bashrc .cshrc install.log install.log.syslog
.ssh .tcshrc
[root@localhost ~]# cd .ssh
[root@localhost .ssh]# ls
id_rsa id_rsa.pub
(3)查看公钥内容,并鼠标手动复制
[root@localhost .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArqZ8hDb97kcgRX0hRNI+
BUrzFPBE11Y6IzomMwaDkadYbyZ6u1q2z0iUTBzo1BMSuaC/F8Qd2Wm3/
+b/FBbx/EmpVl0y0nBHL29zofKvudPcrhNuqLTA2SA7LPan4dWcODb6OV
dEjo2zP76e9nOsi/YOJvNjzjdYLA/HsMm4ERY5mGWJUiJpG+vXf0NZX35
ygglPwzseF4B90Ffhhb1lZc1HT4HIp+K/cDqHUPRtpHEVrgoWAbuLJcNvJ
GPOLTTu8fI8vefsZvmRGbYKY4h4fXLrU4NpAQ== root@localhost.lo
caldomain
(4)来到linux2中 vi ~/.ssh/authorized_keys
将公钥粘贴进来即可这样在通过linux1登录linux2的时候就实现了免密码登录
[root@localhost .ssh]# vi authorized_keys
#进入编辑模式,将公钥粘贴进来
注意:文件名字是固定格式,不能随意改,必须这个名字authorized_keys
四、SCP
1,什么是scp
scp:基于ssh的cp,cp是实现本机之间来回拷贝,scp在两台linux之间进行拷贝
2.scp的用法
(1)linux和linux之间
scp 源路径 目标路径
scp 1.txt root@ip地址:路径
如果发送文件夹,需要添加 -r 选项
linux和linux之间使用scp进行互发,如果搭建了主机信任,不用输入密码
(2)windows和linux之间(类似于xftp软件)
用软件 winscp,实现windows和linux之间使用scp进行互发
安装,使用即可,左边:windows目录,右边:linux目录,相互拖动即可
五、重定向
标准输入(stdin, 键盘)、标准输出(stdout, 屏幕)
1.输出重定向:意思就是不输出到屏幕,输出到其他地方
ls -l > 1.txt > 作用:首先清空文件,然后写入文件
ls -l >> 1.txt >> 作用:追加内容
echo '你好' >> 1.txt 在1.txt文本中追加你好
2.错误重定向:指令有错,错误信息显示到哪里
s /lala > 1.txt 将lala文件夹错误信息显示到指定文件中
ls /lala >> 1.txt 将lala文件夹错误信息追加到指定文件中
六、挂载、磁盘相关命令
1.什么是挂载
注意,优盘只能被一个系统识别,插入优盘会选择,如果是虚拟机需要
如图:
2.步骤:
(1)(1)插上u盘
u盘只能让你的linux识别,如果是虚拟机,在虚拟机设置里面点击让虚拟机识别
(2)inux识别成功之后,通过指令查看你的设备 fdisk -l
/dev/sda 就是linux系统的硬盘设备
如果有分区 /dev/sda1 /dev/sda2 xxx
(3)u盘设备往下走
/dev/sdb 就是你的u盘设备
如果有分区 /dev/sdb1 /dev/sdb2
(4)挂载优盘
mount -t 需要挂载的设备 挂载点
auto : 自动识别
vfat : fat32
ntfs-3g : ntfs格式 需要插件支持
-o iocharset=utf8 如果有中文,可以指定字符集
mount /dev/sdb1 /mnt/usb
3.取消挂载:不能在挂载的目录中取消挂载
umount /dev/sdb1 /mnt/usb
umount /dev/sdb1
umount /mnt/usb
注意:u盘中有中文,在挂在前先用下面指令读取,否则挂载时会乱码
如果取消挂载时显示设备正在忙,需要输入指令把使用的进程干掉,再取消挂载即可
fuser -m -k /mnt/usb
4、和磁盘相关的指令
df 显示当前可用的设备的使用情况
[root@localhost mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
18G 671M 16G 5% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 477M 28M 425M 7% /boot
du
当前目录的使用情况
-h 人性化的方式显示大小
4.配置开机挂载
vi /etc/fstab
进入编辑模式添加一行信息
/dev/sdb1 /mnt/usb vfat defaults 0 0
七.软件硬链接
link,为了解决文件的共享问题,引入了链接机制,分为软连接和硬链接,以软连接使用居多
1.硬链接
ln 源文件 目标文件
也可以使用link
链接之后,目标文件和源文件内容相同,修改其中一个,另外一个也被修改
在ll之后,可以看见硬链接个数,增加
删除其中一个,另外一个不受影响
可以理解为,给一个文件起了一个外号、别名
【注1】不能给目录创建
【注2】创建完硬链接之后,你的用户名和组信息不变
2.软链接
ln -s 源文件 目标文件
软链接创建之后,修改其中一个,另一个也修改
【注1】可以给目录创建
【注2】创建完之后,用户和组信息是创建时候的信息
3.软硬连接的不同之处
在linux里面,存放一个文件,由三部分组成,
一个文件名,一个是文件索引(inode),一个是数据部分
如图:
八、压缩和解压缩(熟练)
在linux里面,常见压缩格式有两种,一种叫做gz,一种叫做bz2
1.gzip\ gunzip(后缀名是.gz)
格式: gzip 文件1 文件2 #压缩多个
生成之后,源文件不在了,只有压缩文件,每一个都生成一个压缩文件
gunzip 文件
不能实现打包压缩,不能实现保留源文件
[root@localhost ~]# gzip 3.txt #压缩3.txt文件,但不保留原文件
[root@localhost ~]# ls
3.txt.gz
2.bzip2\bunzip2(后缀名是bz2)
bzip2 文件1 文件2 #每一个生成一个压缩文件
-k : 保留源文件再压缩
bunzip2 压缩文件1 压缩文件2
[root@localhost ~]# bzip2 -k 4.txt #-k 可保留原文件再压缩
[root@localhost ~]# ls
3.txt.gz 4.txt 4.txt.bz2
3.打包和打包压缩
tar(可以实现打包的功能,可以实现压缩和解压,)
如果打包压缩使用的gzip压缩的,那么后缀名 .tar.gz .tgz
如果打包压缩使用的bzip2压缩的,那么后缀名 .tar.bz2
常用的参数(组合使用时不分先后)
-z : 使用gzip压缩
-j : 使用bzip2压缩
-f : 打包压缩的时候指定压缩后的文件名
-c : 打包文件
-x : 解压缩使用的
-v : 压缩和解压缩时候显示进度
打包使用gzip压缩:
打包使用gzip压缩:
tar -zcvf 压缩后的名字.tar.gz 文件1 文件2 文件3
使用gzip解压缩
tar -zxvf 压缩包.tar.gz
打包使用bzip2压缩
打包使用bzip2压缩
tar -jcvf 压缩后的名字.tar.bz2 文件1 文件2 文件3
使用bzip2解压缩
tar -jxvf 压缩包.tar.bz2
九、软件安装之yum安装
红帽系列(centos、费德罗)软件安装使用 yum安装
大便系列(Ubuntu等)软件安装使用 apt-get安装
1.去哪下载软件呢?
yum源,这个源在哪呢?默认都有自己的源,但是这个源是在国外的。所以使用linux
经常将源设置为国内源,阿里源、清华源、搜狐源、网易源、中科大源,国外更新的
时候,国内会实时更新
2.配置源(以阿里源为例)
打开阿里源,点击帮助
(1)mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d
/CentOS-Base.repo.backup
(2)下载对应的源配置文件
wget是一个专业的下载软件,但是需要安装
wget -O /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-6.repo
或者
curl是自带的,不用安装
curl -o /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-6.repo
(3)执行
如果是本地,需要网络,吃饭的时候执行,晚上执行,热点执行
yum clean all
yum makecache