Linux相关操作

一、常用的shell命令

1.shell命令格式

通常一条命令包含有三要素: 命令名称  【选项】【参数】

注意:

    (1).一条命令的三要素之间用空格隔开;

    (2).若多个命令在一行书写,用分号(;)将各命令隔开

         (3).如果一条命令不能在一行写完,在行尾使用反斜杠(\)来标明该命令未结束.

2.用户系统相关命令

su(或sudo)用户切换命令:普通用户

                                                root用户(超级用户,有管理员权限)

1.系统管理命令

进程:正在运行的程序

        ps: 显示当前系统中由该用户运行的进程列表

        ps -ef 查看所有进程及其PID(进程号),系统时间,命令相信目录,执行者等

        ps aux 除可显示-ef所有内容外,还可显示CPU及内存占用率,进程状态

        top:动态显示系统中运行的程序(一般为每隔3s刷新一次)

pstree:以树型结构显示进程

kill  输出特定的信号给指定的进程

3.文件的7种类型

在Linux中有7种类型:

        - 普通文件

        d 目录文件

        l  链接文件  (类似于windows快捷方式)

        p 管道文件

        s 套接字文件

        c 字符设备文件

        b 块设备文件

4.文件目录相关命令

cd:  移动

ls:显示当前路径下的所有目录

cat:查看文档内容(适合查看比较短的文档)

more:查看文档内容(适合查看比较长的文档)

        按Enter(回车)  往下走一行

        按Space(空格)   往下走一页

        按b 向上走一页

        按q退出

cp:复制文件

mv:移动文件

rm:删除文件

chomd:更改文件权限

        文件所有者    文件属组用户    其他人

        drw-                    rw-                      r--       1 linux linux    0 3月   7 00:54 1.txt

        对于文件而言:

             r--->可读权限   cat 1.txt

             w--->可写方式  vim 1.txt

             x--->可执行权限

             u---->文件所有者 (user)

             g---->文件属组用户 (group)

             o---->其他人       (other)

             a --->所有人        (all)

                    // chmod g+w 1.txt

                    // chmod o-r 1.txt

chown:修改文件所有者和组别

chgrp:该变文件的组所有权

grep:在指定文件中搜索特定的内容,并将含有这些内容的行标准输出

grep格式:

        grep 【选项】 格式 【文件及路径】

|   --->管道 将前一个命令的结果作为后一个命令的输入

>重定向符号   文件不存在则新建,文件存在,则覆盖

>> 追加重定向  文件不存在则新建,文件存在,则追加在文件的末尾

find:在指定目录搜索文件

find 【路径】【选项】【描述】

通配符:

*表示任意个字符     ?表示任意一个字符

ln:用于在文件之间建立链接

Linux中有两种类型的链接:

相同点:无论软连接还是硬链接,文件内容都保持同步变化 。

不同点:

        硬链接:他会在用户选定的位置上生成一个和源文件大小相同的文件。

                     ln      源文件     链接文件

        软链接:它只会在选定的位置上生成一个文件的镜像,不会重复占用磁盘空间。(相当于快捷方式)

                     in  -s   源文件  链接文件

5.压缩打包命令

1.压缩工具(不能压缩文件)

命令1:bzip2(压缩)

             bzip2 -d(解压)

命令2:gzip(压缩)

             gzip -d(解压)

2.打包

tar -cf archive.tar foo bar  # Create archive.tar from files foo and bar.

tar -xf archive.tar          # Extract all files from archive.tar.

        -c, --create               create a new archive       打包

        -x, --extract, --get       extract files from an archive   解包

        -f, --file=ARCHIVE         use archive file or device ARCHIVE 指定包文件名

        -j, --bzip2

        -z, --gzip,

         -v, --verbose              verbosely list files processed

6.文件比较命令 diff

二、Linux配置相关

1.Linux环境变量

环境变量一般指在操作系统中用来指定操作系统运行环境的一些参数

1.如何查看环境变量

2.如何修改环境变量

临时修改

永久修改

sudo  vim   /etc/profile

保存后不能立即生效,需要重启(reboot(重启命令))后才能生效

2.linux软件管理

Linux系统主要支持RPM和Deb两种软件包管理工具,RPM--->RedHat,主要介绍的Deb包

1.离线安装

2.在线安装

测试电脑是否有网

如何设置网络

编辑----虚拟网络编辑器

虚拟机----设置

3.在线安装软件

3.Windows和Linux系统文件互传

Windows:winscp软件                 Linux:需要安装ssh服务

4.Linux网络配置管理

1.IP地址 32位--->点分十进制 “192.168.4.79”

IP地址:网络地址+主机地址

A类地址:1字节网络地址+3字节主机地址

网络地址的最高为必须为0:    0 0000001

                            0 1111110

地址范围:1.0.0.0----126.0.0.0

B类地址:2字节网络地址+2个字节主机地址

网络地址的最高为必须为10    10 000000   -----128

                            10 111111   -----191 2^7+2^6-1 128+64-1

地址范围:128.0.0.0----191.255.255.255

C类地址:3字节网络地址+1字节主机地址

网络地址的最高位为110    110 00000       2^7+2^6==192

              110 11111      2^7+2^6+2^5-1=223

范围:192.0.0.0----223.255.255.255

D类地址:用于组播

网络地址的最高位为1110   1110 0000

                          1110 1111

E类地址:作为保留

2.子网掩码:网络地址部分全为1,主机地址部分全为0

子网掩码:255.255.255.0

作用:判别主机发送的数据是向外网发送还是向内网发送

          A          B                              C

