Shell

Shell是什么?

  • Shell是一个命令解释器,它通过接受用户输入的shell命令来启动、暂停、停止程序的运行或对计算机进行控制
  • Shell是一个应用程序,它连接了用户和Linux内核,让用户能够更加高效、安全、低成本地使用Linux内核

为什么用shell

  • 对机器来说兼容性更好,对人来说更加准确灵活

  • 现代shell其实是一种编程语言

root

  • sudo 对紧跟着它的命令生效

新建文件:

$ sudo touch file

Linux Shell_杀死进程

错误命令:

$ sudo echo 1 > file

Linux Shell_杀死进程

正确命令:

$ echo 1 | sudo tee file

Linux Shell_杀死进程

grep

grep(global search regular expression)是一个强大的文本搜索工具。grep使用正则表达式搜索文本,并把匹配的行打印出来。

格式:grep [options] PATTERN [FILE...]

  • PATTERN是查找条件:可以是普通字符串、可以是正则表达式,通常用单引号括起来
  • FILE是要查找的文件,可以是用空格间隔的多个文件,也可以使用Shell的通配符在多个文件中查找PATTERN,省略时表示在标准输中查找
  • grep命令不会对输入文件进行任何修改或影响,可以使用重定向将结果存为文件

例子:

  • 在文件myfile中查找包含字符串mystr的行
grep -n mystr myfile

Linux Shell_杀死进程

  • 显示myfile中第一个字符为字母的所有行
grep '^[a-zA-A]' myfile

Linux Shell_杀死进程

  • 在文件myfile中查找首字符不是#的行(即过滤掉注释行)
grep -v '^#' myfile

Linux Shell_杀死进程

  • 列出/etc目录(包括子目录)下所有文件内容中包含字符串“root”的文件名
grep -lr root /etc/*

Linux Shell_杀死进程

常用系统管理命令

  • stat 显示指定文件的详细信息,比ls更详细
  • who 显示在线登陆用户
  • whoami 显示当前操作用户
  • hostname 显示主机名
  • top 动态显示当前耗费资源最多进程信息
  • ps 显示瞬间进程 ps-aux
  • du 查看目录大小 du -h /home 带有单位显示目录信息
  • df 查看磁盘大小 df -h 带有单位显示磁盘信息
  • ifconfig 查看网络情况
  • ping 测试网络连通
  • netstat 显示网络状态信息
  • kill 杀死进程,可以先用ps或top命令查看进程的id,然后再用kill命令杀死进程

长句换行

  • 在shell中为避免一个语句过长,可以使用“\”进行换行
  • 使用“\”换行,在脚本执行过程中还是当做一行一个语句执行,不同于enter直接换行

TIPS

  • 注意看报错信息

  • sudo 不是解决问题的万金油

  • 网络上的命令不是解决问题的万金油

  • “Linux系统不容易中毒”不是因为系统非常安全

  • 摆脱Windows中多个“磁盘”的习惯

  • 哪些文件应该在你的“home”里(自己的代码、文档)

  • shell默认没有“回收站”或“废纸篓”