linux手册

17 篇文章 3 订阅

1 linux基础

1.1 shell

shell:命令解释器,对终端的输入解释成内核识别的指令,是按照$PATH环境变量查找的
shell

1.2 linux键盘快捷键

字符命令含义
ctrl+d删除光标后的字符
ctrl+h删除光标前的字符
ctrl+u删除光标前的所有内容
ctrl+k删除光标后的所有内容

1.3 linux目录结构

目录介绍
/bin二进制文件、可执行程序、shell命令(ls、rm、cp)
/sbin系统管理员使用的命令(ifconfig、shutdown、reboot)
/dev硬盘、显卡、鼠标,字符设备文件和块设备文件
/lib加载的动态库文件
/mnt手动挂载的目录(U盘)
/media外设的自动挂载目录,如光驱
/usrunix system resource(unix系统资源)类似于window下的progaram files目录
/etc存放配置文件
/opt安装第三方应用程序
/tmp存放临时文件(系统重启后会自动清楚)

1.4 linux终端提示符

duan@duan-virtual-machine:~$
duan:当前登录的用户名
@:中文“在”的意思
duan-virtual-machine:主机名(/etc/hostname)
~:当前的工作目录
$:表示当前用户为普通用户(# 表示当前用户为root用户)

1.5 linux常用命令

  • which:显示命令所在的路径
  • mkdir:创建目录,多级目录要加 -p 参数
  • cp:也可以用来拷贝目录,但要加 -r 参数
  • more:可以分页显示文件内容,优于cat
  • less:显示文件内容,优于more
  • head:head -n显示前n行
  • tail:tail -n显示后n行
    • tail -f filename:实时的显示文件内容,常用来调试代码(需要两个终端)

tail -f

  • ln:ln -s 源文件 链接文件,软链接相当于window快捷方式
    • 注意:创建软连接文件一定要使用绝对路径,否则,当软链接文件移动位置之后,就会找不到指向的文件了;软链接文件的大小是源文件的路径字符+文件名长度
  • ln:ln 源文件 链接文件,硬链接相当于window复制文件
    • 硬链接不能建立在目录上
    • 创建一个硬链接文件,硬链接计数+1,删除则-1,为0则找不到文件了
    • 硬链接和源文件的inode是相同的,inode指向了文件块的位置;不同文件系统的可能会用不同的inode,所以硬链接不能跨文件系统
  • wc:wc filename,查看文件行数、字节数、单词数
  • find:查找命令
    • find 路径 -name "filename"
    • find 路径 -type 文件类型
    • find 路径 -size +100M/-100k
  • find 高级查找
    • find 路径 -name "filename" -exec shell命令 {} \;
    • find 路径 -name "filename" -ok shell命令 {} \;
    • find 路径 -name "filename" | xargs shell命令
  • grep:grep 参数 "查找内容" 路径
    • -r:递归搜索,路径为目录时使用
    • -n:显示内容所在的行号
    • -i:忽略大小写
    • -v:取反,不显示查找内容的行
  • man
    • 1 user comand:用户在shell中可以操作的命令
    • 2 system call:系统调用函数
    • 3 c library function:C函数
    • 4 devices and special file:设备或特定文件
    • 5 file format and conventions:配置文件
  • ps——查看进程
    • ps -aux
    • ps -ajx
    • ps -ef
  • kill
    • kill -l:查看系统有哪些信号
    • kill -9 pid:杀死某个进程

1.6 linux软件安装和压缩

1.6.1 apt-get和yum在线安装和卸载

  • apt-get
    • 软件安装:sudo apt-get install 软件名
    • 软件卸载:sudo apt-get remove 软件名
    • 更新软件列表(Ubuntu会存放软件的安装链接):sudo apt-get update
    • 清理安装包:sudo apt-get clean`
      • 清理的路径是:/var/cache/apt/archives
  • yum yum install -y gcc
    • 软件安装:yum install -y xxx.rpm
    • 软件更新:yum update -y xxx.rpm
    • 软件卸载:yum remove -y xxx.rpm

1.6.2 deb和rpm格式的软件包安装

  • deb格式的安装与卸载
    • 软件安装:sudo dpkg -i xxx.deb
    • 软件卸载:sudo dpkg -r 软件名
  • rpm格式的安装与卸载
    • 软件安装:rpm -ivh xxx.rpm
    • 软件更新:rpm -Uvh xxx.rpm
    • 软件卸载:rpm -e 文件名

1.6.3 tar和zip的压缩与解压缩

  • tar
    • 参数
      • -z:用gzip来压缩/解压缩文件
      • -j:用bzip来压缩/解压缩文件
      • -c:创建新的压缩文件,与-x互斥使用
      • -x:从压缩文件中释放文件,与-c互斥使用
      • -v:详细报告tar处理文件
      • -f:指定压缩文件的名字
      • -t:查看压缩包中有哪些文件
    • tar常用命令
      • 打包:tar -cvf 打包名字.tar 原材料[待打包的文件]
      • 打包压缩:tar -zcvf 压缩包名字.tar.gz 原材料
      • 解包:tar -xvf 已有的打包文件(.tar)
      • 解压缩:tar -zxvf 已有的压缩包文件(.tar.gz)
      • 解压到指定目录:tar -xvf 已有的打包文件(.tar) -C 解压目录
  • zip
    • zip常用命令
      • 压缩:zip -r 压缩包名字 要压缩的文件(可以是目录)
      • 解压缩:unzip 压缩包名字 [-d 解压目录]

2 vim补充

2.1 命令模式

  • 代码格式化
    "gg=G",可以用来格式化代码

  • 光标移动

    命令含义
    gg光标移动到文件开头
    G光标移动到文件结尾
    ^移动到行开头
    $移动到行结尾
    w移动一个单词
    nG移动到第n行
    shift+%匹配对应的大括号
  • 快速翻屏

    命令含义
    ctrl+f向上翻一屏(front)
    ctrl+b向下翻一屏(back)
  • 删除

    命令含义
    x/del删除光标后面的一个字符
    d0删除当前行光标前面的所有内容
    D删除当前行光标后面的额所有内容
    dd删除光标所在的行
    ndd从当前行删除向下的n行
    v和ctrl+v可视化块删除(d删除,y复制,p粘贴)
  • 撤销和反撤销

    命令含义
    uundo,撤销
    ctrl+r反撤销
  • 复制粘贴

    命令含义
    yy复制光标所在的当前行
    nyy复制包括当前行的下面n行
    p在光标的下一行粘贴
  • 查找和替换

    命令含义
    /xxxx从光标所在的位置开始搜索,n向下,N向上
    r替换当前字符
    R替换当前行光标后的字符

2.2 编辑模式

  • 列插入
    命令含义
    ctrl+v先移动选择某列,按 I ,然后插入字符,最后按两次esc
    (即可在选中的所有行前面插入)

2.3 末行模式

  • 替换

    命令含义
    :s/old/new/光标所在行的第一个old替换成new
    :s/old/new/g光标所在行的所有old替换成new
    :m,ns/old/new/g将m~n行之间的所有old替换成new
    :%s/old/new/g当前文件的所有old替换成new
  • shell命令执行

    命令含义
    !shell执行shell命令
  • 分屏操作

    命令含义
    vsp当前文件垂直分屏
    vsp 文件名当前文件和另一个文件垂直分屏
    ctrl+w+w多个窗口切换光标
    wqall/qall!退出都要加all

2.4 vim配置文件

~/.vimrc,修改用户级别目录下的配置文件只会影响当前用户

set tabstop=4	#设置缩进为4个空格
set nu			#设置行号
set nonu		#取消行号设置
set shiftwidth=4	#设置gg=G缩进4个空格,默认是8个空格	

3 gcc编译器

3.1 gcc 编译过程

gcc流程
预处理:把 .h, .c 文件展开形成一个.i 文件——宏定义展开、头文件展开、条件编译、去掉注释

gcc -E hello.c -o hello.i

编译:.i 文件生成一个汇编代码文件 .s——检查语法

gcc -S hello.i -o hello.s

汇编:.s 文件生成一个 .o 文件——二进制文件

gcc -c hello.s -o hello.o

链接:对 .o 文件进行链接,并将C语言依赖库链接到程序中

gcc hello.o -o hello

3.2 gcc常用参数

命令含义
-I指定头文件所在的路径
-L指定库文件所在的路径
-l指定库的名字
-g使用gdb调试必须要加
-On(n=1~3)编译优化,n越大优化的越多
-Wall提示更多的警告信息
-D编译时指定宏的值

4 gdb调试

gdb调试

5 makefile

makefile学习

6 静态库和动态库

静态库和动态库

7 文件IO

文件IO操作

8 进程

进程

9 进程间通信

进程间通信

10 信号

信号认识及使用

11 线程及线程同步

线程及线程同步(互斥锁、读写锁、条件变量、信号量)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值