美文网首页
【Linux基础】部分实验题整理

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

作者: Murrey_Xiao | 来源:发表于2017-05-30 08:58 被阅读14次

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

    一、重定向

    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基础】部分实验题整理

          本文链接:https://www.haomeiwen.com/subject/dtobxxtx.html