Linux从安装到使用

Linux特点及哲学思想

1.一切皆文件
2.尽量避免与用户交互
3.使用文本保存配置信息
4.由众多单一,目的单一的小程序完成复杂的任务
程序=指令文件+库+配置文件+帮助文档

shell

终端:人机交互的最后一个界面
shell:人机交互程序
shell提示符:管理员 #,普通用户 $ ,环境变量:env命令

文件与目录管理

Linux目录层级:
①/bin:全局指令文件所在的路径
②/home:普通用户的家目录所在的路径
③/root:超级用户家目录所在的路径
④/boot:内核文件引导目录
⑤/sbin:超级用户才可以使用的指令文件所在的目录,非超级用户使用,需要提权。 sudo
⑥/tmp:临时文件所在的目录 通常情况下30天自动清除
⑦/dev:设备文件所在的目录
⑧/lib /lib64:公共共享库所在路径
⑨/usr:第三方程序所在的目录 相当于windows的program files
⑩/etc:程序配置文件所在的目录
⑪/var:可变文件的目录

三大基本命令

cd :change directory 切换目录
ls:list 打印清单
pwd:print work directory 打印当前工作路径

基本命令及操作

普通文件:-,f 通常情况下无色显示,除了压缩文件(红色)、破损文件(红色)、可执行文件(绿色)
目录文件:路径映射d 通常情况下以蓝色显示
链接文件(符号链接):软连接l 相当于windows快捷方式,通常情况下青色显示
设备文件:字符设备:c 块设备:b 通常情况下黄色显示
套接字文件:s 进程间通信的特殊文件,通常情况下为紫色
命名管道:p fi,fo 颜色为黄褐色

命令操作

