#1:”控制台指令导入 导出指令: rz (导入)或者 rs(导出)
//如果提示没有这个指令 安装lrzsz
在终端中,输入命令,自动安装,简单方便:
sudo apt-get install lrzsz (乌班图) ; yum install lrzsz(contOs)
输入导入rz 会弹出一个框选择导入文件
输入sz 导出的文件名 就导出了 (注意sz 和文件名间的空格)
#2查看文件: ls 查看文件
ls -all 查看所有文件(注意ls后的空格 ,可以查看到隐藏文件 还是具体信息) ;
ls -lh 查看文件 ,包含文件大小信息一KB单位
//信息说明: 以-开头是文件 以d开头是文件
例如文件: -rw-r--r-- 1 root root 0 Jan 8 12:45 ts.txt
-
rw- 当前自己 可读 可写
r-- 代表同组权限
r-- 其他用户的权限
(r 读 w写 x执行) 4可读 2可写 1可执行 三个加起7 就是三个权限都有
例如文件夹: drwxr-xr-x 2 root root 4096 Jan 8 12:51 Stu
//提示文件或者文件夹最高权限 chmod 777 需要提升权限的文件或者文件夹
#3 打开文件夹: cd 文件夹
打开文件: vi文件 或者 vim 文件 (有高亮效果)
使用cat 文件 直接查看文件
查看文件属性 file 文件名
编辑文件按i 底部显示INSERT 表示可以编辑状态
编辑完 按ESC 关闭编辑状态 shift+: 输入q表示退出不保存,q! 表示强制退出不保存, wq表示保存退出,wq! 保存强制退出
注意文件改变了没有保存会提示保存,如果想强制退出 q!
使用技巧:输入文件开通两个字母+Tab键 会自动补全
在编辑区底部 输入 :set nu 显示行号 输入:set nonu关闭行号
//当文件内容很多时,如何使文件显示行号 在命令模式(如果编辑模式按Esc 切换到,再i 切换都编辑模式) set number
//如果想看哪行代码 可以在命令模式 输入25 ,注意不要使用小键盘输入数字25(小键盘 就是键盘最右边数字)
// 如果想查找 某个词可以输入 /需要搜索的词 ; 例如 /content
//命令模式 输入小写 gg 跳到顶部 大写GG跳到底部
//操作上下左右 可以 使用右边的箭头操作
#4 下载东西: wget 下载地址
#5 打开文件夹: cd +文件夹名 ;cd ..返回上级目录 ; cd 回到根目录
#6 删除文件:rm 文件名
#7 删除文件夹 rm -r 文件夹名
#8 临时环境配置 (退出控制台就无效): expor 环境变量
例如:配置 xcport A=123
查看配置 echo $A
会打印出123
#9全局环境配置(控制台退出再进入也有)
进入系统配置环境变量文件 vim /etc/profile
在打开文件配置环境 xcport B=ASDDF
wq退出编辑文件
生效刚才文件 source /etc/profile
#10 安装程序
服务器是 乌班图 apt install 安装的程序
服务器是 contOs yum install 安装的程序
macOs brew 安装的程序
#11 执行一个文件 ./执行的文件
#12 创建文件vim文件名(包含格式) 例如vim A.txt
创建文件夹 mkdir 文件夹名
#13解压指令 unzip 解压文件名
#14 查看手机版本手机连接cmd(指令 adb devices) 输入命令行 adb pull /sysyten/bin/cat cat
再把cat文件 导入到xshell里面查看
#15 修改文件名 mv 修改文件名
#16 安装解压工具 yum install -y unzip zip
#17寻找文件 find . -name "*.txt"
例如 find . -name "test02.sh"
#18 使用上箭头可以自动显示上次输入的命令 ; 下箭头显示上次后面的命令
#19压缩文件命令 tar czf all.taz *
#20 ./获取当前目录
//编译的原理
编译(把人写的代码 变成 机器可识别的指令)
1:预处理阶段 (include 宏 等 打包进来 )
//例如 gcc -E A.c -o A.i
2:编译阶段 (把预处理阶段代码 封装到一起编译),编译之后(汇编代码)
//例如 gcc -s A.i -o A.s
3:汇编处理阶段 , 把汇编代码处理成 计算机识别的机器码(例如 0101)
//例如 gcc -c A.s -o A.o
4:链接阶段 打出可执行的 (比如桌面一个txt文件 我们点击就会弹出一个框 显示文件)
//例如 gcc -C A.o -o A
//如果A文件变绿说明成功,A变成可执行文件
//可以一步到位 从预编译文件 到可执行文件
gcc A.c -o B
//------------------------------------NDK交叉编译 -------------------------------------------------
export ndk_gcc="/root/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc"//自动找stido.h 头文件库文件
//--sysroot=是固定写法
// /root/android-ndk-r17c/platforms/android-22/arch-arm (自动寻找头文件 和库文件.s/.so 注意这里的android-22是根据你测试的手机来的)
//-isystem也是固定写法 (注意后面空格)
// /root/android-ndk-r17c/sysroot/usr/include (寻找指定目录的头文件)
// isystem后面的头文件会覆盖前面的头文件 ,最终到达 使用前的库文件 后面的头文件
export AA="--sysroot=/root/android-ndk-r17c/platforms/android-22/arch-arm -isystem /root/android-ndk-r17c/sysroot/usr/include //以上配置还有一个小问题asm无法引入 会报错 报错是C源码内部需要引入asm导致的
export AA="--sysroot=/root/android-ndk-r17c/platforms/android-22/arch-arm -isystem /root/android-ndk-r17c/sysroot/usr/include -isystem /root/android-ndk-r17c/sysroot/usr/include/arm-linux-androideabi"最后使用 $ndk_gcc $AA -pie main.c -o man
$ndk_gcc $AA -pie main.c -o man这个指令意思分析
$ndk_gcc 表示编译成对应可执行文件的gcc 路径;(比如我想编译成Linux上可以执行文件就可以直接使用Linux自带的gcc编译,就会生成在Linux上能执行的文件,如果我要在安卓手机上就需要使用NDK的gcc,编译成在安卓手机的可执行文件。说白了点就是不同的平台使用不同的gcc)
$AA 表示库文件 头文件的地址
-pie 表示打包什么类型的的文件(例如我们想打包成直接在手机上可执行文件 就是-pie ;如果我想打包成studio需要的动态库或者静态库就使用-fPIC 。不同的类型文件对应不同命令)
main.c 表示需要打包的文件
-o 表示输出(告诉我是要打包的)
man 表示输出成什么类型文件(文件名 和文件格式)
-----------------------------------------------NDK 交叉编译动态库和静态库-------------------------------
//先屏配置下全局环境变量,(我的ndk版本是17的,如果配置其他版本的 路径需要修改)
export NDK="/root/android-ndk-r17c"
# 下面是交叉编译相关
export NDK_GCC_x86="/root/android-ndk-r17c/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/i686-linux-android-gcc"
export NDK_GCC_x64="/root/android-ndk-r17c/toolchains/x86_64-4.9/prebuilt/linux-x86_64/bin/x86_64-linux-android-gcc"
export NDK_GCC_arm="/root/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc"
export NDK_GCC_arm_64="/root/android-ndk-r17c/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc"export NDK_CFIG_x86="--sysroot=/root/android-ndk-r17c/platforms/android-21/arch-x86 -isystem /root/android-ndk-r17c/sysroot/usr/include -isystem /root/android-ndk-r17c/sysroot/usr/include/i686-linux-android"
export NDK_CFIG_x64="--sysroot=/root/android-ndk-r17c/platforms/android-21/arch-x86_64 -isystem /root/android-ndk-r17c/sysroot/usr/include -isystem /root/android-ndk-r17c/sysroot/usr/include/x86_64-linux-android"
export NDK_CFIG_arm="--sysroot=/root/android-ndk-r17c/platforms/android-21/arch-arm -isystem /root/android-ndk-r17c/sysroot/usr/include -isystem /root/android-ndk-r17c/sysroot/usr/include/arm-linux-androideabi"
export NDK_CFIG_arm_64="--isysroot=/root/android-ndk-r17c/platforms/android-21/arch-arm64 -isystem /root/android-ndk-r17c/sysroot/usr/include -isystem -isystem /root/android-ndk-r17c/sysroot/usr/include/aarch64-linux-android"export NDK_AR_x86="/root/android-ndk-r17c/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/i686-linux-android-ar"
export NDK_AR_x64="/root/android-ndk-r17c/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar"
export NDK_AR_arm="/root/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ar"
export NDK_AR_arm_64="/root/android-ndk-r17c/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar"# 静态库 动态库相关
export myd="$NDK_GCC_arm $NDK_CFIG_arm -fPIC -shared "
export myj="$NDK_AR_arm rcs "
#动态库编译
打开需要编译成动态库的文件夹里面
#静态库编译(先打包成 .o文件 再包成.a文件)
//1打包成.o文件
打开需要编译成动态库的文件夹里面 输入指令 $NDK_GCC_arm $NDK_CFIG_arm -fPIC -c get.c -o get.o
//打包成.a文件 (打包成.a文件需要使用NDK里面的 arm-linux-androideabi-ar 文件)打开需要编译成动态库的文件夹里面 输入指令 $NDK_AR_arm rcs -o libget.a *.o
linux 将txt文件导入hive中 linux导入文件命令
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
freemarker模版中的换行
<!--[if !supportEmptyParas]--><!--[endif]--> <!--[if !supportEmptyParas]--><!--[endif]--> <!--[if !supportEmptyParas]--><!--[endif]-->
freemarker模版中的换行 freemarker user border html