Linux命令行
Linux命令行
简介
Shell是什么?
- Shell是一个命令解释器,它通过接受用户输入的shell命令来启动、暂停、停止程序的运行或对计算机进行控制
- Shell是一个应用程序,它连接了用户和Linux内核,让用户能够更加高效、安全、低成本地使用Linux内核
为什么用shell
-
对机器来说兼容性更好,对人来说更加准确灵活
-
现代shell其实是一种编程语言
Bash使用技巧
Ctrl-r
:搜索命令行历史记录(按下按键之后,输入关键字便可以搜索,重复按下Ctrl-r
会向后查找匹配项,按下Enter
键会执行当前匹配的命令,而按下右方向键会将匹配项放入当前行中,不会直接执行,以便做出修改)Ctrl-w
:删除键入的最后一个单词Ctrl-u
:删除行内光标所在位置之前的内容Alt-b/Alt-f
:以单词为单位移动光标Ctrl-a
:将光标移至行首Ctrl-e
:将光标移至行尾Ctrl-k
:删除光标Ctrl-l
:清屏
常用基础命令
pwd
:查看当前目录cd
:切换目录ls
:显示文件或目录信息-a
:查看全部的文件,包括隐藏文件-l
:列出所有文件,包括文件的属性和权限,没有隐藏文件
mkdir
:在当前目录下创建一个空目录-p
:创建多级目录
rmdir
:删除目录(要求目录为空)touch
:生成一个空文件或更改文件的时间cp
:复制文件或目录rm
:删除文件或目录-f
:忽略不存在的文件,不会出现警告,强制删除-r
:递归删除目录-i
:互动,删除询问是否删除
mv
:移动文件或目录,重命名文件或目录-f
:强制-u
:只替换已经更新过的文件
cat:
从第一行开始显示文件内容,tac
从最后一行开始显示nl
:显示文件内容,顺带输出行号more
:一页一页的显示文件内容(空格代表下翻页,Enter代表向下看一行)less
:与more
类似,但支持回翻(PageUp、PageDown代表翻动页面)tail -n 10
: 查看文件的尾部10行head -n 20
:查看文件的头部20行file/stat
:查看文件类型或文件属性信息ln
:建立硬链接文件-s
:创建软链接文件
find
:查找文件echo
:把内容重定向到指定的文件中 ,有则打开,无则创建
root
sudo
对紧跟着它的命令生效
新建文件:
$ sudo touch file
错误命令:
$ sudo echo 1 > file
正确命令:
$ echo 1 | sudo tee file
grep
grep(global search regular expression)是一个强大的文本搜索工具。grep使用正则表达式搜索文本,并把匹配的行打印出来。
格式:grep [options] PATTERN [FILE...]
- PATTERN是查找条件:可以是普通字符串、可以是正则表达式,通常用单引号括起来
- FILE是要查找的文件,可以是用空格间隔的多个文件,也可以使用Shell的通配符在多个文件中查找PATTERN,省略时表示在标准输中查找
- grep命令不会对输入文件进行任何修改或影响,可以使用重定向将结果存为文件
例子:
- 在文件myfile中查找包含字符串mystr的行
grep -n mystr myfile
- 显示myfile中第一个字符为字母的所有行
grep '^[a-zA-A]' myfile
- 在文件myfile中查找首字符不是#的行(即过滤掉注释行)
grep -v '^#' myfile
- 列出/etc目录(包括子目录)下所有文件内容中包含字符串“root”的文件名
grep -lr root /etc/*
系统管理命令
-
who
:显示在线登陆用户 -
uname -a
:查看当前使用的系统(Unix/kernel 信息) -
whoami
: 显示当前操作用户 -
hostname
:显示主机名 -
du
:检查当前目录的空间使用量-
-a
:显示隐藏文件 -
-h
: 带有单位显示目录信息
-
-
df
:列出文件系统整体的磁盘使用量-h
:带有单位显示磁盘信息
-
ps
:查看当前系统中正在执行的各种进程的信息,显示瞬间进程ps-aux
-
pstree -p
:以一种优雅的方式展示进程树 -
top
:动态显示当前耗费资源最多进程信息 -
htop
:获取CPU和硬盘的使用状态(top
的加强版) -
kill
:杀死进程,可以先用ps
或top
命令查看进程的id,然后再用kill
命令杀死进程 -
ping
:测试网络连通 -
ip addr
:查看网络配置信息 -
netstat
: 显示网络状态信息 -
dmesg
:查看开机信息(排查硬件或驱动问题) -
uptime
:查看系统启动时间与工作负载
长句换行
- 在 shell 中为避免一个语句过长,可以使用 “\” 进行换行
- 使用 “\” 换行,在脚本执行过程中还是当做一行一个语句执行,不同于 Enter 直接换行
Tips
-
注意看报错信息
-
sudo 不是解决问题的万金油
-
网络上的命令不是解决问题的万金油
-
“Linux系统不容易中毒” 不是因为系统非常安全
-
摆脱Windows中多个“磁盘”的习惯
-
哪些文件应该在你的 “home” 里(自己的代码、文档)
-
shell默认没有 “回收站” 或 “废纸篓”