01、Linux基础知识

一、与Linux相关的基础知识

1.1 Linux历史

  • 1984年,自由软件之父 Richard M.Stallman 发起了GNU组织
  • 1991年,Linux之父 Linux Torvalds开发了Linux内核

1.2 Linux发行版

  • Redhat 企业级操作系统
  • CentOS 社区企业级操作系统,开源
  • Ubuntu 社区维护,主要作为手机系统或电脑桌面
  • Debian 金融,银行

二、Bash shell

  • 功能介绍
    • 文件管理
    • 权限管理
    • 用户管理
    • 磁盘管理
    • 网络管理
    • 软件管理
    • 服务管理

2.1 Bash shell 提示符及语法

  • 提示符
    在这里插入图片描述

  • 语法

命令选项参数
commandoptionsparameters
[root@web01~]#ls		#命令
[root@web01~]#ls -a		#命令+选项
[root@web01~]#ls -a /home/		#命令+选项+参数

2.2 Bash shell的基本特性

(1)tabs补全功能

  • 命令补全
  • 目录补全

(2)常用快捷键

  • Ctrl + a :光标跳转至正在输入的命令行首部
  • Ctrl + e :光标跳转至正在输入的命令行尾部
  • Ctrl + c :终止前台运行的程序
  • Ctrl + d :退出当前shell
  • Ctrl + z :暂停任务,挂到后台
  • Ctrl + l :清屏
  • Ctrl + k :删除从光标到行末的所有字符
  • Ctrl + u :删除从光标道行首的所有字符
  • Ctrl + r :搜索历史命令,利用关键字

(3)History历史命令

  • !!(2个感叹号):查看所有执行过的历史命令
  • !数字(1个感叹号+一个数字n):执行历史中第n行命令
#01、查看所有的历史命令
[root@web01~]#ll
[root@web01~]#ls
anaconda-ks.cfg  ceshi
![root@web01~]#history
  167  ls
  168  history

#02、执行某条历史命令
[root@web01~]#!167		#执行历史命令中第167条命令
ls						#显示那条历史命令
anaconda-ks.cfg  ceshi	#执行后的输出

#03、使用!cat,调用最近执行过的cat命令
[root@web01~]#cat 1.txt
I
[root@web01~]#!cat
cat 1.txt
I

(4)alias别名

  • 定义别名
[root@web01~]#hostname
web01
[root@web01~]#alias wk='hostname'
[root@web01~]#wk
web01
  • 取消别名
[root@web01~]#unalias wk
[root@web01~]#wk
-bash: wk: command not found
  • 永久生效方法
echo "alias wk='hostname'" >> /etc/bashrc

(5)帮助手册

  • –help
[root@web01~]#ls --help
Usage: ls [OPTION]... [FILE]...
  • man手册
[root@web01~]#man ls

三、Linux文件系统

3.1 Linux目录结构

在这里插入图片描述

  • 存储命令相关的目录
    • /bin 普通用户使用的命令
    • /sbin 管理员使用的命令
  • 用户家相关目录
    • home 普通用户家目录,默认为/home/username
    • root 超级管理员root的家目录,普通用户无操作权限
  • 系统文件目录
    • /usr 相当于/Windows
    • /usr/local 软件安装目录
    • /usr/bin 普通用户使用的应用程序
    • /usr/sbin 管理员用户使用的应用程序
    • /usr/lib 32位库文件
    • /usr/lib64 64位库文件
  • 系统启动目录
    • /boot 存放系统启动相关文件
  • 配置文件相关目录
    • /etc 存放配置文件
    • /etc/sysconfig/network-script/ifcfg- 网卡配置文件
    • /etc/hostname 主机名配置文件
  • 设备相关目录
    • /dev/null #黑洞设备,只进不出,类似垃圾回收站
    • /dev/random #生成随机数
    • /dev/zero #能源源不断的产生数据
  • 可变的目录
    • /var 存放系统一直在变化的文件
    • /var/tmp 进程产生的临时文件
    • /var/log 日志文件
    • /tmp 系统临时目录
  • 虚拟系统目录
    • /proc 进程状态文件

3.2 绝对路径与相对路径

  • 绝对路径:从/开始的路径
  • 相对路径:从当前目录开始的路径
  • .和…的含义
    • 一个点:代表当前目录
    • 二个点:代表当前目录的上层目录
  • 路径切换命令cd
    • cd 目录:进入到某个目录
    • cd - :返回到上一次所在目录
    • cd ~:返回到当前用户的家目录
    • cd …:切换到当前目录上级目录