引导短格式:- 如ls-a

  1. -a:显示路径隐藏文件
  2. -l:查看文件基本属性信息
  3. -d:查看目录本身相关属性信息
  4. -h:以易于阅读的方式查看文件占用的磁盘空间
  5. -R:以递归显示目录及其子目录以及其下文件
    引导长格式:-- 如–help
    cat 命令:cat [option] file
    [option] 参数 可用-n:显示每行行号
    move:分屏查看文件
    move [option] file
    空格往下翻屏、B键往上翻屏、回车往下翻行,q键退出
    less:分屏查看,操作方法同上,但上下箭头翻行,”/”可以搜索相关内容
    tail [-#]:查看文本文件尾部信息,默认10行
    head [-#]:查看文本文件头部信息,默认10行
    cp :copy复制
    参数:-r 递归复制目录及其内容
    -f:强行复制
    移动:mv 相当于windo剪切
    参数:-f 强行移动 不提示,-r 移动目录及其以下内容
    删除:rm 不触发回收站
    参数 -r: 递归删除 ,-f:强行删除
    touch:创建空文本 也可用于更新时间戳
    mkdir:创建目录
    参数:-p:递归创建目录,-v:可视化创建过程
    stat:元数据属性
    file:查看内容类型
    文本编辑器:gedit(只能在图形使用,字符界面不可使用),vi,nano
    其它命令:
    du[-sh]:disk user 查看文件所占空间
    which:查询指令文件所在的目录
    lscpu:调用CPU的信息文本
    systemctl(重要) service(建议使用) 调用脚本服务启停
    语法:systemctl start 开启/stop 暂停/restart 重启/reload 重载/status 服务名 查看状态

shell的快捷操作

历史命令信息:history命令
Ctrl+c:取消正在执行的命令
Ctrl+l:清屏 相当于命令clear
Ctrl+a:跳至命令行首 相当于HOME键
Ctrl+e:跳至命令行尾 相当于END键
Ctrl+u:光标处删除至最左侧
Ctrl+k:光标删除至最右侧
Ctrl+z:将当前命令送至后台(fg调回命令)
!!执行上一次操作 !加命令开头关键字执行之前的那条命令(也可以接数字,例如!100)
TAB:命令和参数关键字补全 (有时候按两下)
前提条件,输入关键字要唯一

bash shell通配符

文件名通配
*:匹配任意长度的任意字符
?:匹配任意单个字符
[]:匹配指定字符范围内的任意单个字符,不区分大小写
[[:upper:]]:大写字母 简化写法:[A-Z]
[[:lower:]]:小写字母
[[:alpha:]]:所有字母 [a-z]
[[:digit:]]:所有数字 [0-9]
[[:alnum:]]:字母+数字
[[:space:]]:空格
[[:punct:]]:标点符号 特殊字符
[^]:匹配指定字符范围外的任意单个字符
系统管理类命令
init 0 关机
init 6 重启
获取帮助:帮助命令 help man (包括–help) info 命令:获取在线文档
内置命令:
help 命令名
外部命令:
命令 --help
有使用手册
man 命令(先解压后显示)
在线帮助手册
info COMMAND
### 用户与用户组管理,权限
1.超级用户root:权限特别大 uid=0,gid=0
2.普通用户:一般uid>=500.在nbuntu中一般>=1000
3.程序用户:1=<uid<500,服务资源使用,不能登录系统,其shell为 /usr/sbin/nologin
id[username]:获取指定用户 UID,GID
tail /etc/passwd:用户账号文件,是用来保存用户名称,宿主目录,登录shell等基本信息,每一行对应一个用户的账号,一共七段:
第一字段表示用户账号名
第二字段x是密码占位符
第三字段uid编号
第四字段gid编号
第五字段 空:用户备注
第六字段 /home/amber :用户宿主目录
第七字段 /bin/bash:登录的 shell
sudo:用来提升权限
head /etc/shadwo: 用来保存用户的账号密码有效信息,每一行对应一个用户明的密码信息
一共9字段
第一字段:用户名
第二字段:密码
其它字段::最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
用户:资源获取标识符,资源分配,安全权限模型的核心要素之一
密码:用来实现用户认证
添加和删除用户
添加用户命令格式:
useradd [指令] 用户名
-m:强制创建用户家目录
-u:自定义uid
-g:自定义gid,前提是gid已经存在
-M:不创建家目录,系统默认
-s:自定义shell
删除用户语法:
userdel [-r] 用户名
-r:同时删除用户的家目录
给用户设置密码
语法:passwd username
添加组
语法 groupadd [-g]:-g自定义用户组标识符gid,不加-g则按照系统默认创建组,从500开始
查看组:cat /etc/group
权限管理
owner 属主,group 属组,other 其它
权限:read r ,write w ,execute x
对于文件:
r:可以使用内容查看类命令来显示其相关内容
w:可以使用编辑器修改其内容
x:可以发起一个进程/运行程序
对于目录:
r:可以使用ls命令查看目录内容文件信息
w:可以创建,删除文件
x:可以使用ls-l命令查看目录内容的文件信息,并使用cd命令切换到此目录
用户不拥有某权限,则使用-占位
如:r-x 读和执行的权限
使用8进制数表示:
r:4
w:2
x:1
修改文件的属主和属组
chown:可用来修改文件的属主和属组,用.或者:分割,也可单独用来修改属主
格式:chown [-R] username :groupname file,
chown [-R] username file
-R:递归修改
修改文件权限
对连接文件无效
格式:chmod [-R] octal-mode file
操作指定类别用户的权限:使用u 属主,g 属组,o 其它,a 所有 来赋权,可以用u=rwx 赋值权限 ,u+r 加上权限, u-w 取消权限来进行操作,或者用3位8进制数表示 000表示 属主属主其它 都没有权限,777表示属主,属组,其它都有r=4,w=2,x=1权限。
归档和压缩
压缩和解压只针对文档不包括目录,不会保留原文件
gzip [x] 压缩文件后缀名为 .gz
使用gunzip 或者gzip -d 解压
bzip2 [x] 压缩文件后缀为.bz2
使用bunzip2 或bzip2 -d 解压
-x为1-9,压缩级别,x越大压缩级别越高,默认为6
归档和解档 会保留源文件
归档格式:tar -选项 归档文件名 源文件或目录
释放归档格式:tar -选项 归档文件名 [-C 目标目录]
选项:
-f:必选且放在最后
-c:创建新的归档
-x:释放归档
-z:归档,释放归档的同时进行gzip压缩解压
-j:归档,释放归档的同时进行bzip2进行压缩解压
-v:可视化
创建连接
创建连接不对源文件有任何影响,但源文件移动破损删除之后连接就会无效
格式:ln -s
-s:创建软连接
测试网络连通性
格式:ping
-c:指定次数
-W:指定超时时间
安装程序
安装和卸载2进制deb包
1.dpkg 不推荐使用,不能很好解决包与包的依存关系
安装:dpkg -i deb 包名
-i:–install
卸载:dpkg -r deb [-P] 包名
-r:remove
-P:–purge 同时删除相关配置文件
查询已安装的包
dkpg 选项 包名关键字
选项:
–info:查看指定软件的详细信息
-l:查询软件包简明信息,不指定则查询系统内所有软件
-L:查询程序安装生成的目录和文件
-S:查询文件是由哪个安装包安装生成的
2.apt-get 推荐
需要联网,而且需要连接到系统指定的镜像站点。系统指定的资源站点保存在 /etc/apt/source.list中,为外国站点需要修改为国内。通常需要更新站点资源列表
构建apt-get步骤:
先切换桥接模式,过一会ping www.baidu.com
cd /etc/apt
sudo cp sources.list sources.list.bak
sudo gedit sources.list
sudo apt-get update
安装:apt-get [-y] install 包1名关键字 包2名关键字…
-y:自动回应 yes
卸载:apt-get [-y] remove [–purge] 包1名关键字 包2名关键字…
–purge :卸载同时删除配置文件
卸载程序及其依赖程序包 apt autoremove 包1名关键字 包2名关键字
更新软件列表:apt-get update
更新软件:apt-get upgrade
安装xhell 和lrzsz
1.ssh协议:远程连接协议 安装xshell工具,并进行连接
apt-get -y install openssh-serber
连接:在xhell里输入 ssh和ip进行连接
2.安装文件传输工具 lrzsz
在Linux系统内,可以基于ssh协议使用lrzsz工具进行远程文件传输,大部分情况可替代FTP
apt-get -y install lrzsz
Linux操作系统上安装ipython和jupyter
ipython:属于交互式的加强型python解释器, ①支持变量自动补全,自动缩进
②内置很多功能模块和函数(很好用)
③可以灵活的嵌入shell解释器

Jupyter:基于web程序的交互式笔记本,功能特别强大。
支持运行 40 多种编程语言,支持实时代码,编写出漂亮的代码文档。
可以把代码、图像、注释、公式、作图集于一体,实现可读性数据分析的灵活的工具,
用途为数据转换、数值模型、数据统计分析、机器学习等
安装 :apt-get -y install ipytho3
①开启ipython和jupyter
在ubuntu系统内开启ipython,需要先安装ipython解释器程序,然后在bash界面输入ipython3命令即进入ipython环境。
jupyter安装配置—>步骤…
jupyter-notebook --generate-config
jupyter-notebook password 设置密码
安装步骤:①:使用apt-get安装jupyter-notebook sudo apt-get –y install jupyter-notebook
②:对jupyter进行全局预配置 sudo jupyter-notebook --generate-config
③:为jupyter设置登录密码 sudo jupyter-notebook password
④:指定可以登录jupyter的网络地址并且进行登录 例如:sudo jupyter-notebook --allow-root --ip=0.0.0.0 (全部网络)
⑤:使用浏览器进行登录验证,不要使用360浏览器。ip地址+8888

    **

文本处理工具

**
grep支持正则表达式,需要加转义符,egrep支持正则表达式,不用加转义符,fgrep 不支持正则表达式

  1. grep:[选项] 模式 文件名
    -v:反向匹配,显示不能被匹配到的行
    -o:仅显示匹配到的字符,而不是一整行
    -q:静默模式,匹配到匹配不到不显示
    可以用 echo $?查询,结果为0是匹配到,结果为1是未匹配到
    -i:不区分大小写
    -E:支持拓展 相当于egrep

2正则表达式
.:任意单个字符
[ ]:指定范围内的任意单个字符
[0-9],[[:digit:]]:0-9数字
[a-z],[[:lower:]] :小写字母a-z
[A-Z],[[:upper:]]:大写字母A-Z
[a-Z],[[:alpha:]] :所有字母
[0-Z],[[:alnum:]] :字母+数字
[],[[:space:]] :空格
[[:punct:]] :标点符号
[^]:指定范围外的任意单个字符
次数匹配
*:任意次

.*:任意长度任意字符

?:前面字符出现0次或者1
+:前面字符至少出现一次
{m}:匹配m次
{m,n}:匹配至少m次,至多n次
{m,}:至少m次
{,n}:最多n次
egrep:扩展正则表达式,可以不用加转义符\如:
{m,}:至少m次
位置锚定:用于指定字符出现位置
^:锚定行首
$:锚定行位
^ $:空白行
文本处理类命令
wc : word count

wc [option] [file]

-l:统计行数
-c:统计字节数
-w:统计单词数
tr:转换或删除字符,tr 集合1 集合2,必须使用管道
转换字符:会把第一个字符集对应转换为第二个字符集
-d:删除出现过的字符集
cut:根据制定的分隔符切片,并显示出需要显示的片
-d:指定分隔符
-f数字:指定要显示的字段{
单个数字:一个字段
多个离散字段:逗号分隔
多个连续字段:用-分隔
}
sort:按字符进行比较(默认比较码值)
格式:sort [option] file
-f:忽略大小写
-n:对数字进行排序
-t:指定分隔符
-k数字:指定分隔后进行比较字段
-u:重复的行,只显示一行
2:管道操作
管道:后面指令在前面的指令基础上执行
指令1 | 指令2 |指令3…
cd ls find…不支持管道
3:find命令
find不支持管道操作,可以使用xargs命令强行驱动
查找条件
语法:

find [option]...[查找路径] [查找条件] [处理动作作]

处理动作:
-print:默认动作,输出到屏幕
-ls:类似 ls -l命令
-delete:查找出然后删除
查找条件:
根据文件名:
-name:文件名称,支持使用通配符
-iname:文件名,不区分大小写
根据属主,属组查找:
-user:查找属主为指定用户的文件
-group:查找属组为指定用户的文件
-uid:查找属主为指定uid的文件
-gid:查找属主为指定gid的文件
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
根据文件类型查找:
-type :
f:普通文件
d:目录文件
l:符号链接文件
s:套接字块文件
b:块设备文件
c:字符设备文件
p:管道文件
组合条件
与:-a
或:-o
非:-not
根据文件大小查找:
-size [±] 单位
+/-表示大与和小于,不写表示等于
单位有K,M,G
根据时间戳:
参数 [+/-] 数值
参数有:
-atime/min:最近访问时间
-mtime/min:最近更改时间
-ctime/min:最近改动时间
+/-为大与,小于多少天或者分钟
根据权限查找:
-perm [+/-] 数值

重定向操作

黑洞 : /dev/null 数据文件进去就消失
1.输入重定向< (覆盖)<<(追加)
标准输入状态码 stdout 0
2.输出重定向> (覆盖) >>(追加)
标准输出状态码 stdout 1
标准错误输出 stdout 2
混合输出 &,包括正确,错误两种状态码
echo打印输出命令
-n : 不换行
-e:允许后面的输出进行转义
\n:换行
\t:插入 tab

vi编辑器

使用格式
vim [option] 文件名
模式切换
编辑模式-输入模式
i:在当前光标处输入内容
I:在当前光标行首
a:在当前光标所处后面
A:在当前光标行尾
o:在当前光标所在行下新增空白行
O:在当前光标所在行上新增空白行
输入模式–编辑模式:ESC
编辑模式–末行模式:用:号
末行模式-编辑模式:ESC ESC
输入模式不能与末行模式切换
退出
:q! 强制退出,不保存
:wq 修改保存并保存
:w 保存不退出
:x 保存退出
编辑模式:zz,保存并退出
打开
多文件跳转
:next 下一个
:prev 上一个
:first 第一个
:last 最后一个
:wqall 修改并退出多个文件
分窗口打开多个文件
-o:水平分隔
ctrl+w 上下箭头
-O:垂直分隔
ctrl+w 左右箭头
+#:打开文件后的第#号行首
+:打开文件后在最后一行
光标移动
单字符移动:h,i,j,k:左右上下
行内移动:0,^,$:绝对行首,第一个非空白字符,绝对行尾
行间移动:
#G /#gg:第几行
G:最后一行
编辑操作
x/r:删除/替换光标所在字符
d^/d $:删除光标前/后的字符
dd:删除一行
#dd:删除所在行的后#行
y:复制
yy:复制当前一行 p:粘贴
#yy:复制#行
#u:撤销操作(近50次)
ctrl+r :返回撤销
翻屏:
ctrl+f:向文件尾部翻一屏
ctrl+b:向文件首部翻一屏
ctrl+d:向文件尾部翻半屏
ctrl+u:向文件首部翻半屏
Enter:下一行
k :上一行
查找:
/keyword
?keyword
n:往下翻查找的结果
N:往上翻查找的结果
支持正则表达式
vim的可视化模式
编辑模式:
v:按照光标走过的区域选择
V:选择矩形行
vim可视化模式:
v: 按光标走过的区域选择
V: 选择矩形行
ctrl+v:选择矩形块
末行模式:
.:表示当前一行
$:表示最后一行
$-2:表示到数第三行
d:删除
c:改变
y:复制
s:替换
set nohlsearch 关闭高亮显示,对当前shell有效
打开多个文件,分窗口:
vim -o
vim -O
Ctrl+w, 上下箭头

分割当前窗口:
Ctrl+w, s
Ctrl+w, v

窗口属性的定义:
:set nu 输出行号
:set nonu
:set ai 自动缩进(其他发行版本)
:set shiftwidth=4 设置自动缩进空格数为4(ubuntu系统)
:set softabstop=4 设置制表符宽度为4
:set ic 查找时不考虑大小写
:set noic 查找时考虑大小写
显示对应的括号
:set sm (show match)
:set nosm
语法高亮:
:syntax on
:syntax off
搜索高亮:
:set hlsearch
:set nohlsearch
vim的配置文件:
全局:/etc/vimrc
个人:~/.vimrc
查找替换:
:地址定界s/查找模式/替换为的内容/gi
g:全局替换
i:不区分大小写
:地址定界s@查找模式@替换为的内容@gi
&:用于在替换为的内容部分中引用前面匹配到的所有内容
末行模式的替换:
:1,$s/^【#]
vim编辑器不能同时打开两次或以上,否则会出现交换文件

shell脚本

shell程序:调用二进制程序,解释执行
编程语言:
低级:汇编语言
高级:高级语言>编译/解释器>目标/机器代码
shell 编程执行模式
顺序,循环,选择
结构:
变量,数组
表达式
语句
shell 脚本:文本文件,已.sh结尾
将要执行的命令按顺序保存在文本中,给文件相应的权限即可执行
**脚本结构:**脚本申明(如:#!/bin/bash)+注释 +可执行语句
已#!/bin/bash为脚本注释时,可以给文件赋予执行权执行,也可以在在文件执行前加sh或bash执行,执行python类文件也是如此,需要写相应的python脚本申明
bash -x/path/to/script :单步执行
bash -n /path/to/script :检查语法是否错误
变量
''单引号:强引用,会把单引号中的变量名当成普通字符型
""双引号:弱引用,会识别双引号中的变量名

``反引号:命令替换,可以把命令的执行结果进行赋值引用

变量替换:${变量名} 通常情况下大括号可以省略 如果变量名后面要跟如下内容:非小写字符串(包括大小字符串)、数字或下划线,那么变量名就一定要用大括号包起来
变量赋值:变量名=值(中间不能有空格)
引用变量: $变量名
特殊变量:
$?:上一条语句执行状态,返回0表示成功,1和其它表示失败
$#:所有参数的总和
$*:列举所有参数

变量的字符运算expr

bash shell 不支持浮点数
-i:整数类型
运算
let varname=算术表达式

varname=$[算术表达式]
varname=$((算术表达式))
操作符:+,-,*,/,%:加减乘除取余,除法运算结果有小数会被抹掉

还有+=,-=,*=,/=,++,-- 操作运算符
for循环
for name in 列表;do
循环体
语句1
语句2

done(已done结尾)
seq:遍历元素
a in {1…5}表示a在1到5包括5
read -p :交互式脚本(相当于input )
条件判断
[ 条件判断表达式 ](左右两边至少一个空格)
文件或目录测试
格式 [ 选项 文件或目录 ]
选项:
-d/f/:测试是否为目录/文件
-e/r:测试文件是否存在/是否有读权
数值比较
格式:
[ 数值1 操作符 数值2 ]
操作符:
-gt:大与
-ge:大与等于
-eq:等于
-le:小于等于
-lt:小于
&&:且,表示and
||:或,表示or
if语句
if 条件判断表达式;then
执行语句1
elif 条件判断表达式;then
执行语句2
else
执行语句n
fi (用来结束if)
执行状态返回值
bash:0 成功,非0 失败
$? 查看最后一条命令状态返回值
exit [数值]:自定义脚本状态返回h值
case语句
case 变量引用 in
条件1)
执行语句1
;;
条件2)
执行语句2
;;

*)
执行语句n
;;
esac(表示结束case)
while 循环
while 条件判断语句;do
循环体
done(已done结尾)
until循环
和while相反:条件不成立则循环
函数
[funtion] 函数名(){
执行语句
[返回值]
}
调用方法:
函数名 :[参数1] [参数n]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值