--- 重定向和数据处理 ---
一、重定向
- 覆盖到文件
echo "Hello World" > test_file
- 追加到文件
echo "Hello World" >> test_file
- 若要将指令执行错误后的提示信息定向到文件,责需要在后边加’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
一、代码编译和库文件
- 利用gcc 把mystrlen编译成动态库 libffmpeg.so
a)把mystrlen.c编译成目标文件
gcc -c mystrlen.c -o mystrlen.o
b)把目标文件编译成动态库
gcc -shared -fPIC mystrlen.o -o libffmpeg.so - 编译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 命令
网友评论