#01、进入某个目录(cd 目录)
[root@web01~]#ll
total 8
-rw-r--r--  1 root root    2 Apr 20 12:27 1.txt
-rw-------. 1 root root 1696 Jan  1 11:54 anaconda-ks.cfg
drwxr-xr-x  2 root root   19 Apr  9 10:30 ceshi
[root@web01~]#cd ceshi
[root@web01ceshi]#pwd
/root/ceshi


#02、返回到上一次所在目录
[root@web01~]#cd test1
[root@web01test1]#pwd
/root/test1
[root@web01test1]#cd /root/test2
[root@web01test2]#pwd
/root/test2
[root@web01test2]#cd -
/root/test1
[root@web01test1]#pwd
/root/test1


#03、返回到当前目录所在家目录
[root@web01sysconfig]#pwd
/etc/sysconfig
[root@web01sysconfig]#cd ~
[root@web01~]#pwd
/root

四、Linux常用命令

4.1 文件操作命令

- touch
- touch file
- touch 文件集合
命令含义:创建文件
#01、创建单个文件
[root@web01test1]#touch 1.txt
[root@web01test1]#ll
total 0
-rw-r--r-- 1 root root 0 Apr 21 10:30 1.txt


#02、创建多个文件
[root@web01test1]#touch 1.txt 2.txt
[root@web01test1]#ll
total 0
-rw-r--r-- 1 root root 0 Apr 21 10:31 1.txt
-rw-r--r-- 1 root root 0 Apr 21 10:31 2.txt


#03、集合创建不连续的文件
[root@web01test1]#touch {a,b,c}
[root@web01test1]#ll
total 0
-rw-r--r-- 1 root root 0 Apr 21 10:34 a
-rw-r--r-- 1 root root 0 Apr 21 10:34 b
-rw-r--r-- 1 root root 0 Apr 21 10:34 c


#04、集合创建连续的文件
[root@web01test1]#touch {1..4}
[root@web01test1]#ll
total 0
-rw-r--r-- 1 root root 0 Apr 21 10:35 1
-rw-r--r-- 1 root root 0 Apr 21 10:35 2
-rw-r--r-- 1 root root 0 Apr 21 10:35 3
-rw-r--r-- 1 root root 0 Apr 21 10:35 4

- mkdir
命令含义:创建目录
-v		#显示详细信息
-p		#递归创建按目录

#01、创建单个目录
[root@web01test1]#mkdir test
[root@web01test1]#ll
total 0
drwxr-xr-x 2 root root 6 Apr 21 10:41 test

#02、递归创建目录
[root@web01test1]#mkdir -pv /root/test1/test/test1/test2
[root@web01test1]#tree
.
└── test
    └── test1
        └── test2
- tree
命令含义:查看该目录下面的所有目录或文件
[root@web01test1]#tree
.
└── test
    └── test1
        └── test2
- cp
命令含义:拷贝目录文件
参数
	-v		显示命令执行的操作过程
	-r		递归处理目录及子目录
	-p		保留源文件或目录的属性
#01、拷贝单个文件
[root@web01test1]#cp 1.txt /root/test2/1.txt
[root@web01test1]#cd /root/test2
[root@web01test2]#ll
total 0
-rw-r--r-- 1 root root 0 Apr 21 10:52 1.txt

#02、递归复制复制目录
cp -r /etc/ /tmp/
- mv
命令含义:移动目录或文件
#01、原地改名
[root@web01test2]#ll
total 0
-rw-r--r-- 1 root root 0 Apr 21 10:52 1.txt
[root@web01test2]#mv 1.txt 2.txt
[root@web01test2]#ll
total 0
-rw-r--r-- 1 root root 0 Apr 21 10:52 2.txt


#02、移动目录到目录
[root@web01test1]#ll
total 0
drwxr-xr-x 2 root root 6 Apr 21 10:58 li
[root@web01test1]#mv li /root/test2/
[root@web01test1]#cd /root/test2/
[root@web01test2]#ll
total 0
drwxr-xr-x 2 root root 6 Apr 21 10:58 li
- rm
命令含义:删除文件或目录
参数
	-r		递归删除
	-f		强制删除,不提醒
	-v		显示删除的详细过程
#01、删除文件
rm -f test01.txt

#02、删除目录
rm -rf /test01

#03、删除某个目录下所有的内容
rm -rf /test//*

#04、删除包含某些字符的文件
rm -rf test*

4.2 文件查看命令

