您的位置:首页 > 运维架构 > Linux

Linux基础学习

2019-06-13 07:35 1676 查看

Linux的基本操作

1.课程介绍:

2.什么是操作系统:

3.常见的OS:

win7、Mac、android、ios;

4.unix、minix、Linux的发展:



5.操作系统的发展:


排名

7.查看帮助、安装软件:

man命令:查看外部命令 man ls
help命令:查看内部命令 help if

在虚拟机上搜索软件
apt-cache search<字符串>
在虚拟机上安装软件
sudo apt-get install<软件包名>
在虚拟机上删除软件
sudo apt-get remove 软件名

8.查看文件:

cat + 文件名 只查看文件内容

cat的几种选项:

more命令:(文件较大时使用,分页显示)
more + 文件名
几种选项:
+number,从第number行显示内容
-number,指定屏幕要显示number行
-s,把重复的空行压缩成一个空行
-p,不以翻动的形式显示每一页,先清除整个屏幕再显示文本

less命令:(和more功能类似,但效率更高)
-N,显示行号
-pwant ,在文件中查找匹配what的第一处位置

head命令:用于查看文件的头部内容
tail命令:用于查看文件的尾部内容

9.几种常用命令:

pwd命令:确定当前所在目录的绝对路径
touch +文件名 创建文件
mkdir +文件夹名 创建文件夹
gedit +文件名 打开文件
history 查看已经执行过的命令 (继续执行 “ ! +号” 则执行该号对应的命令)
diff [file1][file2] 比较两个文件的内容
ll 等价于 ls -la 以列表形式显示

10.重定向☆:

重定向分为输入重定向和输出重定向
输出重定向
格式:命令 > +任意文件名
把当前要显示的东西放到文件中

补:cat命令和重定向混合使用有奇效!
格式:cat +文件名 > +任意文件名
将文件内容写入另一个文件(可以用作将两个文件合并!)




从键盘输入实现重定向
cat > cat.txt

输入重定向

错误输出重定向

管道(经常与重定向配合使用)

简单来说,就是利用管道符“|”将两个命令分开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入。

管道与重定向

13.rmdir和rm:

rmdir:删除一个非空文件夹;(如果文件不是非空则删除失败)

rm:删除文件或文件夹;(删除文件夹时追加命令 -r)(-r是递归的意思)

14.软链接、硬链接、grep、cp、mv:

在Linux中的软链接像Windows中的快捷方式,文件用户数据块中存放的内容是另一文件的路径名的指向。实质上就是在磁盘上创建了一个新文件,有自己的文件索引节点和文件内容,内容就是源文件的路径(包括文件名),删除源文件后,软连接失效。
格式: ln -s +文件名 +链接名
创建如下:

:如果文件被删除,则对应的链接无法被打开。

这里普及一下ect文件的inode和block

inode和block的数据存储实例:

目录的inode和block:


硬链接就是同一个文件使用了多个别名(他们有共同的 inode)。

格式: ln +文件名 +链接名
创建如下:

如果文件被删除,对应的链接可以打开

高级处理:

正则表达式
什么是正则表达式?
它描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个子串中取出符合某个条件的子串。正则表达式就是为了处理大量的文本|字符串而定义的一套规则和方法。
通过定义的这些特殊符号的辅助,系统管理员就可以快速过滤,替换或输出需要的字符串。Linux正则表达式一般以行为单位处理。
简单说
1.为处理大量文本|字符串而定义的一套规则和方法
2.以行为单位出来,一次处理一行



☆grep 一个强大的文件搜索命令!

格式:grep +“要搜索的内容”+要操作的文件名

添加选项 -n :显示行数

添加选项 -v :显示除了要查找内容外的所有内容

选项-c:显示匹配的行数
选项-i:匹配时忽略大小写
选项-x:只选择能匹配完整一行的匹配
补:几种限制!
在要查找的内容前+"^“则只显示以查找内容开头的内容

在要查找的内容前+”$"则只显示以查找内容结尾的内容


