Linux 基本操作

*
Linux的基础知识*

  1. Linux系统的组成:
    linux内核(linus 团队管理)
    shell:用户与内核交互的接口
    文件系统:ext3、ext4等。windows 有 fat32 、ntfs
    第三方应用软件

  2. Shell的基本知识
    Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器)
    Shell可以执行:
    内部命令
    应用程序
    shell脚本

    利用Shell就可以干下面这些事了:
    命令行解释(这是用得最多的!)
    命令的多种执行顺序
    通配符( wild-card characters )
    命令补全、别名机制、命令历史
    I/O重定向( Input/output redirection )
    管道( pipes )
    命令替换( 或$( ) )
    Shell编程语言( Shell Script )
    Shell的主要版本有以下这么多:

    我们常用(默认)的就是bash(bourne again shell)
    使用ps命令观察正在执行的shell

  3. Linux的基本目录结构:
    Linux 文件系统是一个目录树的结构,文件系统结构从一个根目录开始,根目录下可以有任意多个文件和子目录,子目录中又可以有任意多个文件和子目录

    bin 存放二进制可执行文件(ls,cat,mkdir等)
    boot 存放用于系统引导时使用的各种文件
    dev 用于存放设备文件
    etc 存放系统配置文件
    home 存放所有用户文件的根目录
    lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
    mnt 系统管理员安装临时文件系统的安装点
    opt 额外安装的可选应用程序包所放置的位置
    proc 虚拟文件系统,存放当前内存的映射
    root 超级用户目录
    sbin 存放二进制可执行文件,只有root才能访问
    tmp 用于存放各种临时文件
    usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
    var 用于存放运行时需要改变数据的文件

  4. 通配符
    *:匹配任何字符和任何数目的字符
    ?:匹配单一数目的任何字符
    [ ]:匹配[ ]之内的任意一个字符
    [! ]:匹配除了[! ]之外的任意一个字符,!表示非的意思

  5. 文件的类型:
    普通文件 -
    目录d
    符号链接l

    硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块
    软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径(简单地理解为 Windows 中常见的快捷方式)

    字符设备文件 c
    块设备文件b
    套接字s
    命名管道p

    我们常见的就是普通文件,目录和符号链接。其他的了解一下即可~

  6. 用户主目录
    Linux是多用户的网络系统!所以,我们可以在Linux下创建多个用户,每个用户都会有自己专属的空间。

    所以,在创建用户时,系统管理员会给每个用户建立一个主目录,通常在/home/目录下
    比如:用户osmond的主目录为:/home/osmond
    用户对自己主目录的文件拥有所有权,可以在自己的主目录下进行相关操作。

常用的命令

1. 文件,目录命令:

  • 可用 pwd命令查看用户的当前目录

  • 可用 cd 命令来切换目录

  • .表示当前目录

  • … 表示当前目录的上一级目录(父目录)

  • -表示用 cd 命令切换目录前所在的目录

  • ~ 表示用户主目录的绝对路径名

    绝对路径:
    以斜线(/)开头 ,描述到文件位置的完整说明 ,任何时候你想指定文件名的时候都可以使用

    相对路径 :
    不以斜线(/)开头 ,指定相对于你的当前工作目录而言的位置 ,可以被用作指定文件名的简捷方式

    tips:输入命令的时候要常用tab键来补全

    ls:显示文件或目录信息
    mkdir:当前目录下创建一个空目录
    rmdir:要求目录为空
    touch:生成一个空文件或更改文件的时间
    cp:复制文件或目录
    mv:移动文件或目录、文件或目录改名
    rm:删除文件或目录
    ln:建立链接文件
    find:查找文件
    file/stat:查看文件类型或文件属性信息
    cat:查看文本文件内容
    more:可以分页看
    less:不仅可以分页,还可以方便地搜索,回翻等操作
    tail -10: 查看文件的尾部的10行
    head -20:查看文件的头部20行
    echo:把内容重定向到指定的文件中 ,有则打开,无则创建
    管道命令 | :将前面的结果给后面的命令,例如:ls -la | wc,将ls的结果加油wc命令来统计字数
    重定向 > 是覆盖模式,>> 是追加模式,例如:echo “Java3y,zhen de hen xihuan ni” > qingshu.txt把左边的输出放到右边的文件里去

    巩固知识点:
    (1)Linux的shell程序默认是bash 程序;
    (2)Linux命令格式包含三个部分,分别是: 命令 、 选项 、 参数 ;
    (3)Linux命令选项前为单个减号(-),后面一般为 单字符 ,选项前为双减号(–),后面一般为 单词;
    (4)Linux命令中使用的通配符有 ? * [] ;
    (5)命令 ls /usr/bin/w* 的效果是 列出指定目录下的所有以w开头的文件或目录 ;
    (6)命令 ls /usr/bin/w?? 的效果是 列出指定目录下的以w开头名称长度为3的所有文件或目录 ;
    (7)命令 ls /usr/bin/[xyz]* 的效果是 列出指定目录下的文件名以x或y或z开头的所有文件或目录 ;
    (8)命令 ls /usr/bin/[!a-h]* 的效果是 列出指定目录下的文件名不以a到h区间字母开头的所有文件或目录 ;
    (9)目录操作时,“.” 表示 当前目录 ;
    (10)目录操作时,“…” 表示 上一级目录 ;
    (11)目录操作时,“-” 表示 上一次工作目录 ;
    (12)目录操作时,“~” 表示 用户主目录 ;
    (13)命令ln可以建立文件链接,这种链接分为: 硬链接 和 软链接 ;
    (14)命令touch可以改变文件的三种时间,分别是: access time 、 modify time 、 change time ;

