学习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移动到这个档案的最后一行(常用)nGn 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)gg移动到这个档案的第一行,相当于 1G (常用)n + Entern 为数字,光标向下移动 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] 亦即是退格键) (常用)nxn 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。dd删除游标所在的那一整行(常用)nddn 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)yy复制游标所在的那一行(常用)nyyn 为数字。复制光标所在的向下 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:当前运行进程的ID USER:进程属主 PR:每个进程的优先级别 NI:反应一个进程“优先级”状态的值,其取值范围是-20至19,一共40个级别。这个值越小,表示进程”优先级”越高,而值越大“优先级”越低。一般会把nice值叫做静态优先级 VIRT:进程占用的虚拟内存 RES:进程占用的物理内存 SHR:进程使用的共享内存 S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数 %CPU:进程占用CPU的使用率 %MEM:进程使用的物理内存和总内存的百分比 TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。 COMMAND:进程启动命令名称