注:使用grep可以同时查找多个文件最后加+文件后缀*
grep的引号使用总结:

补:linux中怎么用grep提取同时满足两个条件的行?
使用管道!
两个条件都要满足:grep tiaojian1 test.txt |grep tiaojian2
两个条件满足其中一个即可:egrep “tiaojian1|tiaojian2” test.txt

mv:(可以理解为剪切+黏贴)
mv是一个移动文件命令,这里先介绍它的一个有趣的功能
如果是 mv +文件名 +一个未出现过的文件名 则mv的功能是重命名(在同一个目录下)
mv的移动功能: mv +要移动的文件名 +移动到哪个文件

cp:(可以理解为复制+黏贴)
cp 的几种选项:

格式:
cp +文件名 1+文件名2 把文件1中内容复制到文件2中
如果把一个文件夹复制到另一个文件夹则+命令 -r

15.find命令:

(grep是搜索文件的内容,find搜索文件)

常用功能简介:



find可以通过文件类型查找

find命令格式:(如果前面不加sudo有时会提示权限不够)

whereis

locate

文件排序:

sort[选项][文件或目录]

排序后,原文件内容顺序并不改变

16.归档管理tar的压缩和解压缩:

关于tar:

tar打包的代码格式:

☆其中-f必须放在最后!

多了一个打包文件(该文件并没有被压缩)

解开打包文件:

如果想打包并压缩文件:(后缀为.gz 前面加上-zcvf)

可以看到文件明显变小

文件解压:


☆压缩的另几种方式:
bz2:


zip:


文件补丁:

diff命令可以完成比较命令,生成补丁文件
diff [选项] oldfile newfile
-r 对目录进行递归比较
-u 输出统一格式
-N 比较目录时,若一个目录或文件缺失,视为空文件
-a 将所有文件视为文本文件,逐行比较
oldfile 旧文件
newfile 新文件
**>**重定向操作符,将diff的输出结果输出到patchfile中
patchfile 补丁文件,用来存储diff的输出结果
打补丁

17.cal、date、ps、pgrep、pstree、top、htop、kill用法:

**cal:**显示日历

注: cal -y +年份 显示本年度所有月份

使用">"将cal显示的日历打印到test.txt文件中

date: 显示当前时间

date的另一种用法: 用“ + ”

注: date可以用来设置时间

ps: (相当于windows中的任务管理器)


进程的状态:
R正在运行,或等待被系统调度来使用cpu
S休眠
T停止或正在被系统侦测
Z僵死状态

△只查看当前终端下运行的

如果想查看所有运行程序 -aux

pgrep:

pstree:

top: 类似ps (ps是显示固定的,而top是显示动态的不断变化的)

htop: 比top还nb一点

在执行ps以后,如果想删除某个占用cpu过多的项目用kill 命令


如果执行kill 9822没有删除,则执行 kill -9 9822 强制删除 -9表示强制终止

18.关机、重启:

19. df、du、ifconfig、ping:

df -h 查看当前整个硬盘的使用情况:

du -h 查看当前文件有多大

ifconfig 相当于windows中的本地连接,每一个框框相当于一个网卡


lo专门用来测试网络是不是好用的
ifconfig还可以用来修改IP地址

但必须用管理员身份修改

ping: 检测两台电脑之间能否通信(需要知道另一台电脑的IP地址)

成功:

失败:

高级操作:

进程


作业控制


作业控制的几种命令:

删除命令:



进程管理

20、useradd、su、exit、ssh、whoami:

useradd: 添加一个账户(需要管理员权限)
这里,最好使用 sudo useradd -d /home/shuaige -m shuaige

-m的作用,自动在home中给新账户创建一个家目录

可以看到 home 家目录里多了你刚刚创建的账户,如果你想验证一下是添加了一个账户而不是新建了一个文件夹,可以用 cat 命令查看根目录下passwd文件


出现了刚刚添加的shuaige,则表明添加成功。
☆用useradd添加的账户没有设置密码无法登陆,可以用passwd +账户名 给新账户设置密码(需要管理员权限sudo),同时passwd命令还可以账户修改密码!

