【GNU/Linux】Linux入门教程
1.终端重要命令
查找操作
find {{path}} -name {{file-name}}- 在path目录下查找名为file-name的文件。find ./ -name "*.[ch]"- 查找当前目录下的.c和.h文件
grep "int i" {{file-name}}- 查找文件file内int i的位置。- note:这里没有限定单词边界。
grep "\bint i\b" {{file-name}}- 查找文件file内int i的位置。注意这里\b \b- 单词边界。- note:这里限定单词边界。
find ./ -name "*.[ch]" | xargs grep "#include" | sort | uniq- 列出.c和.h文件中所有被包含过的头文件。 eXtended ARGumentS:xargs -sort是排序,uniq是去除相同的。- 推广:可以据此查找任意文件中的任意一段代码。
grep -r 'hello' ./递归地在当前目录下查找’hello’,若查找内容中有同类型引号,则在前加\find ./ -name 'dir'在当前目录下查找名字为dir的目录。./代表当前目录。find ./ -name '*.*' | xargs grep 'hello' | sort | uniq在当前目录下查找所有文件中的hello。- 通配符
*为任意长度的任意字符串?为任意一个字符[]为集合中的任意一个字符{}括号拓展。例如echo Hello-{a,bb,cc}-{1,2}
统计操作
df -h- 查看磁盘分区的使用情况。df:disk free。wc {{file}}- 统计文件的行数/单词数/字符数wc -l {{file}}- 统计文件的行数wc -w {{file}}- 统计文件的单词数wc -c {{file}}- 统计文件的字符数
strace {{program}}- system call trace, 记录程序运行过程中的系统调用信息- 如
strace ls。查看ls命令的系统调用信息。 - 通过观察程序运行过程中发生的系统调用,可以大致了解程序关键行为。
- 如
ltrace {{program}}- library call trace, 记录程序运行过程中的库调用信息
文件操作
sudo apt-get install {{tool-name}}- 一键下载安装新工具wget {{http://www.xxx.com//abc.zip}}- 网站下载文件iconv -f uft-8 -t gbk {{file-name}}- 将文件file的格式进行转换,例子中是从uft-8转换到gbk- 比较两个文件是否完全相同
- 文本文件的比较:
vimdiff {{file1}} {{file2}} - 非文本文件的比较:
diff {{file1}} {{file2}} - 很大的文件:
md5sum {{file1}} {{file2}}- 两个文件的md5码不一样,就肯定不是同一个文件。
- 文本文件的比较:
rm -rf ./*删除当前目录下的所有文件。cat {{file}}打印文件中的内容。echo "" > {{file}}清空文件。echo "abc" >> {{file}}将”abc”追加到文件内。touch {{file}}创建文件。tree显示当前目录下的目录树。rm ./*.txt删除当前目录下的所有.txt文件。a,b y *复制a到b行的内容到系统剪切板*为系统剪切板,y为复制
chmod 777后接对应操作获取文件权限。chmod -R 777 *对当前目录下的所有文件获取权限。去掉-R就只限于当前目录。tar -xzvf 压缩文件名.tar.gz解压.tar.gz文件。tar -xvf 压缩文件名.tar.bz2解压.tar.bz文件。cat 压缩文件名.tar.bz2.parta* > 压缩文件名.tar.bz2将parta*分离压缩文件合并成完整的压缩文件。cp -r dirA dirB复制目录A到目录B
任务管理
- 推荐方法:
gnome-system-monitor- 打开任务栏图形界面。
- 推荐方法:
命令管理
history- 查看历史命令!{{number}}- 执行历史命令中的第number条命令!!- 执行上一条命令!{{string}}- 执行最近的以string开头的命令!{{string}}:p- 打印最近的以string开头的命令,但不执行!{{string}}:s/{{old}}/{{new}}- 执行最近的以string开头的命令,将其中的old替换为new!{{string}}:gs/{{old}}/{{new}}- 执行最近的以string开头的命令,将其中的old全部替换为new!{{number}}:p- 打印历史命令中的第number条命令,但不执行!{{number}}:s/{{old}}/{{new}}- 执行历史命令中的第number条命令,将其中的old替换为new!{{number}}:gs/{{old}}/{{new}}- 执行历史命令中的第number条命令,将其中的old全部替换为new
2..sh文件重要命令(基本所有操作与终端一致)
脚本指定
#!/bin/bash- 指定脚本解释器为bash
变量更改
export {{variable}}={{value}}- 将变量variable的值设置为value- echo - 打印变量
variable的值
- echo - 打印变量
export {{variable}}="${{variable}}:=/usr/local}"- 如果变量variable未定义,则将其值设置为/usr/local- echo - 打印变量
variable的值
- echo - 打印变量
expr ${{variable}} + 1- 将变量的值加1- x分别取a到z的值,然后执行do中的语句。
for x in {a..z} do echo $x done
参数获取
$1获取第一个参数$2获取第二个参数$#获取参数个数$@获取所有参数$0获取脚本名称$?获取上一条命令的返回值- $$$$获取当前进程的进程号
$!获取上一条命令的进程号
函数调用
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 tyhiwzm!
评论