2. 文件打包和压缩
压缩的方式也是有好几种,我们常用的有下面这三种:

gzip
bzip2
tar

常用的压缩的命令就有:

gzip filename
bzip2 filename
tar -czvf filename

常用的解压命令有:

gzip -d filename.gz
bzip2 -d filename.bz2
tar -xzvf filename.tar.gz

3. 正则表达式+grep
在这里插入图片描述
在这里插入图片描述
grep命令
grep(global search regular expression)是一个强大的文本搜索工具。grep 使用正则表达式搜索文本,并把匹配的行打印出来。

格式:grep [options] PATTERN [FILE...]

PATTERN 是查找条件:可以是普通字符串、可以是正则表达式,通常用单引号将RE括起来。
FILE 是要查找的文件,可以是用空格间隔的多个文件,也可是使用Shell的通配符在多个文件中查找PATTERN,省略时表示在标准输入中查找。
grep命令不会对输入文件进行任何修改或影响,可以使用输出重定向将结果存为文件

例子:

在文件 myfile 中查找包含字符串 mystr的行
	grep -n mystr myfile
显示 myfile 中第一个字符为字母的所有行
	grep '^[a-zA-Z]' myfile
在文件 myfile 中查找首字符不是 # 的行(即过滤掉注释行)
	grep -v '^#' myfile
列出/etc目录(包括子目录)下所有文件内容中包含字符串“root”的文件名
	grep -lr root /etc/*

4. Shell 变量和Shell 环境
Shell 变量大致可以分为三类:

内部变量:由系统提供,用户只能使用不能修改。

?
GROUPS

环境变量:这些变量决定了用户工作的环境,它们不需要用户去定义,可以直接在 shell 中使用,其中某些变量用户可以修改。
用户变量:由用户建立和修改,在 shell 脚本编写中会经常用到。

变量赋值(定义变量)
varName=Value
export varName=Value
引用变量$varName

Shell变量的作用域:

  • 局部变量的作用范围仅仅限制在其命令行所在的Shell或Shell脚本文件中;
  • 全局变量的作用范围则包括本Shell进程及其所有子进程。
  • 局部变量与全局变量互换:可以使用 export 内置命令将局部变量设置为全局变量。 可以使用 export
    内置命令将全局变量设置为局部变量。

export命令:

显示当前Shell可见的全局变量
	export [-p]
定义变量值的同时声明为全局变量。
	export <变量名1=1> [<变量名2=2> ...]
声明已经赋值的某个(些)局部变量为全局变量。
	export <变量名1> [<变量名2> ...]
声明已经赋值的某个(些)全局变量为局部变量。
	export -n <变量名1> [<变量名2> ...]

Shell环境变量:
环境变量定义 Shell 的运行环境,保证 Shell 命令的正确执行。
Shell用环境变量来确定查找路径、注册目录、终端类型、终端名称、用户名等。
所有环境变量都是全局变量(即可以传递给 Shell 的子进程),并可以由用户重新设置。
在这里插入图片描述
Shell变量:查询、显示和取消:

显示当前已经定义的所有变量
	所有环境变量:env
	所有变量和函数(包括环境变量) :set
显示某(些)个变量的值
	echo $NAME1 [$NAME2 ……]
取消变量的声明或赋值
	unset <NAME>

Shell环境变量的值是否可以修改?为什么?
答:环境变量的值一般情况下,可以修改。但一定要慎重修改,因为一旦修改错误,对shell正常运行造成严重影响,甚至导致shell无法运行。

VI编辑器
vi 是 “Visual interface” 的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。

vi可以看做成我们Windows下的记事本
vim 即 Vi IMproved,vi 克隆版本之一
使用Vi来编辑文件:
在这里插入图片描述
Vi有三种模式:
在这里插入图片描述
1.普通模式

G用于直接跳转到文件尾
ZZ用于存盘退出Vi
ZQ用于不存盘退出Vi
/和?用于查找字符串
n继续查找下一个
yy复制一行
p粘帖在下一行,P粘贴在前一行
dd删除一行文本
x删除光标所在的字符
u取消上一次编辑操作(undo)

2.插入模式
在 Normal 模式下输入插入命令 i、 a 、 o进入insert模式。用户输入的任何字符都被vim当做文件内容保存起来,并将其显示在屏幕上。

在文本输入过程中,若想回到Normal模式下,按 Esc 键即可。

3.命令行模式
Normal 模式下,用户按冒号 :即可进入 Command 模式,此时 vim 会在显示窗口的最后一行 (屏幕的最后一行) 显示一个 “:” 作为 Command 模式的提示符,等待输入命令。

:w 保存当前编辑文件,但并不退出
:w newfile 存为另外一个名为 “newfile” 的文件
:wq 用于存盘退出Vi
:q! 用于不存盘退出Vi
:q用于直接退出Vi (未做修改)

4.设置Vi环境:

:set autoindent 缩进,常用于程序的编写
:set noautoindent 取消缩进
:set number 在编辑文件时显示行号
:set nonumber 不显示行号
:set tabstop=value 设置显示制表符的空格字符个数
:set 显示设置的所有选项
:set all 显示所有可以设置的选项

在这里插入图片描述
我只是精简了一下,详细内容可以看:
原文:https://zhuanlan.zhihu.com/p/36801617

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值