Linux 刚出世时没有什么图形界面,所有的操作全靠命令完成,就如同电视里的黑客那样,充满了神秘与晦涩。近几年来,尽管 Linux 发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux 命令行的应用还是占有非常重要的席位,而且许多Linux功能在命令行界面要比图形化界面下运行的快。可以说不会命令,就不算会 Linux。
最常用的基础命令:
- 在敲出 文件/目录/命令 的前几个字母之后,按下 tab 键如果输入的没有歧义,系统会自动补全如果还存在其他 文件/目录/命令,再按一下 tab 键,系统会提示可能存在的命令
- 按 上/下 光标键可以在曾经使用过的命令之间来回切换
- 如果想要退出选择,并且不想执行当前选中的命令,可以按 ctrl c
终端命令格式:
command [-options] [parameter]
说明:
- command:命令名,相应功能的英文单词或单词的缩写
- [-options]:选项,可用来对命令进行控制,也可以省略
- parameter:传给命令的参数,可以是 零个、一个 或者 多个
其他常用命令:
1. 启动终端: ctr alt t
2. 终端字体放大: ctr shift ' ',终端字体缩小: ctr '-'
3. ls: 查看当前目录下的文件信息
4. pwd: 查看目录所在的路径
5. touch: 创建文件
6. mkdir: 创建文件夹
7. rmdir: 删除文件夹,提示:只能是空文件夹
8. rm: 默认删除的是文件,如果删除文件夹需要加上-r选项,-r:以递归的方式把文件夹下的所有文件信息删除掉
9. cd:切换目录
9.1 cd 目录名 : 切换到指定目录
9.2 cd .: 切换到当前目录
9.3 cd ..: 切换到上一级目录
9.4 cd ~: 切换到当前用户的目录
9.5 cd: 等价与cd ~ 切换到当前用户的目录
9.6 cd -: 切换到上一次目录
10. 绝对路径: 从根目录算起的路径叫做绝对路径,比如: /home/python
11. 相对路径: 从当前目录算起的路径叫做相对路径, 比如: ./AAA ../BBB
12. 路径的使用总结: 如果离当前目录近使用相对路径,如果离根目录近使用绝对路径,如果进入的是中间目录建议使用绝对路径
13. 自动补全: tab键
14. cp: 拷贝
14.1 cp 文件名 路径: 把文件拷贝到指定路径
14.2 cp 路径/文件名 路径: 把指定路径的文件拷贝到指定路径
14.3 cp 文件名 路径/新的文件名 : 先把文件拷贝到指定目录然后再重命名
14.4 cp 文件夹 路径 -r: 拷贝文件夹 -r:以递归的方式把文件夹下的所有文件拷贝过去
15. mv: 移动(剪切)
15.1 mv 文件名 路径: 把文件移动到指定路径
15.2 mv 路径/文件名 路径: 把指定路径的文件移动到指定路径
15.3 mv 文件名 新的文件名: 重命名
15.4 mv 文件夹 路径: 把文件夹移动到指定目录,不需要加上-r
16. tree: 以目录树方式显示当前文件夹信息
16.1 tree / : 以目录树方式显示指定路径的文件信息
17. 命令的格式
17.1 命令名 选项 参数, 提示:有些命令选项可以放到参数的后面,但是:scp 选项必须要放到命令名的后面
18. ls 选项
21.1 -l: 以列表的方式取显示
21.2 -a: 显示隐藏文件
21.3 -h: 显示文件大小的单位
21.4 ll: ls -al 显示隐藏文件并且以列表方式显示 , l->ls
19. mkdir 选项
22.1 -p: 把依赖文件夹提取创建好,比如: mkdir 123/456/789 -p
20. rm选项
23.1 -r: 以递归的方式删除文件夹里面的所有内容
23.2 -i: 显示删除的时候提醒信息
23.3 -v: 显示删除后的描述信息
23.4 -d: 删除空目录
23.5 -f: 如果文件或者目录存在则删除,否则就不删除也不会报错
21. cp选项
24.1 -i:拷贝文件的时候如果指定目录有该文件需要显示提醒信息
24.2 -v:显示拷贝文件的路径描述
24.3 -r:以递归的方式拷贝文件夹里面的所有内容
22. mv选项
25.1 -i:移动文件显示提醒信息
25.2 -v:显示移动后的路径描述
23. 重定向(>,>>): 在终端显示的内容信息重写规定方向,保存到指定文件里面,以后查看数据是文件查看就可以了
23.1 > :如果文件不存在,那么先创建,否则会先把原有文件的数据清空然后再写入
23.2 >> : 在原有数据的基础上进行追加
23.3 总结: ls, cat, tree都可以使用重定向
24. gedit:文本编辑工具,可读可编辑
25. cat: 内容在终端显示,不能进行编辑,提示:适合查看小型文件,大型文件使用分屏方式显示(more)
26. more:分屏显示
29.1 f:表示下一页
29.2 空格:表示下一页
29.3 回车: 表示下一行
29.4 b:表示上一页
29.5 q:退出
27. 文件合并
cat 1.txt 2.txt > 3.txt
28. 管道: 可以理解成是一个容器,存放在终端显示的内容
28.1 总结: ls /bin | more , cat, tree, ls都是可以结合管道使用完成分屏显示的
29. 链接ln
29.1 -s软连接:可以理解成快捷方式,把原文件删除掉通过软链接无法打文件的数据, 提示:创建软连接不会对硬链接数加1
29.2 硬连接: 同一个数据有多个文件名在使用,某个文件删除掉,还可以通过其它文件名访问这个文件的数据, 提示:创建硬链接硬链接数会加1
29.3 提示:如果创建的软链接没有和原文件在同一个目录里面,那么需要使用绝对路径创建软连接
30. grep: 根据指定的内容在文件中进行查找
30.1 grep "a" 8.txt : 根据指定内容在文件中进行查找
30.2 -n:行号, -i:忽略大小写 -v: 取反
30.3 总结: ^,$ [], . 支持的正则表达式
31. find:在指定目录查找对应的文件
31.1 find . -name ".txt": 在当前目录查找后缀是.txt的文件, -name根据文件名查找
31.3 find . -perm 666: 在当前目录查找文件权限是可读可写的, -perm根据权限查找
31.3 总结: ? [] 支持的通配符
32. ls:支持的通配符: _,? , [], []:表示匹配任意列举中的一个字符
33. 通配符: ? _ [],起到了模糊查询的作用
34. tar: 打包、压缩、解包、解压缩
34.1 打包 tar -cvf test.tar *.txt, -c: 表示要打包, -v:显示文件打到包里面 -f:表示文档名称,提示-f必须放到所有选项的后面
34.2 解包 tar -xvf test.tar , -x:表示解包
34.3 打包及压缩合并的命令:tar -zcvf test.tar.gz *.txt
34.4 解压缩及解包合并的命令:tar -zxvf test.tar.gz ->得到对应的文件
34.5 指定解压缩的路径 tar -zxvf test.tar.gz -C ../BBB, -C:指定解压缩后的路径
34.6 tar -jcvf test.bz2 *.txt -> test.bz2
34.7 tar -jxvf test.bz2 -> 得到对应的文件
34.8 -C: 指定解压缩的路径: tar -jxvf test.bz2 -C ../BBB
35. zip的压缩及解压缩
35.1 zip test *.txt -> test.zip ,提示:压缩包的后缀不需要指定默认是.zip
35.2 unzip test.zip -> 得到是压缩包里面的文件
35.3 unzip -d ./123 test.zip -> 解压到指定路径 , -d:表示解压的路径
36. chmod:修改权限
36.1 -r(4):可读 -w(2):可写 -x(1):可执行
36.2 u:当前用户 g: 同组用户 o: 其它用户 a:所有用户
36.3 :添加权限, -:撤销权限 , = : 赋值权限
36.4 chmod 000 1.txt : 全部没有权限
36.5 chmod a=- 1.txt chmod a= 1.txt : 全部没有权限
36.6 chmod 777 1.txt chmod a=rwx 1.txt : 都权限,可读可读可执行
36.7 chmod 664 1.txt chmod u=rw,g=rw,o=r 1.txt 设置不同用户不同权限
37. cp选项
37.1-a: 保留文件原有权限,-a包含-r,也就是使用-a也可以拷贝文件夹
38. which : 查看命令的路径
39. sudo -s: 切换到管理员账号
40. passwd:修改密码
41. who :当前那些用户登陆
42. whoami:当前电脑登陆的用户是谁
43. exit:退出
44. ssh: 远程登陆 44.1 ssh : 可以远程登陆服务端可以通过vim修改文件
45. scp: 远程拷贝
45.1 scp 1.txt python@192.168.107.132:/home/python/Desktop ,把本地文件拷贝到服务器端
45.2 scp -r test python@192.168.107.132:/home/python/Desktop,把本地文件夹拷贝到服务器端
45.3 scp python@192.168.107.132:/home/python/Desktop/1.txt . , 把服务端的文件拷贝的本地
46.4 scp -r python@192.168.107.132:/home/python/Desktop/test . , 把服务端的文件夹拷贝的本地
46. sudo apt-get install 安装包名 :安装软件
sudo apt-get remove 安装包名:卸载软件
sudo apt-get update :更新源码
sudo dpkg -I 安装包文件:安装已下载的文件
sudo dpkg -r xxSoftName :卸载
47. vim的使用
47.1 命令模式Esc, 编辑模式i, 末行模式:, 命令模式是编辑模式和末行模式的中转站
48. vim常用命令
48.1. i: 进入编辑模式
48.2. yy: 复制光标所在行 复制多行: 数字 yy
48.3. p: 粘贴, 粘贴多次: 数字 p
48.4. dd(删除、剪切), 剪切或者删除多行:数字 dd
48.5. V: 选中多行
48.6. 上下左右: k:上, j:下, l:右 ,h:左 等同于方向键
48.7. x: 从前往后删除一个字母
48.8. X: 从后往前删除一个字母
48.9. u: 撤销
48.10. shift >: 往右缩进
48.11. shift <: 往左缩进
48.12. .:重复上一次操作
48.13. G: 回到最后一行
48.14. gg: 回到第一行 1G
48.15. 18G: 回到指定行
48.16. shift 4:回到行末
48.17. shift 6:回到行首
48.18. 搜索: :/1 n:查看下一个搜索到的内容, N:查看上一个搜索到的内容
48.19. 替换: :%s/1/2/g %: 整个文件, s:替换 g:全局
48.20. ctr f: 下一页
48.21. ctr b: 上一页
48.22. :wq, :x: 保存退出
开关机
sync :把内存中的数据写到磁盘中(关机、重启前都需先执行sync)
shutdown -r now或reboot :立刻重启
shutdown -h now :立刻关机
shutdown -h 20:00 :预定时间关闭系统(晚上8点关机,如果现在超过8点,则明晚8点)
shutdown -h 10 :预定时间关闭系统(10分钟后关机)
shutdown -c :取消按预定时间关闭系统
系统信息
who am i :查看当前使用的终端
who 或 w : 查看所有终端
uname -m :显示机器的处理器架构(如x86_64)
cat /proc/version :查看linux版本信息
uname -r :显示正在使用的内核版本
lsb_release -a :查看系统发行版本(如CentOS7)
rpm -qa | grep kernel-devel :查看kernel-devel版本(安装软件时编译内核用,故需要保持内核版本一致性)
yum install -y "kernel-devel-uname-r == $(uname -r)":安装和Linux内核版本匹配的kernel-devel
date :显示系统日期 (date %Y/%m/%d : 显示效果如2018/01/01)
date 070314592018.00 :设置时间(格式为月日时分年.秒 )
clock -w :将时间修改保存到 BIOS
cal 2018 :显示2018年的日历表
clear :清空命令行
ifconfig :显示或设置网卡(查ip等)(类似windows中ipconfig)
ping -c 3 www.baidu.com :测试百度与本机的连接情况( -c 3表示测试3次)
cat /proc/cpuinfo :显示CPU的信息
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l :查看物理CPU个数
cat /proc/cpuinfo| grep "cpu cores"| uniq :查看每个物理CPU的核数
cat /proc/cpuinfo| grep "processor"| wc -l :查看逻辑CPU个数即线程数
系统性能
top :动态实时显示cpu、内存、进程等使用情况(类似windows下的任务管理器)
top -d 2 -p 7427 :-d为画面更新的秒数,默认5秒,-p为指定进程pid的信息
vmstat 2 10 :每隔2秒采集一次服务器状态,采集10次(查看内存、io读写状态、cpu)
free -h :查看系统内存及虚拟内存使用情况
df -h :显示磁盘的空间使用情况
iostat :可查io读写、cpu使用情况
sar -u 3 5 :查看cpu使用情况(3秒一次,共5次)
sar -d 2 3 :评估磁盘性能
ps aux|grep firefox :获取火狐的进程号(PID)(可查看进程占用cpu、内存百分比及进程触发指令的路径)
kill -9 进程号 :强制*死进程
systemctl :查看正在运行的服务
至此Linux基本介绍及使用已经讲解完毕了,大家想学习的可以下载一个上面适合自己的系统用VMware虚拟机安装尝试一下。
作者简介:Python菜鸟工程师,将在接下来的一段时间内与大家分享一些与Python相关的知识点。如若文中出现问题,各位大佬多多指点,互相学习。喜欢的关注一个吧!谢谢!