学习linux操作系统的第一步,就是学会如何打开命令行 — 兹基·硕德
好了不开玩笑了,当我们费劲千辛万苦,在各种报错,重装后终于给电脑装上Linux系统时,最基础的第一步应该是先了解linux命令行下的各种基础命令,方便快速上手,也方便在之后使用服务器(非图形界面)时不至于感到生疏。
打开命令行(终端Terminal)
快捷键:
Ctrl+Alt+T
文件目录操作:
ls:"list"
ls #查看当前目录中的子文件[子文件夹]
ls -F #查看目录中的文件[文件夹后有带/],包括隐藏文件
ls -l #显示文件和目录的详细资料
ls -a #显示所有文件[包括隐藏文件]
最开始的总用量[total]/4表示占用的总block数
第一列(1~10):文件/目录的详细权限:
其中:rwx
,表示读r
,写w
和执行x
,相应位置写上字符就是有权限,-
表示没有权限
1:d
[目录],-
[文件],l
[链接,快捷方式]
2-4:该文件/目录所属用户的权限
5-7: 该文件/目录所属用户组的权限
8-10:其他用户对此文件的权限
第二列:数字表示文件或目录具有的链接数[子目录或文件,包括./
../
]
第三列:表示文件或目录到所有者
第四列:表示文件或目录到所属组
第五列:文件或目录的大小[字节],由于目录不包括其内部的存储内容,所以均为4kb
第六列:最后一次修改的时间
第七列:文件或目录名
cd: "change directory"
cd .. #返回上一级目录
cd ../.. #返回上两级目录[以此类推]
cd #进入个人的主目录/home
cd – #返回上次所在的目录
cat xxx #显示一个文件内的所有内容
pwd #显示当前目录完整的路径
mv:
mv 1.xxx 2.yyy #将1.xxx重命名为2.yyy
mv 1 2 #若文件夹2不存在,将文件夹1重命名为文件夹2,否则将文件夹1移动到文件夹2目录下
ln -s file1 lnk1 #创建一个指向文件或目录的软链接[快捷方式],并重命名为lnk1
mkdir:"make directory"
mkdir dir1 #创建一个叫做 'dir1' 的目录'
mkdir dir1 dir2 #同时创建两个目录
mkdir -p /tmp/dir1/dir2 #创建一个目录及其子目录
mkdir dir{0001..1000} #批量创建文件夹, 从dir0001到dir1000
touch:
touch xxx.xx #创建一个后缀为xx的文件
touch -t 0712250000 file1 #修改一个文件或目录的时间戳 - (YYMMDDhhmm)
touch file{0001..1000}.txt #批量创建文件, 从file0001.txt到dir1000.txt
rename 's/\.txt/\.c/' *txt #批量修改后缀,将后缀为txt到文件修改为后缀为c
echo "xxx xxx">test.txt #将内容“xxx xxx”写入test.txt末尾,若文件不存在则新建一个
rm:"remove"
rm dir1 #删除一个叫做 'dir1' 的目录或文件(目录为空)(文件可不为空)
rm -rf dir1 #删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 #同时删除两个目录及它们的内容
rm -rf /* #删除根目录下所有文件
cp:"copy"
cp dir/* . #复制一个目录下的所有文件到当前工作目录[不包括文件夹]
cp -a dir1/ . #复制一个目录到当前工作目录[包括文件夹]
cp file1 file2 #复制一个文件到当前目录并改名为file2
cp -a dir1 dir2 #复制一个文件夹到当前目录并改名为dir2
find:
find / -name file1 #从 '/' 开始进入根文件系统搜索文件和目录
find /path -name \*.x #在目录 '/path' 中搜索带有'.x' 结尾的文件
文件解压缩操作:
tar zcvf [压缩后到文件(夹)名] [准备压缩的文件(夹)名路径]
tar zxvf [压缩包名] 解压.tar压缩包
rar a file1.rar file1 file2 dir1 #同时压缩 'file1', 'file2' 以及目录 'dir1',整合为 file1.rar
unrar x file1.rar #解压rar包
unzip [压缩包名] 解压.zip压缩包
zip [参数] [打包后的文件(夹)名] [打包的目录路径]
[参数]:
-r 将指定的目录下的所有子目录以及文件一起处理
-m 将文件压缩之后,删除源文件
查看磁盘信息:
df -h #当前被挂载的文件系统信息
du -sh #返回当前目录到大小
du -h #返回当前文件夹下所有子文件大小(包含子文件夹)
vim编辑器:
vim 共分为三种模式,分别是:
命令模式(Command mode)
输入模式(Insert mode)
底线命令模式(Last line mode)
vim [filename] #启动
命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i
,并不会输入一个字符,i
被当作了一个命令。
以下是常用的几个命令:i
切换到输入模式,以输入字符。x
删除当前光标所在处的字符。:
切换到底线命令模式,以在最底一行输入命令。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令
输入模式
在命令模式下按下i就进入了输入模式。
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
vim常用操作:
光标移动方法:
命令 | 注释 |
h 或 向左箭头键(←) | 光标向左移动一个字符 |
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
n[箭头] | 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 “30j” 或 “30↓” 的组合按键 |
Ctrl + f | 屏幕『向下』移动一页,(常用) |
Ctrl + b | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
G | 移动到这个档案的最后一行(常用) |
nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) |
gg | 移动到这个档案的第一行,相当于 1G (常用) |
n + Enter | n 为数字,光标向下移动 n 行(常用) |
搜索替换:
命令 | 注释 |
/word | 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用) |
?word | 向光标之上寻找一个字符串名称为 word 的字符串。 |
n | 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! |
N | 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 |
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词! | |
:n,ms/aaa/bbb/g | 表示将n~m行的aaa全局替换为bbb |
删除,复制与粘贴
命令 | 解释 |
x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) |
nx | n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。 |
dd | 删除游标所在的那一整行(常用) |
ndd | n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用) |
yy | 复制游标所在的那一行(常用) |
nyy | n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) |
p | 将已复制的数据在光标下一行贴上 |
P | 将已复制的数据在光标上一行贴上 |
u | 复原前一个动作,类似Ctrl+z(常用) |
[Ctrl]+r | 重做上一个动作。(常用) |
文件储存、离开等指令:
命令 | 注释 |
:w | 将编辑的数据写入文件中(常用) |
:w! | 若文件属性为『只读』时,强制写入。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊! |
:q | 离开 vi (常用) |
:q! | 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案 |
感叹号 (!) 在 vi 当中,常常具有『强制』的意思 | |
: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 输出的档案信息! |
vim 环境的变更
命令 | 解释 |
:set nu | 显示行号,设定之后,会在每一行的前缀显示该行的行号 |
:set nonu | 与 set nu 相反,为取消行号! |
举个例子:
1.新建一个文本:
2.按i
进入输入模式,随便写一些东西:
3.Esc
退出输入模式,将光标移动到第一行,键入5yy
,复制包括当前行到5行,
将光标移动到行末,键入小写p,粘贴复制的信息到光标所在行以下,操作3次
4.输入大写P
,则粘贴到光标所在行上一行:
5.键入u
,撤回操作,相当于ctrl z
6.:2,10s/this/that/g
表示将2~10行的this 全局替换为 that:
7.键入ZZ
,保存并退出。
Linux top:
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器:
top
第一行:
16:58:37
[当前时间]
up 7:46
[系统运行时间,时:分]
1 user
[当前登录用户数]
load average:0.18,0.06,0.01
[系统负载,即任务队列的平均长度,分别为1,5,15min到现在到平均值]
第二行为进程信息:Task:229 total
[总进程数]1 running
[正在运行到进程数]163 sleeping
[休眠的进程数]0 stopped
[停止进程数]0 zombie
[僵尸进程数]
第三行为CPU信息:%Cpu(S):1.7us
[用户空间占用cpu百分比]0.9sy
[内核空间占cpu百分比]0.0ni
[用户进程空间内改变过优先级到进程占用cpu百分比]97.2id
[空闲cpu百分比]0.0wa
[io等待占用cpu到百分比]0.0hi
[硬中断占用cpu的百分比]0.2si
[软中断占用cpu百分比]
第四行:内存状态
第五行,swap交换分区信息total
: 总计物理内存的大小。used
: 已使用多大。free
: 可用有多少。Shared
: 多个进程共享的内存总额。Buffers/cached
: 磁盘缓存的大小:【缓存的内存量】/【缓冲的交换区总量】-/+ buffers/cached)
:used
:已使用多大;free
:可用有多少。
第七行以下:各进程(任务)的状态监控PID
:当前运行进程的IDUSER
:进程属主PR
:每个进程的优先级别NI
:反应一个进程“优先级”状态的值,其取值范围是-20至19,一共40个级别。这个值越小,表示进程”优先级”越高,而值越大“优先级”越低。一般会把nice值叫做静态优先级VIRT
:进程占用的虚拟内存RES
:进程占用的物理内存SHR
:进程使用的共享内存S
:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数%CPU
:进程占用CPU的使用率%MEM
:进程使用的物理内存和总内存的百分比TIME+
:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。COMMAND
:进程启动命令名称