Linux系统及编程基础

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

  1. 查看帮助 man gdb
  2. 编译打开调试选项 gcc -g
  3. 进入调试 gdb
  4. 查看源码 list (后接行号,或者函数名)
  5. 设置断点 break (后接行号,或者函数名)
  6. 查看断点 info
  7. 运行 run
  8. 单步不进入函数 next
  9. 单步进入函数 step
  10. 直接到下一个断点或者结束 continue
  11. 查看变量的值 print (后接变量的名,或者表达式名)
  12. 追踪变量的值 display (后接变量的名,或者表达式名)
  13. 显示多个值 display {a, b}
  14. 执行到子函数的结束 finish (main函数无效)
  15. 退出 quit
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值