Linux学习笔记(十)


df,du与归档压缩等

df与du

df显示可用空间,-h用常见的格式显示出大小

挂载情况

du统计文件或者目录的磁盘使用情况,用得比较少。

这些命令通常是在要扩容和挂载时候才使用,配合fdisk -l和lvextend来使用。

tar

tar 命令:用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的。十分常用,但可以在使用时候查找就行了,如果是使用VMware Workstation的话,官方会提示你安装Vmware Workstation tools,可以帮助用户虚拟硬件的驱动,鼠标的无缝移出移入,剪贴板共享,共享主机上的文件夹等实用功能,在安装过程中就会使用到tar来解压。

  • tar zcfv压缩成.tar.gz文件
  • tar zxfv解压.tar.gz文件
  • tar Jcfv压缩成.tar.xz文件
  • tar Jxfv解压.tar.xz文件
  • tar jcfv压缩成.tar.bz2文件
  • tar jxfv解压.tar.bz2文件

chmod类

chmod修改文件目录的访问权限,每种 MODE 都应属于这类形式[ugoa]+-=rwx

  • 操作对像

    • u 文件属主权限
    • g 同组用户权限
    • o 其它用户权限
    • a 所有用户(包括以上三种)
  • 权限设定

    • + 增加权限
    • - 取消权限
    • = 唯一设定权限
  • 权限类别(也可以用数字表示,前面出现过)

    • r 读权限 ( r–>4)
    • w 写权限 ( w–>2)
    • x 执行权限 ( x–>1)

相似的,chown修改文件目录的owner,chgrp修改文件目录的group。

Unix通信

ssh

因为用的是树莓派4b的原因,在没有配显示器又想无线连接到树莓派的话,必须通过ssh,在此基础上如果想要使用桌面系统的话,则又要使用VNC Viewer与树莓派相连接。

方法就在这简单描述一下,在烧录完系统后,打开SD卡直接新建SSH文件(无后缀名),随后在配置wpa_supplicant.conf,正常的话开机树莓派就能自动连接到wifi,可以通过路由器管理页面直接查看树莓派分配的ip,直接连接就行了(电脑用的是Putty),通过ssh远程登陆主机和实体操作没有什么区别,另外ssh在github的配置上也有需求,可以查阅一下资料配置一下。

接口与状态

ifconfig用来查看ip地址和网络状态。
ifconfig

ping用来查看与某个网址之间的延迟。
ping

curl

curl是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具。

ping

wget

wget是一个下载文件的工具,对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器,同时wget支持断点下载和指定目录下载,同时非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。是十分实用的一个命令。

常用命令

使用wget -O下载并以不同的文件名保存(-O:下载文件到对应目录,并且修改文件名称)

wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080

使用wget -b后台下载

wget -b <a href="http://www.minjieren.com/wordpress-3.1-zh_CN.zip">http://www.minjieren.com/wordpress-3.1-zh_CN.zip</a>

ftp

文件传输可以在此基础上使用别的软件,如FileZilla Client来传输。

systemd

systemd 是一个专用于 Linux 操作系统的系统与服务管理器。以mysql为例子。

# 开机启动
systemctl enable mysqld
# 关闭开机启动
systemctl disable mysqld
# 启动服务
systemctl start mysqld
# 停止服务
systemctl stop mysqld
# 重启服务
systemctl restart mysqld
# 查看服务状态
systemctl status mysqld
systemctl is-active sshd.service
# 结束服务进程(服务无法停止时)
systemctl kill mysqld

system daemon,代替常用的System V与BSD风格init程序,可以即时发现依赖。

  • init采用脚本来加载各种服务,各种服务的依赖难以维持,服务加载速度 慢
  • systemd使用c编写的程序接管各种服务加载

关于systemd的管理对象抽象为单元,详细就不叙述了,感兴趣的话可以man 5 systemd.unit,此外systemd还可以配置服务启动或者自定义服务,但个人觉得掌握上面举的例子就能应付很多情况了,感兴趣可以学习哈。

Gnu工具链

Gnu toolchain是开发操作系统、应用程序的一套完整的程序和库,包括gcc、gdb、glibc等。

其中gcc是一族编译器,包括c、c++、go、java等,

  • .c为后缀的文件,C语言源代码文件;
  • .a为后缀的文件,是由目标文件构成的档案库文件;
  • .C、.cc或.cxx 为后缀的文件,是C++源代码文件;
  • .h为后缀的文件,是程序所包含的头文件;
  • .i 为后缀的文件,是已经预处理过的C源代码文件;
  • .ii为后缀的文件,是已经预处理过的C++源代码文件;
  • .m为后缀的文件,是Objective-C源代码文件;
  • .o为后缀的文件,是编译后的目标文件;
  • .s为后缀的文件,是汇编语言源代码文件;
  • .S为后缀的文件,是经过预编译的汇编语言源代码文件。

C语言编译过程

  • gcc -E hello.c -o hello.i
  • gcc -S hello.i -o hello.s
  • gcc -c hello.s -o hello.o
  • gcc -o hello hello.o

ping

gdb

命令缩写描述
listl打印当前位置源码
breakb设置断点
runr运行程序
steps单步进入函数
nextn单步不进入函数
printp打印变量
continuec继续运行
backtracebt显示调用栈
info threads显示线程
thread n切换线程
set scheduler-locking on关闭线程调度

makefile

Makefile用于工程组织和编译,与常见的命令式语言不同,它是一种依赖推导语言。

  • Shell语言:变量定义+命令执行
  • Makefile:变量定义+依赖描述

有显式规则与隐式规则,推导规则为检查目标和依赖文件的时间,如果依赖更新,则执行动作,显式规则 > 隐式规则。

cmake

Cmake在不同平台上生成不同的本地化脚本:Linux下的Gnu Makefile,Visual Studio的sln,Google等ninja

Cmake管理的代码编译主要有两步:

  • 利用cmake生成本地编译脚本
  • 利用本地脚本编译程序

git

版本控制系统,是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统,git采用分布式管理,十分推荐学习。

一个非常好的,可视化的学习git的网站

ping


文章作者: JoyTsing
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 JoyTsing !
评论
 上一篇
Gcc编译的背后 Gcc编译的背后
前言在linux下写代码时,使用gcc只需要输入gcc a.c -o a就将代码编译好了,这背后做了些什么,在学习了下一学期的《编译原理》则不难理解,一般来说高级语言程序编译的过程只需要:预处理、编译、汇编、链接。gcc在后台实际上也经历了
2020-12-04
下一篇 
Linux学习笔记(九) Linux学习笔记(九)
Shell编程脚本shell脚本工作原理: loader程序加载脚本,发现不是elf可执行文件,返回错误 bash收到错误,然后打开文件头部,发现是脚本 调用脚本执行 几乎所有编程语言的教程都是从使用著名的“Hello World”开始
2020-05-11
  目录