192.168.4.49       192.168.4.79                     192.168.7.78

&255.255.255.0    &255.255.255.0           &  255.255.255.0

  192.168.4.0        192.168.4.0                      192.168.7.0

A和B通信属于内网:不需要经过路由器(网关)

3.网关:

A和C通信属于向外网发送:

192.168.4.49 ---------------->192.168.4.1

                                                |

192.168.7.78< -----------     192.168.7.1

4.DNS  解析和域名服务器

5.Linux用户管理

1.用户的定义

1.用户属性:

用户名:口令:用户ID(UID):用户主目录(/home/用户名):用户shell(bash)

2.用户与组

3.相关的配置文件

/etc/passwd: 系统能够识别的用户清单

/etc/shadow   是加密的用户清单,必须使用root

/etc/group  该文件包含Unix组的名称和每个组中的成员列表

2.管理用户(必须使用root)

1.创建用户

sudo adduser  username

2.修改密码

3.

3.创建组

4.修改用户信息 usermod

5.删除用户

6.删除组

三、shell编程(解释性语言)

shell编程:一堆shell命令集合

1.shell脚本执行过程

1)创建一个后缀名为.sh文件

2)给.sh添加x权限

3)运行./sh

2.注释(#)

3.shell变量

1)用户自定义变量

命名规范:(1)由数字,字母下划线组成,首字母不能为数字

            (2)不能用关键字和保留字

                    (3) 尽量见名知意,尽量大写

2)位置参数即命令参数

位置参数是由系统提供的参数

3)预定义变量

$#:包含命令函的个数

$@:包含命令行参数“$1-$9”

$*:包含所有命令行参数

$?:包含前一个命令的退出状态,正常退出返回0,反之为非0的值

$$:包含正在执行进程的ID号

4)环境变量

4.功能性语句

1)键盘输入变量值(read)

2)expr算术运算命令

3)test命令

test语句可测试3种对象  字符串  整数   文件属性

(1)字符串

s1 =s2 测试两个字符串是否相等

s1 !=s2 测试两个字符串是否不相等

-z s1 测试s1字符串是否长度为0

-n s1 测试s1字符串的长度是否不为0

(2)整数

a -eq b   (equal) 测试a和b是否相等

a -ne b   测试a和b是否不相等

a -gt b   (great) 测试a是否大于b

a -ge b   测试a是否大于等于b

a-lt b     测试a是否小于b

a -le b    测试a是否小于等于b

(3)文件属性

-d name 测试name是否为一个目录

-f name 测试name是否为一个普通文件

-L name 测试name是否为一个链接文件

-r name 测试name文件是否存在且可读

-w name 测试name文件是否存在且可写

-x name 测试name文件是否存在且可执行

-s name 测试name文件是否存在且长度不为0

4)结构性语句

(1)选择语句

单分支

双分支

多分支

(2)循环结构
①for循环

带列表的for循环

不带列表的for循环

类似于C的for循环

②while循环

5)shell中的函数

(1)函数的定义

方式一:  func_name(){

        }

方式二:  function  func_name()

        {

                }

(2)函数的调用

调用1

调用2

四、Make

1.Makefile基本规则

2.Makefile假目标

3.Makefile变量

1)预定义变量

定义:常见编译器,汇编器的名称及其编译选项

CC             C编译器的名称,默认为cc

CFLAGS    C编译器的选项,无默认值

2)自定义变量

3)自动变量

$@  目标文件

$^   所有的依赖文件

$<   第一个依赖文件

4.展开方式

简单展开方式

递归展示方式

5.嵌套的Makefile

6.gdb

1.编译-g参数        gdb 可执行程序名

2.设置断点  b  main/函数处/行号   breakpoint

3.运行      r   (run)

4.下一步   n (next) 不进子函数

5.下一步   s(step)  库函数也进

6.退出     q(quit)

五、IO

按照存储的内容分类,分为两类:文本文件、二进制文件

文本文件:以ASCII码存储的文件,EOF(-1)是文件的结束字符

二进制文件:数据在内存中的原样存储在硬盘上。如照片,音频,视频

1.系统调用和库函数

2.系统调用和库函数的区别

1.系统调用不能被替换,库函数可以被替换

2.系统调用通常提供最小接口,库函数实现的功能较为复杂

3.系统调用运行的空间是内核控价我能,库函数运行的空间是用户空间

4.系统调用一般返回值和库函数不一样

5.系统调用的运行时间属于系统时间,库函数的运行时间属于用户时间

6.系统调用的时间开销比较库函数的时间开销大

3.缓冲区

4.文件描述符

5.文件流指针

6.标准IO

1)缓冲方式

全缓冲

缓冲区满或者强制刷新缓冲区

行缓冲

遇到换行符或者强制刷新缓冲区

不缓冲

不缓冲

(下图为强制刷新缓冲区)

2)打开方式

3)关闭方式

4)操作文件

按字符读写

fgetc()

模拟cat命令

fputc()

按行读写

fgets()

fputs()

按对象读写

fwrite()

fread()

按格式化读写

fprintf()

fscanf()

5)main函数传参

6)文件的其他相关函数

强制刷新缓冲区

7)time()函数

7.文件IO

1)文件的打开

2)文件的关闭

3)文件掩码

目的:保护数据安全

4)文件的操作

4)对目录文件的操作

模拟ls -a:

模拟ls -i -a:

模拟ls

模拟ls -l

8.空洞文件

9.移动光标

六、动态库和静态库

1.制作静态库

2.制作动态库

  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值