用su + 账户名 进入新账户(切换账户)

注:用su切换账户时,并没有切换路径,想切换路径 su - shuaige

**但是一般不使用这种方法,因为你不知道root管理员用户的密码,可以使用
sudo - s ,这个命令使你直接变成管理员用户,如果只是sudo,那表示你被允许使用一些管理员才有的权限 **
whoami: 查看当前账户名称

如果想退出账户,用exit回退到切换前的账户

Ubuntu允许多用户多任务
可同时运行多个用户
当然如果这样打开多个任务切换并不方便,同时按shift+ctrl+t可以像打开网页一样同时开启多任务,切换时用ALT+1/2/3

远程操控命令:ssh

who命令查看当前是谁在登陆
如果你使用了ssh远程操控了,会增加一个,后面有地址的是远程登陆,没有地址是当前终端登陆

删除用户操作:

修改用户属性

各种管理员权限命令区别

21.用户组:

查看当前所有用户组的两种方法:
1.cat /etc/group

2.groupmod命令多敲几次tab键

groupadd创建一个新组

groupdel删除一个组

☆如果从一个用户切换到另一个用户后想再切换到管理员用户直接用sudo -s是不可行的

需要添加sudo权限(需要在原账户中添加)

也可以通过/etc/sudoers文件进行授权,使用visudo命令进行编辑
具体方法如下





修改文件所有者(前面是要修改之后的名字,后面是要修改的文件)

修改文件所属组

相关系统文件





22.修改文件权限

格式: chmod[选项][mode] +文件或目录
mode,是权限标记,可以有符号标记和八进制数两种形式

最前面的 - 表示是一个普通文件,如果前面是 d 则代表一个文件夹
r:读 w:写 x:执行

三个重要的字母:u g o(如果没有给定,系统默认为a:所有用户)

修改权限:

如果想一次修改三个

☆一个简单方法:数字法
r---->4
w---->2
x----->1
例:chmod 137 1.txt = chmod u=x, g=wx,o=rwx 1.txt

编辑器:

gedit编辑器(不建议使用)

