出于系统学习的考虑,准备占用比较少的时间学习以下Linux的基础知识以及比较简单的指令,为后面的学习打点基础。关于Linux的作用和发展历程这些个百度上都有,这里就不做什么介绍了,这里主要先说说几个基础的指令。
序号 | 命令 | 对应英文 | 作用 |
① | ls | list | 查看当前文件夹下内容 |
② | pwd | print work directory | 查看当前所在文件夹 |
③ | cd[目录名] | change directory | 切换文件夹 |
④ | touch[文件名] | touch | 如果文件不存在 创建文件 |
⑤ | mkdir[目录名] | make directory | 创建目录 |
⑥ | rm[文件名] | remove | 删除指定文件名 |
⑦ | clear | clear | 清屏 |
小技巧:
Ctrl + Shift + = 放大终端窗口的字体显示
Ctrl + - 缩小终端窗口的字体显示
Linux终端命令的格式
command [-options] [parameter]
说明:
●command:命令名,相应功能的英文单词或者单词缩写
●[-options]:选项,用来对命令进行控制,也可以省略
●[parameter]:传给命令的参数,可以为一个两个或者多个
Linux的命令比较多,常用的命令经过反复使用可以做到熟练掌握,不常用的命令也不需要进行记忆,需要使用时候直接上网进行检索就可以了。
--help:
command --help
输入command指令,加上--help可以显示该指令的帮助信息
man:
man command
查询command使用手册
1.1 终端实用技巧
1、自动补全
在敲出文件/目录/命令的前几个字母之后,按下Tab键:
●如果输入没有歧义,系统会自动进行补全
●如果还存在其他文件/目录/命令,再按一下Tab键,系统会提示可能存在的命令
1.2 ls指令说明
●Linux文件或者目录名称最长可以有256个字符,以.开头的文件为隐藏文件,需要用-a参数才能显示
●.代表当前目录
●..代表上一级目录
创建一个隐形文件夹,ls指令看不见,使用ls -a指令可以显示所有文件,删除后只剩下.和..
1.3 ls常用选项
参数 | 含义 |
-a | 显示指定目录下的所有目录与文件,包裹隐藏文件 |
-l | 以列表的方式显示文件的详细信息 |
-h | 配合-l以人性化的方式显示文件的大小 |
ls -l -h 显示文件大小(首字母d表示是文件夹)=ls -lh
1.3 ls与通配符的使用
通配符 | 含义 |
* | 代表任意个数个字符 |
? | 代表任意一个字符,至少1个 |
[] | 表示可以匹配字符组中的任意一个 |
[abc] | 匹配abc中的任意一个 |
[a-f] | 匹配从a-f中的任意一个 |
(1)*的用法
Linux更新源修改
这几天的这个学习进度比较慢,主要原因是因为我想在Ubuntu上面装一个搜狗输入法,但是这个搜狗输入法又是基于fcitx的(sudo apt-get install fcitx),但是在安装fcitx的过程中一直出现了等待报头的情况,分析原因应该是update的源没有改,操作大概说一下哈,打开终端(Ctrl+Alt+T)
将新的源添加进去:链接https://zhuanlan.zhihu.com/p/142014944
点击保存之后,执行sudo apt-get update,更新一下源即可。
(2)?的用法
这里 ?仅代表一个字符
(3)[]的使用
在这个之前,先讲一下删除当前目录下所有文件的指令:rm -f *
用法也比较简单,没什么说的,记不得的话看一下运行截图。。。
2.切换目录
2.1 cd通配符的使用
命令 | 含义 |
cd | 切换到当前用户的主目录(/home/用户目录) |
cd~ | 切换到当前用户的主目录(/home/用户目录) |
cd. | 保持在当前目录不变 |
cd.. | 切换到上级目录 |
cd - | 可以在最近两次工作目录之间来回切换 |
2.2 相对路径和绝对路径
● 相对路径在输入路径时,前面不是/或者~,表示相对当前目录所在的目录位置
● 绝对路径在输入路径时,最前面是/或者~,表示从根目录/家目录开始的具体目录位置
绝对路径
相对路径
3.创建和删除操作
3.1 touch
●创建文件或者修改文件时间
○如果文件不存在,可以创建一个空白文件
○如果文件已经存在,可以修改文件的末修改日期
可以看到,123.txt的修改日期改变了、
3.2 mkdir
●创建一个新的目录
选项 | 含义 |
-p | 可以递归创建目录 |
新建目录的名称不能与已有目录或者文件的名称同名
主要应用在于需要一次新建多层目录时:
3.3 rm
●删除文件或目录
使用rm命令时候一定要小心,因为rm命令删除文件无法恢复
选项 | 含义 |
-f | 强制删除,忽略不存在的文件,无需提示 |
-r | 递归的删除目录下的内容,删除文件夹时候必须添加此参数 |
与ls指令一样,rm指令也可以使用*通配符
使用-r删除文件夹
可以看出,删除文件夹是一定需要-r指令的,可以用rm -f */rm -r *删除所有文件:
可以看出, rm -f */rm -r *都可以用来删除所有文件,但是如果当前目录下存在其他目录时,rm -f * 就不起作用了(实验证明,只是对目录不起作用,会删除文件,保留目录),必须使用rm -r *.
4.拷贝和移动文件
序号 | 命令 | 对应英文 | 作用 |
1 | tree[目录名] | tree | 以树状图列出文件目录结构 |
2 | cp 源文件 目标文件 | copy | 复制文件或者目录 |
3 | mv 源文件 目标文件 | move | 移动文件或者目录/文件或者目录重命名 |
4.1 tree
选项 | 含义 |
-d | 只显示目录 |
演示:
使用通配符-d:
4.2 cp
● cp命令的功能是将给出的文件或者目录复制到另一个文件或者目录中
选项 | 含义 |
-i | 覆盖文件前提示 |
-r | 若给出的源文件是目录文件,则copy 将递归复制目录下的所有子目录和文件,目标文件必须为一个目录名 |
看一下具体使用,先列出文件
现在我们要把123.txt复制到文件夹/e下面,并且重命名为456.txt
● cp 后面跟上源文件目录和目标目录就可以,意思就是如果不需要更改目标文件的名字,只需要给出原文件的路径和目标文件路径即可,不需要再命名了。。。
使用通配符-i,显示覆盖提示:
如果确定覆盖回车或者y,不覆盖的话键入n
如果说你想要复制一个目录,直接cp是不起作用的,需要带上-r选项
4.3 mv
●mv命令可以用来移动文件或者目录,也可以给文件或者目录重命名
选项 | 含义 |
-i | 覆盖文件前提示 |
利用mv指令将源文件重命名:
mv 源文件 目标文件名 即可 (为了确保不要覆盖文件!! 记得加上通配符-i)
5. 查看文件内容
序号 | 命令 | 对应英文 | 作用 |
1 | cat 文件名 | concatenate | 查看文件内容、创建文件、文件合并、追加文件内容等功能 |
2 | more文件名 | more | 分屏显示文件内容 |
3 | grep 搜索文本文件名 | grep | 搜索文本文件内容 |
●当文件内容比较少,可以在一页上面显示时,cat和more指令没有什么大的区别,主要在文件内容比较多的时候,可以使用more指令,分屏查看内容。
5.1 cat
选项 | 含义 |
-b | 对非空输出行编号 |
-n | 对输出的所有行编号 |
例如,用gedit编辑如下文件并保存:
我们使用cat -b和cat -n指令分别打开这两个文件,示例如下
●在Linux中还有一个nl命令,他和cat -b指令的效果等价
5.2 more
●more命令一般用于分屏显示文件的内容,每次只显示一页内容
●适用于查看内容较多的文本文件
5.3 grep
● Linux系统中的grep命令是一种强大的文本搜索工具
● grep允许对文本文件进行模式查找,所谓模式查找,又被称为正则表达式
选项 | 含义 |
-n | 显示匹配及行号 |
-v | 显示部包含匹配文本的所有行。 |
-i | 忽略大小写 |
● 常用的两种查找模式
参数 | 含义 |
^a | 行首,搜索以a开头的行 |
ke$ | 行尾,搜寻以ke结束的行 |
编辑文件内容,并保存
下面我分别查找以a为开头的行和以c为结尾的行:
6. 其他
6.1 echo文字内容
● echo会在终端中显示参数指定的文字,通常和重定向联合使用
6.2 重定向>和>>
● Linux允许将命令执行结果重定向到一个文件
● 将本应显示在终端上的内容 输出/追加 到指定文件中
其中:
● >表示输出 ,会覆盖文件原有的内容
● >> 表示追加,会将内容追加到已有文件的末尾
这个时候桌面出现了一个文件a,显示内容:
如果是使用>>,则追加在文件末尾: