实验一 Linux Shell及vi使用
Linux基础
一、各类终端
超级终端:Ctrl+Alt+F6
恢复正常使用的界面:Ctrl+Alt+F1
普通终端:Ctrl+Alt+t
二、终端内容
yang@yang-Legion-Y7000-2019-PG0:~$
yang:用户名;
yang-Legion-Y7000-2019-PG0:主机名;
~:home目录
$:命令提示符
ls:以列表方式罗列出当前目录的文件
强行停止当前正在执行的命令或程序:Ctrl+C
关机命令:在终端窗口,输入命令poweroff
shell命令
1. ls命令
ls
最常用的参数有三个: -a -l -F。
ls -a:Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到,而用ls -a除了显示一般的文件名外,连隐藏文件也会显示出来。
ls -l:该参数显示更详细的文件信息。
ls -F:使用这个参数表示文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示链接文件。
2. cd命令
cd
用于切换用户当前工作目录
cd dir :进入dir目录
cd :命令后不指定目录,切换到home目录
cd ~:切换到home目录
cd -:退回切换前的目录
cd …:返回到上一级目录
3. pwd命令
pwd
用于显示用户当前的工作目录
4. mkdir 和rmdir命令
mkdir 和 rmdir
mkdir:创建目录
rmdir:删除目录
-p参数:
对于mkdir命令,若指定路径的父目录不存在则一并创建;
对于rmdir命令,则删除指定路径的所有层次目录,如果文件夹里有内容,则不能用rmdir命令。
5. cp命令
cp
复制命令
复制一个文件到另一个目录:
cp 1.txt ///test2
复制一个文件到本目录并改名:
cp 1.txt 2.txt
复制一个文件夹a并改名为b:
cp -r a b
- mv命令:
mv
将一个文件移动到另一个目录:
mv 1.txt ../test1
将一个文件在本目录改名:
mv 1.txt 2.txt
将一个文件一定到另一个目录并改名:
mv 1.txt ../test1/2.txt
7. rm命令
rm
rm命令用于删除文件,与dos下的del/erase命令相似,rm命令常用的参数有三个:-i,-r,-f。
–i :系统在删除文件之前会先询问确认,用户回车之后,文件才会真的被删除。需要注意,linux下删除的文件是不能恢复的,删除之前一定要谨慎确认。
–r:该参数支持目录删除,功能和rmdir命令相似。
–f:和-i参数相反,-f表示强制删除
8. du、df命令
du df
-
du命令可以显示目前的目录所占用的磁盘空间,df命令可以显示目前磁盘剩余空间。
-
如果du命令不加任何参数,那么返回的是整个磁盘的使用情况,如果后面加了目录的话,就是这个目录在磁盘上的使用情况。
du -hs 指定目录 查看指定目录的总大小
du -hs ./* 查看当前目录下的所有文件夹和文件的大小
9. cat命令
语法格式
cat [-AbeEnstTuv] [--help] [--version] fileName
参数说明:
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
10. echo命令
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:
echo string
- 显示普通字符串
- 显示转义字符
- 显示变量
- 显示换行
- 显示不换行
- 显示结果定向至文件
- 原样输出字符串,不进行转义或取变量(用单引号)
- 显示命令执行结果
vi的使用
基本上vi/vim分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
用户刚刚启动vi或者vim就进入了命令模式。
命令模式
此状态下,用户只能输入命令,却不能改变文本内容,常用的命令有:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。
此时,在插入模式下输入了文本的内容
插入模式
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
-
字符按键以及Shift组合,输入字符
-
ENTER,回车键,换行
-
BACK SPACE,退格键,删除光标前一个字符
-
DEL,删除键,删除光标后一个字符
-
方向键,在文本中移动光标
-
HOME/END,移动光标到行首/行尾
-
Page Up/Page Down,上/下翻页
-
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
-
ESC,退出输入模式,切换到命令模式
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
- q 退出程序
- w 保存文件
例如:
此时编写好一个cpp文件,此时使用底线命令模式:wq保存并退出,然后编译执行,得到如下结果:
其他常用命令
摘自
菜鸟教程
1.删除复制与贴上
命令 | 功能 |
---|---|
x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) |
nx | n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。 |
dd | 删除游标所在的那一整行(常用) |
ndd | n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用) |
d1G | 删除光标所在到第一行的所有数据 |
dG | 删除光标所在到最后一行的所有数据 |
d$ | 删除游标所在处,到该行的最后一个字符 |
d0 | 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符 |
yy | 复制游标所在的那一行(常用) |
nyy | n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) |
y1G | 复制游标所在行到第一行的所有数据 |
yG | 复制游标所在行到最后一行的所有数据 |
y0 | 复制光标所在的那个字符到该行行首的所有数据 |
y$ | 复制光标所在的那个字符到该行行尾的所有数据 |
p, P | p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用) |
J | 将光标所在行与下一行的数据结合成同一行 |
c | 重复删除多个数据,例如向下删除 10 行,[ 10cj ] |
u | 复原前一个动作。(常用) |
[Ctrl]+r | 复原前一个动作。(常用) |
. | 不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用) |
2 .一般模式切换到指令行模式的可用的按钮说明
命令 | 功能 |
---|---|
:w | 将编辑的数据写入硬盘档案中(常用) |
:w! | 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊 |
:q | 离开 vi (常用) |
:q! | 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。 |
:wq | 储存后离开,若为 :wq! 则为强制储存后离开 (常用) |
ZZ | 这是大写的 Z 喔!如果修改过,保存当前文件,然后退出!效果等同于(保存并退出 |
ZQ | 不保存,强制退出。效果等同于 :q! |
:w [filename] | 将编辑的数据储存成另一个档案(类似另存新档) |
:r [filename] | 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面 |
:n1,n2 w [filename] | 将 n1 到 n2 的内容储存成 filename 这个档案。 |
:! command | 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息! |