【Linux基础】部分实验题整理

--- 重定向和数据处理 ---

一、重定向

  1. 覆盖到文件
echo "Hello World" > test_file
  1. 追加到文件
echo "Hello World" >> test_file
  1. 若要将指令执行错误后的提示信息定向到文件,责需要在后边加’2’
// ls --p 这是一条错误的命令,将会输出错误信息
ls --p 2>>ls_error

二、管道

示例

ls -alh /dev | less  //将ls后的内容通过管道输送到less中查看
head -n 3 /etc/passwd |sort  //将输出内容排序后再显示

三、多命令执行

1.使用’;’分割多个命令,各个命令之间顺序执行,前后没有影响。

# cd ~; ls ; cd -; echo “Hello World”;ls

2.用&&分割多个命令,只有在前一个命令执行成果基础上,才能执行下一个命令。

3.用||分割命令,第一个命令执行失败,就执行第二个命令,若第二个命令也失败,则执行第三个;若第二个命令执行成功,则不执行第三个。

四、按照文件内容来搜索文件

在/usr/include目录下用grep搜索 包含”int printf”的文件
参数 –inr,分别表示或略大小写,打印行号,和递归子目录。

五、在帮助文档中查找指令参数信息

命令的参数有很多,我们可以用grep过滤我们想要的参数
比如为了查看 ls命令的 –l参数的用途,可以用以下的命令
“ -l” -l前面有两个空格

六、正则表达式

通配符 描述
. 任意一个字符 (除了 \n)
^ 开头,比如^hello,就是匹配以hello开头的字符串
$ 结尾,比如hello$,就是匹配以hello结尾的字符串
^$ 空白行
* 重复之前字符 0次或多次
+ 重复之前字符 1次或多次
{n,m} 重复之前字符 n~m次
() 提高优先级
[^a-c] 取反

--- 软件安装和磁盘操作 ---

一、查看磁盘容量(df)

二、解压缩命令

tar -czvf res.tar.gz res  //将res目录打包压缩
tar -xzvf res.tar.gz -C /home/test/Desptop  //解压缩到指定目录

三、安装与卸载

apt-get remove nano    //卸载nano
dpkg -i nano_2.0.2-i386.deb   //通过安装包安装
//进入解压缩后的目录
./configure    //配置
make  //编译
make install  //安装

--- 代码编译和库文件 ---

  • ldd查看库依赖
    ldd /bin/nano

一、代码编译和库文件

  1. 利用gcc 把mystrlen编译成动态库 libffmpeg.so
    a)把mystrlen.c编译成目标文件
    gcc -c mystrlen.c -o mystrlen.o
    b)把目标文件编译成动态库
    gcc -shared -fPIC mystrlen.o -o libffmpeg.so
  2. 编译test.c文件,生成可执行文件test
    gcc test.c -o test

二、常见的编译,链接,运行时的头文件和库文件错误

1.编译时头文件找不到的错误
error: xxxxxx.h: No such file or directory
解决方法:以下任选其一 (或者你有更好的方法)
其中 /xxx/yyy/ 是头文件所在的目录,比如头文件在/tmp,那这里的目录就是/tmp,后面不需要头文件名
a)编译时指定头文件路径
gcc -I /xxx/yyy/ -o main main.c
这里面的main和main.c只是举例子
b)修改环境变量 C_INCLUDE_PATH
在配置文件 ~/.bashrc 尾部追加
export C_INCLUDE_PATH=$ C_INCLUDE_PATH :/xxx/yyy/
然后执行 source ~/.bashrc
这样编译时就不需要指定头文件路径
gcc -o main main.c

2.链接时找不到函数实现的错误
undefined reference to ‘xxxxxxx’
解决方法:以下任选其一 (或者你有更好的方法)
下面的 -lffmpeg 只是举一个例子,需要根据你的实际库文件名来修改
/xxx/yyy/ 是库文件所在的目录
a)编译时指定库文件路径 和 库文件
gcc -L /xxx/yyy/ -lffmpeg -o main main.c
上述库文件的名字是 libffmpeg.so,在编译选项里写成-lffmpeg
b)修改环境变量 LIBRARY_PATH,
在配置文件 ~/.bashrc 尾部追加
export LIBRARY_PATH=$ LIBRARY_PATH :/xxx/yyy/
然后执行 source ~/.bashrc
然后编译时指定库文件
gcc -lffmpeg -o main main.c

3.运行时找不到动态库的错误
error while loading shared libraries: libffmpeg.so: cannot open shared object file: No such file or directory
解决方法:以下任选其一 (或者你有更好的方法)
a)修改环境变量 LD_LIBRARY_PATH,增加so路径
在配置文件 ~/.bashrc尾部追加
export LD_LIBRARY_PATH=$ LD_ LIBRARY_PATH :/xxx/yyy/
然后执行 source ~/.bashrc
b)修改配置文件 /etc/ld.so.conf ,在其尾部另起一行追加so的路径
/xxx/yyy/
然后执行 ldconfig 命令

你可能感兴趣的:(【Linux基础】部分实验题整理)