文章目录
Linux系统基本操作
系统安装,虚拟机软件的使用,虚拟机和主机之间的通信
虚拟机与主机之间的通信模式
1.Bridged(桥接)
2.NAT
3.Host-Only
4.自定义
Linux文件系统的特点
1.linux文件系统采用树形结构,从根目录root(/)开始
2.Linux的虚拟文件系统允许众多不同类型的文件系统共存,并支持文件系统的操作
3.Linux的文件是无结构字符流式文件,不考虑文件内部的逻辑结构,只把文件简单地看做是一系列字符的序列
4.Linux的文件可由文件拥有者或超级用户设置相应的访问权限而受到保护
5.Linux把所有的外部设备都看做文件,可以使用与文件系统相同的系统调用和函数来读写外部设备
文件操作命令
1.cat命令
cat [选项] [文件]
把多个文件连接后输出到标准输出(屏幕)或加">文件名"输出到另一个文件中
2.more命令
more [选项] [文件]
该命令显示文本文件的内容,一次显示一屏,满屏后停下来,可按键继续。
3.less命令
less [选项] [文件]
与more命令相似,分屏显示文件的内容。less命令允许用户向前(PageUp)或向后(PageDown)浏览文件。
4.head命令
head [选项] [文件]
head命令用于查看一个文本文件的开头部分,行数有参数值决定,默认值是10。
5.tail
tail [选项] [文件]
tail命令用于查看一文本文件的末尾若干行,行数有参数值决定,默认值是10。
6.grep
grep [选项] 查找模式 [文件]
grep能在文本文件中查找指定模式的词或短语,并把匹配的行打印出来
7.sort
sort [选项] [文件]
sort命令对指定文件中所有的行排序,将结果显示在标准输出上。
8.uniq
uniq [选项] [输入文件 [输出文件]]
检查及删除文本文件中重复出现的行。
9.comm
comm [选项] 文件1 文件2
comm命令对两个已经排好序的文件进行比较。
10.diff
diff [选项] 文件列表
diff命令比较文本文件,并找出它们的不同。
11.cp
cp [选项] 源文件或目录 目标文件或目录
cp命令完成文件的复制。
12.rm
rm [选项] 文件或目录
rm命令可以删除文件或目录。
13.mv
mv [选项] 源文件或目录 目标文件或目录
mv命令可移动文件或目录
14.wc
wc [选项] [文件]
wc命令统计给定文件中的字节数、字数、行数。
15.find
find [路径名] [表达式]
find命令用于查找符合条件的文件和目录。
16.bzip
bzip2 [选项] [要压缩的文件]
.bz2文件的压缩程序。
17.gzip
gzip [选项] [文件]
.gz的压缩程序。
目录操作命令
1.cd
cd [目的目录]
切换目录至目的目录。
2.pwd命令
pdw
pwd命令不带任何选项或参数,用于查看“当前工作目录”的完整目录
3.ls
ls [选项] [文件或目录]
ls命令可列出目录的内容,包括文件和子目录的名称
3.mkdir
mkdir [选项] 目录名
创建由目录名命名的目录,同时设置该目录的权限。
4.rmdir
rmdir [选项] 目录名
从一个目录中删除一个或多个目录。
5.chmod
chmod [who] [opt] [mode] 文件或目录名
用于改变文件或目录的访问权限。
6.chgrp
chgrp [选项] 所属组 文件或目录
改变指定文件所属的用户组。
7.chown
chown [选项] [用户] [:[组]] 文件
将指定文件的拥有者改为指定的用户或组。
8.ln
ln [选项] 源文件或目录 目标文件或目录
链接文件或目录
系统管理,系统,用户,设备,进程
1.shutdown
shutdown [-fFhknrc(参数名称)] [-t 秒数] 时间 [警告信息]
关闭Linux系统,必须由超级用户才能执行。
2.halt
关机命令,相当与shutdown -h
3.init
init进程是所有进程的祖先,其进程号始终为1.
用户管理
1.超级用户,在默认安装的初始情况下为root,所以也称其为根用户(即root用户),具有系统最高的权限。
2.普通用户。
3.特殊用户。
用户管理方法
Linux系统对用户管理一般提供三种方法
1.通过GUI方式管理
2.通过修改用户管理相关配置文件管理
3.通过系统管理命令管理
设备管理
Linux中设备也是由文件来表示的,每种设备都被抽象为设备文件的形式,提供给应用程序一个统一的文件界面,即文件系统,方便应用程序和操作系统之间的通信。
设备分为字符设备、块设备和网络设备三种。
进程管理
Linux系统是一个多进程的操作系统,一个时间段内可以有多个进程“并发”执行。
进程的基本状态分三种:运行态,就绪态和阻塞态(等待态)。
1.ps
ps [选项]
使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等。
网络管理
1.ifconfig
用于查看和更改网络接口的地址和参数
2.ping
使用ICMP协议来检测整个网络连接情况
3.netstat
用于查看网络状态
Linux编程Shell
Shell是一个用户接口,是一个命令解释器,除此以外,Shell命令本身还可以作为程序设计语言,将多个Shell命令组合起来,编写能实现系统或用户所需功能的程序。
Shell基本语法
特殊字符
通配符
1.*代表任何字符串
2.?代表任何单个字符
3.[]代表指定的一个字符范围
引号
1.单引号(’’),由单引号括起来的字符都作为普通字符出现。
2.双引号(""),由双引号括起来的字符,除“$”、“\”、“ ’ ”和“ " ”这几个字符任是特殊字符并保留其特殊功能外,其余字符作为普通字符对待。
3.反引号(``),执行命令。
注释符
#
变量
1.普通变量(用户自定义变量) echo $var
等号左右不能有空格
2.环境变量 HOME(当前用户的主目录,即用户登录时默认的目录)
3.位置变量 $0-9
执行时带有参数
4.特殊变量 $# $?
表达式,语句
1.条件测试,使用第二种方法时[]前后必须保留空格。
if test -f file
then
fi
if [ -f file ]
then
fi
2.AND(&&)
从做开始顺序执行每条命令,如果一条命令返回的时true,它右边的下一条命令才能够执行
3.OR(||)
持续执行一系列命令知道有一条命令成功为止,其后的命令将不再被执行。
4.Shell的算术运算
- expr
- 使用Shell扩展$((expression))
- let
函数
function_name ( ) {
statements
}
- 直接函数名调用
- 参数就是位置变量
- 返回值似乎是个全局的 书上没有
条件
if xxx ; then
yyy
else
zzz
fi
递归
for variable in values
do
statements
done
while condition
do
statements
done
read 输入
通过使用read命令来将用户的输入赋值给一个变量
echo 输出
换行标准输出语句
Linux下C编程
GCC
使用GCC编译程序时,编译过程可以被细分为四个阶段
1.预处理 hello.i
gcc -E hello.c -o hello.i
2.编译 hello.s
gcc -S hello.i -o hello.s
3.汇编 hello.o
gcc -c hello.s -o hello.o
4.链接 hello
gcc hello.o -o hello
GDB
- 查看帮助
man gdb
- 编译打开调试选项
gcc -g
- 进入调试
gdb
- 查看源码
list
(后接行号,或者函数名) - 设置断点
break
(后接行号,或者函数名) - 查看断点
info
- 运行
run
- 单步不进入函数
next
- 单步进入函数
step
- 直接到下一个断点或者结束
continue
- 查看变量的值
print
(后接变量的名,或者表达式名) - 追踪变量的值
display
(后接变量的名,或者表达式名) - 显示多个值
display {a, b}
- 执行到子函数的结束
finish
(main函数无效) - 退出
quit