整理了之前在OneNote上的笔记到这里关于linux的一些基本操作,搜索ctrl+f搜索关键字找到想要的结果.点击标题可以跳转到搜索结果的网页
在文件夹中搜索所有文件 grep -r 'xxxxxxxx' dir
1.git grep foo 会自动map所有包含foo的文件
2.git grep -n foo 显示行号
3.git grep --name-only foo 只显示文件名
4.git grep -c foo 可以查看每个文件里有多个匹配内容
find 文件夹名字 -name 文件名字
ll | more 分屏显示
ll | less 分屏显示支持后退
参数的意义:
ls -al ----a参数与l参数结合使用,以长列表形式显示所有目录及文件详细信息。包括文件类型、文件权限、硬连接数、文件拥有者、文件所属组、文件大小、更动时间、文件名等。其中
第1列:
drwxr-xr-x代表文件的类型及权限
以d开头的为文件夹,以-开头的为文件,
以l开头的为连接文件
| 列 | 意义 |
|---|---|
| 第2列 | 文件的链接数. |
| 第3、4列 | 拥有文件的用户及组 |
| 第5列 | 文件的大小。 |
| 第6列 | 文件最后的修改时间。 |
| 第7列 | 文件名 |
| 选项 | 含义 |
|---|---|
| -d | '分割字符' -f fields |
| -c | 字符范围 |
| -d | 后面接分隔符,与-f一起使用; |
| -f | 依据-d的分隔符将一段信息切割成为数段,用-f取出第几段的意思; |
| -c | 以字符(characters)的单位取出固定字符区间 |
cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。
(1)其语法格式为:
cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]
使用说明
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
主要参数
| 选项 | 含义 |
|---|---|
| -b | 以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。 |
| -c | 以字符为单位进行分割。 |
| -d | 自定义分隔符,默认为制表符。 |
| -f | 与-d一起使用,指定显示哪个区域。 |
| -n | 取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除 |
功能说明:显示文字。
语 法:echo [-ne][字符串]或 echo [--help][--version]
补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
参 数:-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
文字输出:
| 选项 | 含义 |
|---|---|
| \a | 发出警告声; |
| \b | 删除前一个字符; |
| \c | 最后不加上换行符号; |
| \f | 换行但光标仍旧停留在原来的位置; |
| \n | 换行且光标移至行首; |
| \r | 光标移至行首,但不换行; |
| \t | 插入tab; |
| \v | 与\f相同; |
| \ | 插入\字符; |
| \nnn | 插入nnn(八进制)所代表的ASCII字符; |
| –help | 显示帮助 |
| –version | 显示版本信息 |
find <dir> -name <check_ad_xml.cfg> |xargs cat
| 操作 | 意义 |
|---|---|
| Ctrl+d | 键盘输入结束或退出终端 |
| Ctrl+s | 暂停当前程序,暂停后按下任意键恢复运行 |
| Ctrl+z | 将当前程序放到后台运行,恢复到前台为命令fg |
| Ctrl+a | 将光标移至输入行头,相当于Home键 |
| Ctrl+e | 将光标移至输入行末,相当于End键 |
| Ctrl+k | 删除从光标所在位置到行末 |
| Alt+Backspace | 向前删除一个单词 |
| Shift+PgUp | 将终端显示向上滚动 |
| Shift+PgDn | 将终端显示向下滚动 |
| 符号 | 意义 |
|---|---|
| * | 匹配 0 或多个字符 |
| ? | 匹配任意一个字符 |
| [list] | 匹配 list 中的任意单一字符 |
| [!list] | 匹配 除list 中的任意单一字符以外的字符 |
| [c1-c2] | 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z] |
| {string1,string2,...} | 匹配 string1 或 string2 (或更多)其一字符串 |
| {c1..c2} | 匹配 c1-c2 中全部字符 如{1..10} |
为了便于查找,man 手册被进行了分册(分区段)处理,在 Research UNIX、BSD、OS X 和 Linux 中,手册通常被分为8个区段
| 区段 | 说明 |
|---|---|
| 1 | 一般命令 |
| 2 | 系统调用 |
| 3 | 库函数,涵盖了C标准函数库 |
| 4 | 特殊文件(通常是/dev中的设备)和驱动程序 |
| 5 | 文件格式和约定 |
| 6 | 游戏和屏保 |
| 7 | 杂项 |
| 8 | 系统管理命令和守护进程 |
$ man 1 ls
不过幸运的是你可以在 man 中使用搜索/<你要搜索的关键字>,查找完毕后你可以使用n键切换到下一个关键字所在处,shift+n为上一个关键字所在处。使用Space(空格键)翻页,Enter(回车键)向下滚动一行,或者使用j,k(vim 编辑器的移动键)进行向前向后滚动一行。按下h键为显示使用帮助(因为 man 使用 less 作为阅读器,实为less工具的帮助),按下q退出
| 选项 | 含义 |
|---|---|
| -a | 打印能打印的全部 |
| -d | 打印死掉的进程 |
| -m | 同am i,mom likes |
| -q | 打印当前登录用户数及用户名 |
| -u | 打印当前登录用户登录信息 |
| -r | 打印运行等级 |
| 命令 | 意义 |
|---|---|
| cat | 标准输出 -n 显示行号 |
| tac | 倒叙查看文件 |
| more 和 less | 可以分页查看文件 |
| tail -n 数字 文件名 | 查看固定行数的文件内容 |
| file 文件名 | 查看文件类型 |
| 命令 | 意义 |
|---|---|
| declare | 可以声明环境变量 |
| 使用echo $ 环境变量的名称 | 可以查看环境变量的指向值 |
for example:
temp=shiyanlou #注意这里没有空格,有空格会报错
temp # 这样就可以查看temp指向的内容
sort 命令可以讲数据按照assic码来进行排序默认是从小到大的顺序
如果想要修改当前用户的环境变量那么可以使用修改.profile来修改当前用户的环境变量,如果想要环境变量对所有的用户都生效,那么可以修改隐藏文件.bashrc文件来永久生效.
vimdiff
工具可以比较两个文件之间的差距
这个是vim 的一个可视化的比较工具
find whereis which locate 搜索文件-通过文件名
| 命令 | 用法 |
|---|---|
| whereis | 快速而简单的查找方式,他只能搜索二进制文件(-b),man帮助文件(-m),源代码文件(-s),他并没有从硬盘中依查找, 而是从数据库中查询 |
| which | 这个只从命令中读取数据也就是说这个命令用来检查是否安装了特定的软件.他只从PATH环境变量中去搜索命令 |
| find | 应该是这几个命令中最强大的了,它不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等) |
注意: find 命令的路径是作为第一个参数的, 基本命令格式为 : find [path] [option] [action]
| options | 意义 |
|---|---|
| -atime | 最后访问时间 |
| -ctime | 最后修改文件内容的时间 |
| -mtime | 最后修改文件属性的时间 |
-mtime的选项:
| 选项 | 意义 |
|---|---|
| -mtime n | :n 为数字,表示为在 n 天之前的“一天之内”修改过的文件 |
| -mtime +n | :列出在 n 天之前(不包含 n 天本身)被修改过的文件 |
| -mtime -n | :列出在 n 天之内(包含 n 天本身)被修改过的文件 |
| -newer file | :file 为一个已存在的文件,列出比 file 还要新的文件名 |
locate
快而全 ,也是从数据库中查找,他可以用来查找指定目录下的不同文件类型,比如 $ locate /usr/*.py
查找这个目录下的所有py文件,记得*需要用反斜杠转义否则无法找到
| 选项 | 意义 |
|---|---|
| -c | 参数用来统计个数 |
| -I | 用来忽略大小写 |
从前到后三个分组分别是
自己 自己所在的组 和所有人
chmod 为更改文件权限
chown 为更改文件所有者格式为 chown 要替换的人 : 文件名 # 如果没有权限,可以加上sudo
[du -f 检测文件大小]
file 文件名 # 查看文件的格式和版本
du -h -d # 指定查看目录的深度
zip:
- 打包 :zip something.zip something (目录请加 -r 参数)
- 解包:unzip something
- 指定路径:-d 参数
tar:
- 打包:tar -zcvf something.tar something
- 解包:tar -zxvf something.tar
- 指定路径:-C 参
$ tar -cf shiyanlou.tar ~
-c 表示创建一个 tar 包文件,-f 用于指定创建的文件名,注意文件名必须紧跟在 -f 参数之后,比如不能写成 tar -fc shiyanlou.tar,可以写成 tar -f shiyanlou.tar -c ~。你还可以加上 -v 参数以可视的的方式输出打包的文件。上面会自动去掉表示绝对路径的 /,你也可以使用 -P 保留绝对路径
$ zip -r -q -o shiyanlou.zip /home/shiyanlou # 这是讲文件打包起来称zip格式的文件 符其中
-r 表示递归的打包子目录的全部内容
-q 表示安静模式也就是不向屏幕输出信息,
-o 表示输出文件,需要在后面紧跟打包输出的文件名
解压
$ unzip -q shiyanlou -d ziptest # 这里面-q表示安静模式, -d后面跟的是需要解压的目录如果不存在则会自动
创建
如果你不想解压只想查看压缩包内容可以使用 -l 参数
$ unzip -l shiyanlou.zip
$ unzip -O GBK shiyanlou.zip # 解决中文编码问题可以在解压的时候就指定解压的编码格式
-c 建立压缩文档 -create
-x 解压 - extract
-t 查看内容 - list
-u 更新压缩包中的文件
-z 有gzip属性的
-j 有bz2属性的
-Z 有compress 属性的
-v 显示所有的进程
-O 将文件解开到标准输出
-f 这个参数是必须的,后面加文件的名字
解压
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
总结
1、.tar 用 tar -xvf 解压
2、.gz 用 gzip -d或者gunzip 解压
3、.tar.gz和.tgz 用 tar -xzf 解压
4、.bz2 用 bzip2 -d或者用bunzip2 解压
5、.tar.bz2用tar -xjf 解压
6、.Z 用 uncompress 解压
7、.tar.Z 用tar -xZf 解压
8、.rar 用 unrar e解压
9、.zip 用 unzip 解压
(1) CTRL+Z挂起进程并放入后台
(2) jobs 显示当前暂停的进程
(3) bg %N 使第N个任务在后台运行(%前有空格)
(4) fg %N 使第N个任务在前台运行
默认bg,fg不带%N时表示对最后一个进程操作!