- cat
命令含义:查看文件内容
参数:
	-n		指定查看文件的行数
	-A		查看文件中的特殊符号
	tac pass		倒序查看文件
#01、查看原文件
[root@web01test2]#cat 1.txt
I love you
wuhan
英雄的城市


#02、查看文件,显示行号
[root@web01test2]#cat -n 1.txt
     1	I love you
     2	wuhan
     3	英雄的城市
     
     
#03、查看文件显示特殊符号(判断文件中是否有空格)
[root@web01test2]#cat -A 1.txt
I love you$
wuhan$
M-hM-^KM-1M-iM-^[M-^DM-gM-^ZM-^DM-eM-^_M-^NM-eM-8M-^B$


#04、倒叙查看文件
[root@web01test2]#tac pass 1.txt
tac: failed to open ‘pass’ for reading: No such file or directory
英雄的城市
wuhan
I love you
- less/more
命令含义:查看文件内容
less/more 1.txt		#上下键为移动,空格为翻页
- head
命令含义:显示文件内容前多少行
参数:
	-n		显示文件前n行
	默认显示前十行
[root@web01test2]#head -2 1.txt
I love you
wuhan
[root@web01test2]#cat 1.txt
I love you
wuhan
英雄的城市
- tail
命令含义:显示文件内容后多少行
参数:
	-n		显示文件后n行
	-f		查看文件尾部的变化也可携程tailf
	默认显示后十行
[root@web01test2]#cat 1.txt
I love you
wuhan
英雄的城市
[root@web01test2]#tail -1 1.txt
英雄的城市

4.3 文件下载命令

- wget
从网上下载文件
参数:
	-O		将链接中的内容下载到指定位置并修改参数
安装方法:
	yum install -y wget
- curl
命令作用:从网上拉取文件
参数:
	-o		将链接中的内容下载到指定位置并修改参数
安装方法:
	yum install -y wget
#01、查看网络上文件的内容,如阿里源
curl http://mirrors.aliyun.com/repo/Centos-7.repo


#02、下载阿里云centos7文件到/etc/yum.repos.d/并改名为CentOS-Base.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7
- rz/sz
命令作用:上传/下载文件
安装:
	yum install -y lrzsz
说明:
	rz:只能上传文件,必须小于4G,也不支持断点续传
	sz:只能下载
rz			#然后选择windows中的文件进行下载
sz 1.txt    #然后选择windows的文件夹进行保存

4.4 字符处理类命令

- sort
命令用途:按照指定方式进行排序
参数:
	-t		指定分隔符
	-n		根据字符串数值进行比较
	-k		指定那一列开始排序
测试环境:
[root@web01test1]#cat file.txt 
b:3
c:2
a:4
e:5
d:1
f:11


#01、按照第一排进行排序
[root@web01test1]#sort file.txt
a:4
b:3
c:2
d:1
e:5
f:11


#02、按照第二排进行排序
[root@web01test1]#sort -t ":" -n -k2 file.txt
d:1
c:2
b:3
a:4
e:5
f:11
- uniq
命令作用:去除文件中重复的内容
参数:
	-c		#计算重复的数量,显示在第一行
测试环境:
[root@web01test1]#cat file.txt
123
abc
123
abc

#01、去重并统计重复的数量
[root@web01test1]#cat file.txt | sort |uniq
123
abc
[root@web01test1]#cat file.txt | sort |uniq -c
      2 123
      2 abc
- wc

五、Linux文件属性

5.1 文件属性

[root@web01~]#ls -l 1.txt
-rw-r--r-- 1 root root 2 Apr 20 12:27 1.txt

#-rw-r--r--		第一个字符是文件类型,其他的是权限
#1				硬链接的次数
#root			文件属于哪个用户
#root			文件属于哪个组
#2				文件大小
#apr 20	12:27	日期+时间
#1.txt			文件名

5.2 文件类型

文件类型字母含义
-普通文件(文本,二进制,压缩文件,图片,日志等)
d目录文件
b设备文件(块设备)
c设备文件(字符设备)
s套接字文件
l链接文件

5.3 Linux链接文件

(1)Inode和Block

  • Inode:用于记录文件按大小、创建时间、所有者等信息
  • Block:用于记录文件真实的内容

(2)软链接

  • windows的快捷方式
  • 实战
#01、java1.1版本发布
[root@web01~]#mkdir /data/java-v1.1 -p
[root@web01~]#echo "123" > /data/java-v1.1/index.html
[root@web01~]#ln -s /data/java-v1.1 /data/java
[root@web01~]#cd /data/
[root@web01data]#ll
total 2240
lrwxrwxrwx 1 root root      15 Apr 20 14:45 java -> /data/java-v1.1
drwxr-xr-x 2 root root      24 Apr 20 14:44 java-v1.1


#02、发布后网站查看的内容
[root@web01data]#cat /data/java/index.html
123


#03、更新版本java1.2
[root@web01data]#mkdir /data/java-v1.2
[root@web01data]#echo "456" > /data/java-v1.2/index.html
[root@web01data]#rm -f /data/java
[root@web01data]#ln -s /data/java-v1.2 /data/java


#04、查看更新后网站查看的内容
[root@web01data]#cat /data/java/index.html 
456


#05、回退版本后查看
[root@web01data]#rm -f /data/java && ln -s /data/java-v1.1 /data/java
[root@web01data]#cat /data/java/index.html 
123

(3)硬链接

  • 多开一扇门
  • 使用ln创建

六、vim编辑工具的使用

说明:
	vim分为普通模式、编辑模式、末行模式、视图模式及扩展知识
安装:
	yum install -y vim

6.1 普通模式

  • 主要用与光标移动复制、粘贴、删除、替换
#01、命令光标跳转
G		光标跳转到文本结尾
gg		光标移动到文本开头
ngg		滚啊表跳转到当前文件内第n行
$		光标跳转到行尾
0^	光标跳转到行首


#02、翻页
ctrl+f		往下翻页
ctrl+b		往上翻页

#03、复制粘贴
yy		复制光标所在单行
nyy		复制当前光标以及下面的n-1行
p		粘贴至当前光标的下一行
P		粘贴至当前光标的上一行

#04、删除、粘贴、撤销
dd		删除当前所在行
ndd		删除从当行开始的n行
dG		删除当前光标到行尾的内容
D		删除当前光标到行首的内容
x		向后删除一个字符
X		向前删除一个字符
u		撤销一次操作

#05、替换
r		替换当前光标标记的单个字符
R		进入REPLACE模式,连续替换,ESC结束

6.2 编辑模式

  • 进入可编辑的状态
i		#进入编辑模式
a		#进入编辑模式,将当前光标往后一位

o		#进入编辑模式,当前光标下添加一行
O		#进入编辑模式,当前光标上添加一行

A		#进入编辑模式,光标移动到本行行尾
I		#进入编辑模式,光标移动到本行头部

6.3 末行模式

  • 文件保存退出
:w		保持当前状态
:w!		强制保持当前状态
:q		退出不保存
:q!		强制退出
:wq		先保存再退出
:wq!	强制保存退出
:n		跳转到第n行
  • 文件内容查找
/n			#查找文件中含有n的内容
n		#向下翻页
N		#向上翻页
  • 文件替换类
:1,5s#sbin#test#g		将1-5行中的sbin替换为test
:%s#sbin#test#g			将整个文档中的sbin替换为test
:%s#sbin#test#gc		将整个文档中的sbin替换为test,并提示我
  • 文件另存
:w /root/test.txt		将所有内容另存为/root/test.txt中
  • 文件内容读入
:r	/etc/hosts		#插入/etc/hosts的内容到当前光标下
:5r /etc/hosts		#插入/etc/hosts的内容到当前文件中第五行下面

6.4 视图模式

#01、选中一个矩形内容进行操作
ctrl+v	进入可视块模式,选中需要注释的行
1.插入:按shift+i进入编辑模式,输入#结束ESC键
2.删除:选中内容后,按x或者d删除
3.替换:选中需要替换的内容,按下r键,然后输入替换后的内容

#02、选中整行内容进行操作
shift+v	进入可视化模式,选中整行内容
复制:选中行内容后按y键即可复制
删除:选中杭后按d键即可删除

6.5 VIM扩展知识

(1)环境变量

  • 环境变量临时生效
#末行模式操作
:set nu			显示行号
:set ic			忽略大小写
:set ai			自动缩进
:set list		显示制表符
:set no[nu|ic|ai]	取消临时设定的变量
  • 环境变量永久生效
vim ~/.vimrc	#配置局部环境变量
set	nu
set ic
#将内容写到里面可永久生效

(2)vimdiff文件对比

diff		文件对比
vimdiff		vim模式打开两个文件进行对比

(3)vim异常退出解决方法

若异常退出文件test.sh,需要删除同文件名的.swp文件即可
rm -f test.sh.swp
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值