目录
一、Linux操作命令和常用工具
1、Linux框架结构
2、Linux内核主要功能
- 与计算机硬件进行交互,实现对硬件对编程控制和接口操作,调度对硬件资源对访问,并为计算机上的用户程序提供一个高级的执行环境和对硬件对虚拟接口
- 按功能模块分为:
- 进程调度
- 内存管理
- 文件管理
- 进程间通信
- 网络接口
3、Shell程序功能概述
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。
- 介于使用者和UNIX/Linux操作系统之核心程序(kernel)间的一个接口
- Shell功能如下:
- 读取输入和语法分析命令列
- 处理万用字符解释
- 重定向和管道
- 搜索和运行程序
- 后台作业
- shell编程等
4、常见Shell程序
-
Bourne Shell(SH)
最老、使用最广泛
-
Korn Shell(KSH)
对Bourne Shell的扩充,兼容Bourne Shell
-
C Shell(CSH)
语法与C语言类式,功能强大,但与Bourne Shell不兼容
-
Bourne Again Shell(BASH)
是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中默认的Shell,Bash不但与Bourne Shell兼容,还继承了Korn Shell、C Shell的优点
5、常见外围工具(桌面系统)
- GNOME/GTK
- 支持C语言
- 拥有众多公司或自由软件人的支持,包括RedHat
- KDE/QT(K Desktop Envirment)
- 支持C++,稳定成熟
- 包括办公软件KOffice、Internet应用软件、开发工具KDevelop、和一些其他应用软件
6、Linux文件系统结构
从用户角度理解文件系统
7、目录简介
-
bin:linux常用的命令。如:cp、mv。
-
boot:系统启动时要用到的程序
-
dev:所有linux系统中使用的外部设备映射文件。和我们常用的windows、dos操作系统不一样。它实际上是一个访问这些外部设备的端口。(虚拟光驱、usb)
-
etc:系统管理的各种配置文件和子目录。如网络配置文件,文件系统,x系统配置文件,设备被指信息,设备用户信息(passwd、group)
-
home:每个用户的主目录存放在这个目录下以用户名命名的子目录中。例如:如果我们建立一个用户,用户名是“tom” ,那么在/home目录下就有一个对应的/home/tom路径。
-
lib:存放系统动态连接共享库
几乎所有的应用程序都会用带这个目录下的共享库。因此,千王不要轻易对这个目录进行什么操作,一旦发生问题,系统就不能工作了。
-
lost+found:这个目录在大多数情况下都是空的。
但是如果你正在工作突然停电,或是没有用正常方式关机,在你重新启动机器的时候,有些文件就会找不到应该存放的地方,对于这些文件,系统将他们放在这个目录下,就像无家可归的人提供一个临时的住所。
-
mnt:分区的挂载点,这个目录在一般情况下也是空的。可以临时将别的文件系统挂在这个目录下。(cdrom、hgfs、usb)
-
proc:虚拟目录,系统内存的映射,可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。
-
root:系统管理员的主目录,其他用户无法访问。
-
sbin:这个目录是用来存放系统管理员的系统管理程序。
-
tmp:用来存放不同程序执行时产生的临时文件
-
usr:这是linux系统中占用硬盘空间最大的目录。用户的很多应用程序和库都存放在这个目录下,有很多子目录。(/usr/bin/vmware-config-tools.pl)
-
var:存放一些系统运行过程中的临时文件,如系统日志。
-
注:在各目录中以颜色区分不同的文件类型
- 蓝:目录
- 绿色:可执行文件
- 红:压缩文件
- 浅蓝:链接文件
- 灰:其他文件
- 红底白字:错误的链接文件
8、获得命令帮助
- whatis命令:简单描述命令功能
- –help选项:命令使用摘要及参数列表
- man命令:命令说明文件
命令名称 | 用途 | 命令举例 |
---|---|---|
ls | 文件查看 | ls –l |
cd | 改变文件目录 | cd |
cp | 文件拷贝 | cp file1 / tmp |
rm | 删除文件 | rm –rf dir1 |
mkdir/rmdir | 创建目录或删除目录 | mkdir dirname |
mv | 移动文件 | mv file1 /tmp/ |
rename | 重命名 | rename hello hi *.cpp 例如:helloworld.cpp ->hiworld.cpp |
find | 文件查找 | find / -name *.log |
命令名称 | 用途 | 命令举例 |
---|---|---|
cat | 用来查看文件内容 | cat hello.cpp |
more | 分屏显示文件内容 | more hello.cpp |
less | 命令类似于more命令,但是比more命令提供更多功能 | less hello.cpp |
tail | 用来查看文件的末尾几行 | tail hello.cpp |
wc | 统计文件的行数、字数、字符数 | wc hello.cpp |
进程操作命令
命令名称 | 用途 | 命令举例 |
---|---|---|
ps | 进程查看命令 | ps -axj |
kill | 送信号给进程 | kill -9 pid |
pstree | 树形方式显示进程 | pstree |
CPU内存查看
命令名称 | 用途 | 命令举例 |
---|---|---|
top | 常用的性能分析工 具 | top |
free | 内存使用情况 | free -m |
/proc/cpuinfo | CPU信息 | cat /proc/cpuinfo |
/proc/meminfo | 内存信息 | cat /proc/meminfo |
其他系统命令
命令名称 | 用途 | 命令举例 |
---|---|---|
date | 显示日期 | date |
cal | 显示日历 | cal 2 2007 |
who | 查看谁在使用系统 | who |
who am i | 查看我是谁 | who am i |
clear | 清除屏幕 | clear |
bc | 计算器 | bc |
tail | 查看文件最后的内容 | tail –f file |
which | 查看程序所在的位置 | which tail |
9、Bash外壳程序基本功能
- 转义和通配符号解释
- 重定向
- 管道
- 后台作业
- 历史表记录
- 命令行编辑
- 命令修正
- 别名
- Shell编程及解释
10、通配符
通配符 | 功能说明 | 示例 |
---|---|---|
* | 匹配所有字符 | ls *.o |
? | 匹配所有的单个字符 | ls net??? |
[a-z] | 匹配属于a到z范围集合内的一个字符 | ls [a-i]* |
[…] | 与方括号内的某个字符匹配 | ls [abc]*.c |
[!..]或[ ^…] | 与不在括号内的某个字符匹配 | ls [ ^a]*.c |
{c1,c2} | 同c1或c2集合匹配 | ls {[0-9]*,[acr]} |
11、输入/输出重定向
- 输出重定向:> >>
ls -l /usr/tmp >dir
ls -l /usr/tmp >>dir
ls /usr/tmp 2>err.file
ls /usr/tmp >output.file 2>&1
- 文件描述符:标准输入0,标准输出1,错误2
- 输入重定向:<
wc </etc/passwd
12、管道
将一个程序的标准输出写到一个文件中去,再将这个文件作为另一个程序的输入。管道要解决的就是不需要临时文件就能将两条命令结合在一起。如:
ls /usr/bin | wc -w
cat file | grep –wc ‘fail’
13、后台作业
- 安装(命令行执行任务)
CentOS 系列系统: yum install screen
Ubuntu 系列系统: sudo apt-get install screen - 创建 screen 窗口
screen -S name
# name可以设置为ssh、ftp,用于标注该 screen 窗口用途
# 示例:
screen -S xiaoming[小明就是命名]
注意,执行 screen -S name 之后系统会跳进一个新窗口,这个窗口就是我们创建的新进程(它来执行我们的命令)。
在这里面进行项目的启动即可。 - 退出保存
就是完全退出exit, 不会进行session保存了。
CTRL-a+d , 用screen -r就可恢复到原来的工作状态了。
停止:
首先:[查看有哪些]
screen -ls
只有Detached可以进入
如果只有一个 screen 进程,命令行输入 screen -r -d 即可
如果有多个screen, 我们可以通过它的 PID 进入screen:
screen -r -d 1572
进入之后直接CTRL+C,终止就行
14、文件压缩与解压缩 (tar)
选项 | 功能 |
---|---|
-c | 创建一个新的归档 |
-z | 利用gzip把文件压缩 |
-u | 备份新的及修改过的文件(备份更新) |
-x | 将文件从归档中恢复到磁盘上 |
-t | 显示归档中文件的文件名 |
-v | 显示执行过程中的文件清单 |
-f | 用来指定所用介质的设备文件名 |
-
tar -zcvf text.tar.gz text:备份档案并压缩
-
tar -zxvf text.tar.gz:从压缩包中提取文件
15、grep 与 正则表达式
- grep是通用正则表达式分析程序(General Regular Expression Parser)的缩写,一种强大的文本搜索工具
- grep命令可以在它的输入中搜索指定的字符串模式(Pattern)。grep命令的输出是包含输入中指定的字符串模式的行。
- grep命令的一般格式:
grep [option] pattern file
开关 | 描述 |
---|---|
-E | 用扩充正则表达式进行模式匹配 |
-i | 不区分大小写 |
-n | 在每一输出行前显示文件内的行号 |
-q | 与其他命令一起使用时,抑止输出显示 |
-s | 抑止文件的出错信息 |
-num | 在每一匹配行前后各显示num行 |
-v | 反向匹配 |
-l | 返回匹配到的文件名称 |
基本特殊字符集
字符 | 含义 |
---|---|
^ | 在每行的开始进行匹配 |
$ | 在每行的末尾进行匹配 |
< | 在字的开始进行匹配 |
> | 在字的末尾进行匹配 |
. | 对任何单个字符进行匹配 |
[str] | 对str中的任何单个字符进行匹配 |
[^str] | 对任何不在str中的单个字符进行匹配 |
[a-b] | 对a到b之间的任何字符进行匹配 |
\ | 抑止后面的一个字符的特殊含义 |
* | 对前一项item进行0次或多次重复匹配 |
扩展特殊字符集
字符 | 含义 |
---|---|
+ | 对前一项进行1次或多次重复匹配 |
? | 对前一项进行0次或1次重复匹配 |
{j} | 对前一项进行连续j次重复匹配 |
{j,} | 对前一项进行j次或更多次重复匹配 |
{,k} | 对前一项最多进行k次重复匹配 |
{j,k} | 对前一项进行j到k次重复匹配 |
s|t | 匹配s项或t项中的一项 |
(exp) | 将exp作为单项处理 |
正则表达式例子
名称 | 功能 | grep命令示例 |
---|---|---|
^public | 匹配以public开始的行 | grep ‘^public’ exp |
public$ | 匹配以public结尾的行 | grep ‘public$’ exp |
^$ | 匹配空行 | grep -n ‘^$’ exp |
^.$ | 匹配只有一个字符的行 | grep -n ‘^.$’ exp |
compu*t | 匹配u 0次或多次,如:compter computer,computing,compuuute等 | grep ‘compu*t’ exp |
(abc)+ | 将abc进行看作单项进行匹配,如:abcabcabc | grep -E ‘(abc)+’ exp |
grep “math2” *.txt
grep “12” *
反向匹配
ps aux | grep “ssh” | grep –v “grep”
匹配空行
grep -n ‘^$’ datafile
grep -v ‘^$’ datafile
grep命令示例
精确匹配单词: < 和 >
-
找出所有包含 以 north 开头 的单词的行
- grep ’ \<north’ datafile
-
找出所有包含 以 west 结尾 的单词的行
- grep ‘west\>’ datafile
-
找出所有包含 north 单词的行
- grep ‘\<north\>’ datafile
-
递归搜索目录中的所有文件:-r
- grep -r “north” datafile
-
关于某个字符连续出现次数的匹配
- grep ‘o{2,}’ helloworld
grep命令中用到的正则表达式最好用单引号或双引号括起来
e
grep命令示例
精确匹配单词: < 和 >
-
找出所有包含 以 north 开头 的单词的行
- grep ’ \<north’ datafile
-
找出所有包含 以 west 结尾 的单词的行
- grep ‘west\>’ datafile
-
找出所有包含 north 单词的行
- grep ‘\<north\>’ datafile
-
递归搜索目录中的所有文件:-r
- grep -r “north” datafile
-
关于某个字符连续出现次数的匹配
- grep ‘o{2,}’ helloworld
grep命令中用到的正则表达式最好用单引号或双引号括起来
如果我的文章能够帮到您,可以点个赞!
您的每次 点赞、关注、收藏 都是对我最大的鼓励!