Linux常用命令及组件

Linux

MultiTask 的意思是多任务,代表着 Linux 是一个多任务的操作系统。

SMP 的意思是对称多处理,代表着每个 CPU 的地位是相等的,对资源的使用权限也是相同的,多个 CPU 共享同一个内存,每个 CPU 都可以访问完整的内存和硬件资源。

ELF 的意思是可执行文件链接格式

Monolithic Kernel 的意思是宏内核,Linux 内核架构就是宏内核,意味着 Linux 的内核是一个完整的可执行程序,且拥有最高的权限。

  • 微内核,有一个最小版本的内核,一些模块和服务则由用户态管理;

  • 混合内核,是宏内核和微内核的结合体,内核中抽象出了微内核的概念,也就是内核中会有一个小型的内核,其他模块就在这个基础上搭建,整个内核是个完整的程序;

常用命令

echo(打印到终端)

cd(更改路径)

切换当前目录家路径:cd ~

切换俩个路径 cd -

ls(显示子文件)

-a:显示所有文件

-l:显示详情信息,文件类型, 文件所有者对文件的操作权限, 文件所属组用户对文件的操作权限, 其他人对文件的操作权限, 硬链接计数, 文件所有者, 文件所属组, 文件大小, 文件的修改日期, 文件名

-F: 目录之外文件加/

mkdir(创建目录)

-p :多级目录

rm(删除)

rmdir:只能删除空目录

-i: 删除的时候给提示 -f: 强制删除文件, 没有提示直接删除并且不能恢复, 慎用

cp(拷贝)

cp [options] source dest
或
cp [选项] 源文件 目标文件

mv(移动、改名)

mv [options] source dest
mv [options] source... directory

  • -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
  • -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
  • -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
  • -n: 不要覆盖任何已存在的文件或目录。
  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

cat、head、tail(文件查看)

cat:如果文件太大数据就不能完全显示出来了,因此该命令适合查看比较小的文件内容。

head -行数 文件名(默认十行)

tail -行数 文件名(默认十行)

ln(软连接、硬连接)

语法: ln -s 源文件路径 软链接文件的名字(可以带路径)

ln 源文件 硬链接文件的名字(可以带路径)

chmod权限修改

chmod [+-=] wrx(读、写、执行)

chmod [+-=]421(读、写、执行)

chown(修改所属者)

chown 新的所有者 文件名

chown 新的所有者:新的组名 文件名

tree(树状目录)

tree [-L n] # 查看当前目录的结构, n为显示的目录层数 tree 目录名 [-L n] # 查看指定目录的结构, n为显示的目录层数

pwd(显示当前目录)

torch(创建空文件)

which(显示实际路径)

>、>>

>: 将文件内容写入到指定文件中, 如果文件中已有数据, 则会使用新数据覆盖原数据

>>: 将输出的内容追加到指定的文件尾部

文件压缩

tar

c: 创建压缩文件 z: 使用gzip的方式进行文件压缩 j: 使用bzip2的方式进行文件压缩 v: 压缩过程中显示压缩信息, 可以省略不写 f: 指定压缩包的名字

tar 参数 生成的压缩包的名字 要压缩的文件(文件或者目录)

解压缩:

x: 释放压缩文件内容 z: 使用gzip的方式进行文件压缩, 压缩包后缀为.tar.gz j: 使用bzip2的方式进行文件压缩, 压缩包后缀为.tar.bz2 v: 解压缩过程中显示解压缩信息 f: 指定压缩包的名字

zip

zip [-r] 压缩包名 要压缩的文件

unzip 压缩包名 -d 解压目录(默认当前目录)

查找

find

find 搜索的路径 -name 要搜索的文件名

find 搜索的路径 -type 文件类型

-size 4k 表示的区间为 (4-1k,4k], 表示一个区间, 大于3k,小于等于4k -size -4k: [0k, 4-1k], 表示一个区间, 大于等于0 并且 小于等于3k -size +4k: (4k, 正无穷), 表示搜索大于4k的文件

-maxdepth: 最多搜索到第多少层目录 , -mindepth: 至少从第多少层开始搜索

gcc、g++

预处理: 在这个阶段主要做了三件事: 展开头文件 、宏替换 、去掉注释行,这个阶段需要GCC调用预处理器来完成, 最终得到的还是源文件, 文本格式 编译: 这个阶段需要GCC调用编译器对文件进行编译, 最终得到一个汇编文件

汇编: 这个阶段需要GCC调用汇编器对文件进行汇编, 最终得到一个二进制文件

链接: 这个阶段需要GCC调用链接器对程序需要调用的库进行链接, 最终得到一个可执行的二进制文件

区别

在代码编译阶段(第二个阶段):

后缀为 .c 的,gcc 把它当作是C程序,而 g++ 当作是 C++ 程序 在链接阶段(最后一个阶段): g++ 可以自动链接到标准C++库, gcc如果要链接到标准C++库需要加参数 -lstdc++

g++ 会自动定义__cplusplus宏,但是这个不影响它去编译C程序

gcc 需要根据文件后缀判断是否需要定义 __cplusplus 宏 (规则参考第一条)

静态库/动态库

在Linux中静态库以lib作为前缀, 以.a作为后缀, 中间是库的名字自己指定即可, 即: libxxx.a

ar rcs 静态库的名字(libxxx.a) 原材料(*.o)

在Linux中动态库以lib作为前缀, 以.so作为后缀, 中间是库的名字自己指定即可, 即: libxxx.so

gcc 源文件(*.c) -c -fpic

gcc -shared 与位置无关的目标文件(*.o) -o 动态库(libxxx.so)

动态库无法加载问题

找到相关的配置文件

用户级别: ~/.bashrc —> 设置对当前用户有效 系统级别: /etc/profile —> 设置对所有用户有效

添加export LD_LIBRARY_PATH =$LD_LIBRARY_PATH :动态库的绝对路径

重启终端

优缺点

优点:

静态库被打包到应用程序中加载速度快 发布程序无需提供静态库,移植方便 缺点:

相同的库文件数据可能在内存中被加载多份, 消耗系统资源,浪费内存 库文件更新需要重新编译项目文件, 生成新的可执行程序, 浪费时间。

优点:

可实现不同进程间的资源共享 动态库升级简单, 只需要替换库文件, 无需重新编译应用程序 程序猿可以控制何时加载动态库, 不调用库函数动态库不会被加载 缺点:

加载速度比静态库慢, 以现在计算机的性能可以忽略 发布程序需要提供依赖的动态库

  • 28
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Kettle是一款开源的数据集成工具,常用于数据抽取、转换和加载等ETL(Extract, Transform, Load)操作。Kettle基于Java开发,可运行在不同的操作系统上,包括Linux系统。 在Linux系统中,可以使用以下命令来操作Kettle: 1. kitchen: 运行Kettle中的作业(Job)。可以使用该命令执行已经在Kettle中编写好的作业,实现数据的抽取、转换和加载等操作。例如,可以使用"kitchen.sh -file=/home/user/job.kjb"来执行名为"job.kjb"的作业文件。 2. pan: 运行Kettle中的转换(Transformation)。可以使用该命令执行已经在Kettle中编写好的转换,实现数据的处理和转换等操作。类似于"kitchen"命令,可以使用"pan.sh -file=/home/user/trans.ktr"来执行名为"trans.ktr"的转换文件。 3. carte: 启动Kettle的远程服务。可以使用该命令启动Kettle的远程执行模式,使多个客户端可以通过网路访问并执行Kettle作业或转换。 4. spoon: 运行Kettle的图形化界面。可以使用该命令启动Kettle的图形化界面,通过拖拽和连接组件的方式进行作业和转换的设计和编辑。 5. kitchen.sh / pan.sh / spoon.sh -help: 查看Kettle命令的帮助信息。可以使用该命令来获取各个命令的使用方法和参数说明。 除了以上这些常用命令,Kettle还提供了丰富的命令和参数选项,用于控制各个作业和转换的详细执行流程。通过对Kettle的命令行操作,可以实现自动化的数据集成和处理任务,提高工作效率和数据质量。 ### 回答2: Kettle是一款强大的开源ETL工具,用于数据仓库的建立和数据转换过程的实现。在Linux系统中,我们可以使用一些常见的命令来使用和管理Kettle。 1. ./spoon.sh:这是启动Kettle可视化开发环境的命令。通过这个命令,可以打开Kettle的图形化界面,进行ETL作业的开发和管理。 2. ./pan.sh:这个命令用于执行Kettle的转换作业。通过指定转换作业的文件路径,可以在命令行中直接运行Kettle的转换作业,实现数据的转换和处理。 3. ./kitchen.sh:这个命令用于执行Kettle的作业。与pan.sh命令类似,但kitchen.sh命令用于执行Kettle的作业,而不是转换作业。通过指定作业文件的路径,可以在命令行中运行Kettle的作业。 4. ./carte.sh:这个命令用于启动Kettle的服务模式。通过在命令行中运行carte.sh命令,可以将Kettle作为服务在后台运行,以便实现作业和转换的远程执行和管理。 5. ./pan.sh -file:这是一个在命令行中执行指定转换作业的命令。通过指定转换作业的文件路径,可以在命令行中直接执行该转换作业,并查看执行结果。 这些是使用Kettle的常用命令,可以通过这些命令来操作和管理Kettle的作业和转换,在Linux系统中更方便地进行ETL过程的实现和数据仓库的建立。 ### 回答3: Linux Kettle 是一款功能强大的开源ETL工具,用于数据集成和转换。下面是一些Linux Kettle 常用命令: 1. kitchen: 该命令用于运行作业(Job)文件,可通过指定作业文件的路径来执行。例如,kitchen /path/to/job.kjb。 2. pan: pan 命令用于运行转换(Transformation)文件,也可以通过指定转换文件的路径来执行。例如,pan /path/to/transform.ktr。 3. kitchencmd: 该命令与 kitchen 相似,但可以在命令行界面(CLI)中使用更多选项来控制作业的执行。例如,kitchencmd -job="/path/to/job.kjb" -param:PARAM_NAME=param_value。 4. pancmd: 与 pan 类似,但可以在 CLI 中使用更多选项来控制转换的执行。例如,pancmd -trans="/path/to/transform.ktr" -param:PARAM_NAME=param_value。 5. carte: 用于启动一个 Kettle 远程服务器(Carte),该服务器可以执行作业和转换。例如,carte.sh /path/to/carte-config.xml。 6. spoon: 该命令可启动 Kettle 的可视化开发环境(Spoon),用于可视化设计作业和转换。例如,spoon.sh。 7. kitchen.sh: 类似于 kitchen,但在 Linux 上使用。例如,kitchen.sh -file="/path/to/job.kjb"。 8. pan.sh: 类似于 pan,但在 Linux 上使用。例如,pan.sh -file="/path/to/transform.ktr"。 9. ktrsplitter.sh: 该命令用于将复杂的转换文件拆分为多个较小的转换文件。例如,ktrsplitter.sh -file="/path/to/transform.ktr" -targetFolder="/path/to/output"。 这些命令是 Linux Kettle 中一些常用的命令,可帮助用户在 Linux 系统中执行作业和转换任务。这些命令的使用可以通过查看 Kettle 的官方文档和使用手册中的详细说明来进一步学习和了解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值