☆sublime编辑器:(可同时多窗口编辑,是一个真正的跨平台编辑器)
到官网看看(https://www.sublimetext.com/3)

Sublime常用快捷键:

掌握基本的代码编辑器的快捷键,能让你打码更有效率,刚开始可能不大记得住,多敲几次就能熟悉并使用它

精华键 :

Ctrl+Shift+P:打开命令面板
Ctrl+P:搜索项目中的文件
Ctrl+G:跳转到第几行
Ctrl+W:关闭当前打开文件
Ctrl+Shift+W:关闭所有打开文件
Ctrl+Shift+V:粘贴并格式化
Ctrl+D:选择单词,重复可增加选择下一个相同的单词
Ctrl+L:选择行,重复可依次增加选择下一行
Ctrl+Shift+L:选择多行
Ctrl+Shift+Enter:在当前行前插入新行
Ctrl+X:删除当前行
Ctrl+M:跳转到对应括号
Ctrl+U:软撤销,撤销光标位置
Ctrl+J:选择标签内容
Ctrl+F:查找内容
Ctrl+Shift+F:查找并替换
Ctrl+H:替换
Ctrl+R:前往 method
Ctrl+N:新建窗口
Ctrl+K+B:开关侧栏
Ctrl+Shift+M:选中当前括号内容,重复可选着括号本身
Ctrl+F2:设置/删除标记
Ctrl+/:注释当前行
Ctrl+Shift+/:当前位置插入注释
Ctrl+Alt+/:块注释,并Focus到首行,写注释说明用的
Ctrl+Shift+A:选择当前标签前后,修改标签用的
F11:全屏
Shift+F11:全屏免打扰模式,只编辑当前文件
Alt+F3:选择所有相同的词
Alt+.:闭合标签
Alt+Shift+数字:分屏显示
Alt+数字:切换打开第N个文件
Shift+右键拖动:光标多不,用来更改或插入列内容
鼠标的前进后退键可切换Tab文件
按Ctrl,依次点击或选取,可需要编辑的多个位置
按Ctrl+Shift+上下键,可替换行

选择类 :

Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本。
Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑。举个栗子:快速选中并更改所有相同的变量名、函数名等。
Ctrl+L 选中整行,继续操作则继续选择下一行,效果和 Shift+↓ 效果一样。
Ctrl+Shift+L 先选中多行,再按下快捷键,会在每行行尾插入光标,即可同时编辑这些行。
Ctrl+Shift+M 选择括号内的内容(继续选择父括号)。举个栗子:快速选中删除函数中的代码,重写函数体代码或重写括号内里的内容。
Ctrl+M 光标移动至括号内结束或开始的位置。
Ctrl+Enter 在下一行插入新行。举个栗子:即使光标不在行尾,也能快速向下插入一行。
Ctrl+Shift+Enter 在上一行插入新行。举个栗子:即使光标不在行首,也能快速向上插入一行。
Ctrl+Shift+[ 选中代码,按下快捷键,折叠代码。
Ctrl+Shift+] 选中代码,按下快捷键,展开代码。
Ctrl+K+0 展开所有折叠代码。
Ctrl+← 向左单位性地移动光标,快速移动光标。
Ctrl+→ 向右单位性地移动光标,快速移动光标。
shift+↑ 向上选中多行。
shift+↓ 向下选中多行。
Shift+← 向左选中文本。
Shift+→ 向右选中文本。
Ctrl+Shift+← 向左单位性地选中文本。
Ctrl+Shift+→ 向右单位性地选中文本。
Ctrl+Shift+↑ 将光标所在行和上一行代码互换(将光标所在行插入到上一行之前)。
Ctrl+Shift+↓ 将光标所在行和下一行代码互换(将光标所在行插入到下一行之后)。
Ctrl+Alt+↑ 向上添加多行光标,可同时编辑多行。
Ctrl+Alt+↓ 向下添加多行光标,可同时编辑多行。

编辑类 :
Ctrl+J 合并选中的多行代码为一行。举个栗子:将多行格式的CSS属性合并为一行。
Ctrl+Shift+D 复制光标所在整行,插入到下一行。
Tab 向右缩进。
Shift+Tab 向左缩进。
Ctrl+K+K 从光标处开始删除代码至行尾。
Ctrl+Shift+K 删除整行。
Ctrl+/ 注释单行。
Ctrl+Shift+/ 注释多行。
Ctrl+K+U 转换大写。
Ctrl+K+L 转换小写。
Ctrl+Z 撤销。
Ctrl+Y 恢复撤销。
Ctrl+U 软撤销,感觉和 Gtrl+Z 一样。
Ctrl+F2 设置书签
Ctrl+T 左右字母互换。
F6 单词检测拼写

搜索类 :
Ctrl+F 打开底部搜索框,查找关键字。
Ctrl+shift+F 在文件夹内查找,与普通编辑器不同的地方是sublime允许添加多个文件夹进行查找,略高端,未研究。
Ctrl+P 打开搜索框。举个栗子:1、输入当前项目中的文件名,快速搜索文件,2、输入@和关键字,查找文件中函数名,3、输入:和数字,跳转到文件中该行代码,4、输入#和关键字,查找变量名。
Ctrl+G 打开搜索框,自动带:,输入数字跳转到该行代码。举个栗子:在页面代码比较长的文件中快速定位。
Ctrl+R 打开搜索框,自动带@,输入关键字,查找文件中的函数名。举个栗子:在函数较多的页面快速查找某个函数。
Ctrl+: 打开搜索框,自动带#,输入关键字,查找文件中的变量名、属性名等。
Ctrl+Shift+P 打开命令框。场景栗子:打开命名框,输入关键字,调用sublime text或插件的功能,例如使用package安装插件。
Esc 退出光标多行选择,退出搜索框,命令框等。
显示类
Ctrl+Tab 按文件浏览过的顺序,切换当前窗口的标签页。
Ctrl+PageDown 向左切换当前窗口的标签页。
Ctrl+PageUp 向右切换当前窗口的标签页。
Alt+Shift+1 窗口分屏,恢复默认1屏(非小键盘的数字)
Alt+Shift+2 左右分屏-2列
Alt+Shift+3 左右分屏-3列
Alt+Shift+4 左右分屏-4列
Alt+Shift+5 等分4屏
Alt+Shift+8 垂直分屏-2屏
Alt+Shift+9 垂直分屏-3屏
Ctrl+K+B 开启/关闭侧边栏。
F11 全屏模式
Shift+F11 免打扰模式

编辑器之神vim:

用vim新建一个文件后 按a或i才可以开始编写文件,编写完成后按esc退出编写模式再shift+:wq保存并退出

如果出现了下面这种情况,多了一个.4.pyswp文件,这表示在用vim编辑4.py文件时是以非正常的方式关闭,则自动将已经写了但是没有保存的文件保存到缓存文件中

vim基本操作:

vim常用命令




命令入门补充:(命令模式下)
gg 跳转到文件头
G 跳转到文件尾
20G快速定位到20行
gg=G自动缩进 (非常有用)
冒号+行号,跳转到指定行;比如:120,跳转到120行;
$ 跳转到行尾
0 跳转到行首
u 撤销
Ctrl + r 反撤销
M:当前屏幕中间
H:当前屏幕上面
L:当前屏幕下方
w:向后跳一个单词的长度
b:向前跳提高单词的长度
D:剪切本行光标以后的内容
d0:剪切本行光标以前的内容
x:删除当前光标内容
nx删除光标后N个字符
nX删除光标前n个字符
v:
V:选择一片代码
>> 向右移动代码
<< 向左移动代码
.重复执行上一次的命令
r:替换当前光标字符
R:替换当前光标后面的字符
/:查找
shift+z+z 保存退出

软件的下载or卸载

APT

安装与卸载

apt-get install xxx #安装xxx

apt-get remove xxx #卸载xxx

apt-get remove -purge xxx #卸载xxx同时删除配置文件

apt-get update #更新软件信息数据库

apt-get upgrade #进行系统升级,即更新已安装的包

注意:建议经常使用”apt-get update“命令来更新您的软件信息数据库

搭建服务器:

ftp服务器
用于ubuntu和windows之间传递文件

samba服务器
使ubuntu中的文件可以被windows访问,并且可以编辑保存,此时保存到ubuntu服务器上,可实现多用户同时操作,快捷。

这里我用了winscp来传输文件(直接拖动即可)

Shell编程

1、Shell脚本特点:

2、创建一个Shell脚本的步骤:
用VIM创建一个Shell脚本文件,进入文本模式
其中第一行必须有,用来告诉系统应该使用什么Shell来执行此脚本,二三行是注释,echo命令将内容输出到显示器,exit 0用来结束脚本,非0表示一个错误码。
编写完成后可以执行,但此时用户必须有可执行权限
如果不设置用户可执行权限

3、变量


echo命令:

read命令:


例:


4、使用$(command)语法

5、expr命令



环境变量
环境变量是给Linux系统或用户程序设置的一些参数,其作用和具体的环境变量相关,例如“PATH”存储了系统常用命令所在的目录,“HOME”存储的是当前用户的目录。


注:




设置参数变量
set命令的作用是为Shell设置参数变量。许多命令的输出结果是以空格分隔的值,如果需要使用输出结果中的某个域,就可以用到set命令。
set命令运行时,根据环境变量“IFS”设定的“输入域分隔符(一般是空格、制表符和换行符)”将命令command的输出设置为参数列表,而后用户可以通过“$1、$2,…”等取出


test测试命令





Case语句:
这里n只能是字符,不能是数字


if-else语句这里不做详细解释,用一个例子代替

循环结构


一个简单的小例子,打印字符串

对for循环使用ls命令

对for循环使用参数






while循环



break和continue

函数

函数的定义

函数的退出

一个函数调用实例



函数的返回值



一个小例子

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: