整理grep、find、cut、tar、apt-get、dpkg、ln、ln-s指令
-
grep 查找字符串
grep 字符串 文件名
-w:按单词查找
-R:实现递归查找,主要用于路径是目录的情况
-i:不区分大小写
-n:显示行号 -
find
find 查找的路径 -name 文件名 ----->在指定路径下,以文件名为条件查找文件
find -name 文件名 ----->在当前路径下,查找文件
find -name *.c ---->find可以进行模糊查找,不建议使用 -
cut 截取字符串
cut -d “分隔符” -f “域” 文件名
分隔符:要截取的内容以什么作为分隔
域:截分隔后的哪一块
-f后面可以跟的格式
“3”,“3,4”,“3-5” -
tar 归档/打包和拆包 tar
归档/打包和拆包后,源文件仍然存在
打包:就是把多个文件合并成一个文件
tar -cvf 打包后的文件名.tar 打包的文件
-v:显示指令执行的过程
-c:实现打包功能的
-f:file -f参数后面一定要跟文件名
打包并压缩
tar -cvjf 文件名.tar.bz2 要归档压缩的文件
tar -cvJf 文件名.tar.xz 要归档压缩的文件
tar -cvzf 文件名.tar.gz 要归档压缩的文件
压缩工具的参数和文件的后缀,必须严格对应,如果不对应,不会报错,但是生成的不是压缩包
拆包和解压缩
tar -xvf 要拆包的文件名 ---->万能的拆包解压缩指令,既能完成拆包,也能解压缩
-x:拆包和解压缩 -
apt-get
sudo apt-get install 软件名 安装软件,权限不够加sudo
sudo apt-get remove 软件名 不完全卸载,不删除配置文件
sudo apt-get remove --purge 软件名 完全卸载,包括配置文件
sudo apt-get download 软件名 下载软件包但不安装
sudo apt-get source 软件名 下载源码
sudo apt-get clean 清空默认下载位置的安装包 -
dpkg 离线安装软件
离线安装不会检查依赖,也不会安装依赖软件
sudo dpkg -i 软件包名 安装软件,要求:执行指令的路径下,一定有软件包
sudo dpkg -r 软件名 不完全卸载
sudo dpkg -P 软件名 完全卸载
sudo dpkg -l 软件名 查看软件的安装列表
sudo dpkg -L 软件名 查看软件的安装路径 -
ln 创建硬链接文件
ln 被链接文件的路径 创建的硬链接文件的路径
1、硬链接文件和源文件有相同的inode号(ls -i)
#inode号,表示文件存储的扇区,有相同的inode号意味着占用同一片空间,硬链接文件是源文件的别名/保存了一个副本
2、硬链接文件的修改会影响到源文件,源文件的修改也会影响硬链接文件
3、ls显示的文件的描述信息中链接文件的个数,指的是硬链接文件的个数
4、只有硬链接文件个数为0时,文件才被删除 -
ln -s 创建软链接文件
ln -s 被链接文件的绝对路径 软链接文件的绝对路径
1、创建软链接文件时,使用绝对路径
2、软链接文件可以理解为快捷方式
3、软链接文件的文件类型是l,他不会增加文件描述中的链接文件个数
4、软链接文件,如果源文件被删除,链接会断开,软链接文件会失效,如果重新创建一个同名的源文件,软链接文件会重新链接,并且链接到新创建的文件
5、软链接文件的修改会影响到源文件,源文件的修改也会影响软链接文件
6、wins下不支持软链接文件,Linux下的压缩包不要放到主机下解压
#include <myhead.h>
#define maxsize 1024
int main(int argc, const char *argv[])
{
int a[maxsize][maxsize];
int m,n;
int max = 0;
int res = 1;
//输入两个整数,分别是行号和列号
printf("请输入数组的行数 列数:");
scanf("%d %d",&m,&n);
//输入数组
printf("请输入数组:");
for(int i = 0;i<m;i++)
for(int j = 0;j<n;j++)
scanf("%d",&a[i][j]);
/*//输出数组
for(int i = 0;i<m;i++){
for(int j = 0;j<n;j++){
printf("%d\t",a[i][j]);
}
printf("\n");
}*/
//循环找MAX(x[i,j]),要找m*n次
for(int i = 0;i<m;i++){
for(int j = 0;j<n;j++){
//求x[i,j]
//1.a[i,j]所在列连乘
res = 1;
for(int k = 0;k<m;k++)
res *= a[k][j];
//2.连乘a[i,j]所在行
for(int l = 0;l<n;l++)
res *= a[i][l];
//3.a[i,j]多乘2次 除去得到x[i,j]
res = res/a[i][j]/a[i][j];
//如果比max大就覆盖max
if(res>max)
max = res;
}
}
printf("%d\n",max);
return 0;
}
输出: