一、vi/vim使用
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式:
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式
底线命令模式:
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
按ESC键可随时退出底线命令模式。
二、yum常用命令
1. 列出所有可更新的软件清单命令:yum check-update
2. 更新所有软件命令:yum update
3. 仅安装指定的软件命令:yum install <package_name>
4. 仅更新指定的软件命令:yum update <package_name>
5. 列出所有可安裝的软件清单命令:yum list
6. 删除软件包命令:yum remove <package_name>
7. 查找软件包命令:yum search <keyword>
8. 清除缓存命令:
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
三、apt 常用命令
列出所有可更新的软件清单命令:sudo apt update
升级软件包:sudo apt upgrade
列出可更新的软件包及版本信息:apt list --upgradeable
升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade
安装指定的软件命令:sudo apt install <package_name>
安装多个软件包:sudo apt install <package_1> <package_2> <package_3>
更新指定的软件命令:sudo apt update <package_name>
显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>
删除软件包命令:sudo apt remove <package_name>
清理不再使用的依赖和库文件: sudo apt autoremove
移除软件包及配置文件: sudo apt purge <package_name>
查找软件包命令: sudo apt search <keyword>
列出所有已安装的包:apt list --installed
列出所有已安装的包的版本信息:apt list --all-versions
四、cd命令
进入上级目录: cd..
进入当前用户主目录: cd~
进入上两级目录: cd../..
进入当前目录: cd.
进入/user/local目录: cd /user/local
五、mkdir命令
新建一个文件夹:mkdir yyTest
新建三个文件夹:mkdir yyTest1 yyTest2 yyTest3
新建一个多层级文件夹:mkdir -p yy/test/cool
新建一个文件夹并设置权限:mkdir -m 777 yycool
六、mv命令
移动当前用户文件夹下的test文件夹,移动到/user/local目录: mv ~/test/ /user/local
移动一个文件test.ini,移动到/user/local目录:mv test.ini /user/local
当前目录的test.gz移动到/user/local目录,并重命名为testtest.gz:mv test.tar.gz /user/local/testtest.tar.gz
移动文件到上级目录:mv test.tar.gz ../
移动两个文件到目录/user/local:mv test1.tar test2.tar -t /user/local
移动test.txt到/user/local下,但/user/local已存在test.txt,强制覆盖:mv test.txt -f /user/local
移动test.txt到/user/local下,但/user/local已存在test.txt,会询问是否覆盖:mv test.txt -i /user/local
七、cp命令
复制文件test.txt到/user/local目录:cp test.txt /user/local
复制文件夹yyTest到/user/local目录:cp -r yyTest/ /user/local
再次复制文件test.txt到/user/local目录,强制覆盖:cp -f test.txt /user/local
再次复制文件test.txt到/user/local目录,询问是否强制覆盖:cp -i test.txt /user/local
复制文件test.txt到/user/local目录,并把修改时间和访问权限也复制:cp -p test.txt /user/local
八、history命令
查看历史命令执行记录:history
查看命令mkdir的历史执行记录:history | grep mkdir
执行历史记录中,序号为1015的命令:!1015
执行上一条命令:!!
查找最后10条历史记录(两种方式):1、history 10 2、history | tail -10
清除历史记录:history -c
将当前所有历史记录写入历史文件中,默认写入~/.bash_history:
history -w
cat ~/.bash_history
九、tar命令
压缩一个文件yyTest.ini:tar -zcvf yyTest.tar.gz yyTest.ini
压缩多个文件:tar -zcvf all.tar.gz yyTest1.ini yyTest2.ini
压缩文件夹yyTest/:tar -zcvf yyTest.tar.gz yyTest/
将当前目录,所有jpg文件打包成yyTestjpg.tar:tar -cvf yyTestjpg.tar.gz *.jpg
将当前目录,所有jpg文件打包成yyTestjpg.tar.gz:tar -zcvf yyTestjpg.tar.gz *.jpg
解压yyTestjpg.tar:tar -xvf yyTestjpg.tar
解压yyTestjpg.tar.gz:tar -zxvf yyTestjpg.tar.gz
十、tail命令
实时刷行log:tail -f test.log
实时刷新最新500条log:tail -500f test.log
显示最后5条log(两种方法):1、tail -n 5 test.log 2、tail -5 test.log
显示第五条后面的所有log:tail -n +5 test.log
十一、ls命令
列出当前目录中所有的字目录和文件(不包含隐藏文件 .开头的):ls
列出当前目录中所有的字目录和文件(包含隐藏文件 .开头的):ls -a
列出文件的详细信息(包含权限、所有者、文件大小等):ls -lll
列出当前目录中所有以“test”开头的详细内容:ls -l test*
按文件最后修改时间排序、降序:ls -t
按文件大小排序,从小到大:ls -S
查看文件大小时增加可读性(1K 2M 2G):1、ls -l -h 2、ll -h
十二、ps命令
查看所有进程:ps -A
查看java进程:ps -ef | grep java
显示所有进程信息,连同命令行:ps -ef
ps与grep常用组合用法,查找特定进程:ps -ef | grep java
显示所有进程更详细的信息,包括进程占用cpu、内存:ps -aux
根据cpu或内存使用来降序排序:1、ps -aux --sort -pcpu 2、ps -aux –sort -pmem
十三、top命令
查看所有进程的资源占用情况:top
监控每个逻辑cpu的状况:top ,按1
高亮显示当前运行进程:top ,按b
显示完成命令:top ,按c
切换显示cpu:top ,按t
按cpu使用率从大到小排序:top ,按p
切换显示memory:top ,按m
按memory占用率从大到小排序:top ,按M
按累计运行时间time从大到小排序:top ,按T
高亮cpu列:top ,按X
彩色高昂显示:top ,按ztop,按shift+z 可以调配色方案
通过“shift+>”或“shift+<”可以向右或左改变排序列:top shift+>或shift+<
忽略闲置和僵死进程,这是一个开关式命令:top ,按1
杀掉进程:top ,按k,输入PID
改变内存的显示单位,默认为KB:top ,按e(针对列表)top,按E(针对头部统计信息)
退出top程序:按q
十四、wget命令
下载isTester.jpg文件:wget http://51.istester.com/isTester.png
下载isTester.jpg文件,并存储名为isTester_Logo.jpg:wget -o isTester_Logo.jpg http://51.istester.com/isTester.png
下载isTester.jpg文件,后台形式下载:wget -b http://51.istester.com/isTester.png
十五、rm命令
删除/root/yyTest/目录下的文件yyTest.ini(系统会询问是否删除):rm /root/yyTest/yyTest.ini
强行删除/root/yyTest/目录下的文件yyTest.ini(直接删除,系统不会提示):rm -f /root/yyTest/yyTest.ini
删除/root/yyTest/目录下的所有.log文件:rm -f /root/yyTest/*.log
删除/root/yyTest/目录下的polo/文件夹:rm -r /root/yyTest/polo/
强行删除/root/yyTest/目录下的polo/文件夹:rm -rf /root/yyTest/polo/
删除/root/yyTest/目录下的所有内容:rm -rf /root/yyTest/*
十六、创建文件的命令
创建一个文件:touch yyTest.ini
同时创建两个文件:touch test1.txt test2.txt
批量创建文件:touch test{0001..2000}.txt
更改文件yyTest.ini时间为当前时间(yyTest.ini已存在):touch yyTest.ini
vi和vim:1、vi test.txt 2、vim touch.txt
直接用>创建空文件:> tets.ini
ls创建文件(将结果写入文件):1、ls > test.ini 2、ls >> test.ini
grep创建文件(将结果写入文件):1、ps -ef | grep java >test.ini 2、ps -ef | grep java >>test.ini
echo创建文件(将结果写入文件):1、echo $PATH > test.ini 2、echo $PATH >> test.ini
使用cat创建文件:1、cat > test.ini 2、cat >> test.ini
十七、head命令
显示文件的前5行(两种方式):1、head -n 5 test.txt 2、head -5 test.txt
显示文件的前100个字符:head -c 100 test.txt
显示文件的第10-20行:head -20 test.txt | tail -10
十八、cat命令
获取test.txt文件所有内容:cat test.txt
无论是否为空行,都显示行号:cat -n test.txt
显示行号,除了空行:cat -b test.txt
连续读取两个文件,按顺序输出:cat test1.txt test2.txt
倒序输出:tac test.txt
十九、nl命令
显示行号,除了空行:1、nl test.txt 2、nl -b t test.txt
无论是否为空行,都显示行号:nl -b a test.txt
行号靠最左显示:nl -n ln test.txt
行号靠最右显示:nl -n rn test.txt
行号靠最右显示,不足位数左边补0:nl -n rz test.txt
二十、more命令
每次显示5行:more -5 test.txt
从第5行开始显示:more +5 test.txt
每次翻页时,先清空屏幕内容:more -5 -p test.txt
若遇到连续两行以上的空白行,合并为一行空白行:more -s test.txt
执行more命令后,常用的操作:
向下滚动一屏:
z
空格键
ctrl+f
向上滚动一屏:
b
ctrl+b
输出文件名和当前行的行号 :f
进入vim编辑器:v
退出more模式:q
二十一、less命令
查看文件:less test.txt
ps查看进程并通过less分页显示:ps -ef | less
显示当前行数的百分比:less -m test.txt
显示当前行数/总行数和百分比:less -M test.txt
显示连续空行为一行:less -s test.txt
进入less模式之后的操作:
g:移动到第一行
G:移动到最后一行
u:向前移动半屏
d:向后移动半屏
f:向后移动指定行数或一屏
b:向前移动指定行数或一屏
j:向下移动一行
k:向上移动一行
q:结束less模式
二十二、find命令
打印操作:find ~/test
查找~/test下的.txt文件:find ~/test -name “*.txt”
在~/test下查找cool文件夹的.txt文件:find ~/test -path “/*cool*/*.txt”
在~/test目录下查找所有的目录:find ~/test -type d
在~/test目录下查找所有的文件:find ~/test -type f
在~/test目录下查找修改时间在5日以内的文件:find ~/test -metime -5
在~/test目录下查找修改时间在3日以内的.txt文件:find ~/test -type f -name “*.txt”-mtime +3
在~/test目录下查找修改时间在5分钟以内的.txt文件:find ~/test -type f -name “*.txt”-mmin -5
在~/test目录下查找修改时间在10分钟以前的文件:find ~/test -mmin +10
在~/test目录下查找所有size=0字节的文件:find ~/test -size 0
在~/test目录下查找所有size<100K的文件:find ~/test -size -100K
在~/test目录下查找所有size>1MB的文件:find ~/test -size +1M
通过编程中的“与、或、非”来搜索:
-a:与,即&&(默认都是与)
-o:或:即||
-not:非,即条件结果取反
在~/test目录下查找文件大小在1kb和10kb内的所有文件:
1、find ~/test -size +1k -size -10k 2、find ~/test -size +1k -a -size -10k
在~/test目录下查找大于1kb或类型为普通文件的文件:find ~/test -size +1k -o -type f
在~/test目录下查找非空文件:find ~/test -not -size 0
在~/test目录下查找文件或目录:find ~/test -type f -o -type d
搜索空文件:find ~/test -empty -type
通过文件所属用户搜索:find ~/test -user root
通过文件所属组group搜索:find ~/test -group root
二十三、last命令
语法格式:last [-n] [-h host] [-t tty] [user ...]
-n:显示多少行数据
-h:指定主机名,或IP
-t:指定tty,tty的名字可以是全称或缩写,例如,last-t03等同于last-t tty03
user:用户名
查看root用户:last root -5
指定tty和打印行数:last -5 -t console
二十四、fuser命令
杀掉进程:fuser -k /dev/pts/0
杀掉进程并询问:fuser –v -I -k /dev/pts/0