加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

unix命令行的个人心得

发布时间:2022-11-16 18:07:43 所属栏目:Unix 来源:未知
导读: unix
《unix命令集》
注:命令行中的参数一般不使用双引号(尤其是单关键词) 除非双关键词且用空格,或其它分隔符分开后 此时一般要双引号
shell 命令行的转意字符是\echo $PATH //获得系

unix

《unix命令集》

注:命令行中的参数一般不使用双引号(尤其是单关键词) 除非双关键词且用空格,或其它分隔符分开后 此时一般要双引号

shell 命令行的转意字符是\echo $PATH //获得系统环境变量的当前值include一个文件(类) 要: 1.4.#ifndef _ALARM_ #define _ALARM_ #endif解压复制方法:(cp /home/allen/materials/code-linux.tar.gz ./) tar zxvf code-linux.tar.gzpwd 路径mkdir 创建文件夹ls -a -f -l(权限)man 命令 查询命令使用方法删除文件夹 rm -drf rmdircp 复制 mv name1 name2 修改名字 复制文件夹 -Rtouch a.txt 创建文件设置权限chmod +x hello.c(添加)-wrx hello.c(少掉) a+wrx hello.c (全部)查看进程 ps ux(自己) ps aux(全部)cat hello.c 打开hello.c less hello.c more hello.ckill -9(强制) 进程id 杀死进程 kill all 名字cat hello.c>hi.c(覆盖) cat hello.c>>hi.c(添加)vim程序下 n yy p(复制黏贴多行) n dd(删除多行) u(后退) ctrl+r(前进)vim程序下 set nu (有行号) set mouse=a (启动对鼠标支持)w 写入 q退出 q!强制退出df -h (文件系统 挂载点 k块已用 可用 已用%)cp 文件路径+文件名 ~(路径名)跟踪程序 strace pwd./hello & (运行并获取进程id)cd . .. ~ 改变路径vim程序下 要自当前光标位置向上搜索,请使用以下命令: /pattern Enter (末行模式)要取消就输入没有的模式。

vim程序下 要自当前光标位置向下搜索,请使用以下命令: ?pattern Enter如上的搜索下 请按 n 或 N或 place; n:继续朝同一方向搜索:place。 N:反方向进行搜索。要查找仅出现在行首的 place,请在该单词前加一个插字符号 (^): /^place Enter要查找仅出现在行尾的 place,请在该单词后加一个货币符号 ($): /place$ Enter 转义字符\ 使\$ 的$变成普通字符find 路径 -name 文件名字 whereis 文件名 (查找路径下 文件名为:文件名字 的文件 文件名字可以使用“*?" 双引号后加通配符)查找目录下的所有文件中是否含有某个字符串

find .|xargs grep -ri "IBM"

查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名

find .|xargs grep -ri "IBM" -l find ~ -name b.txt -exec cat {} \; find文件并打开文件查看文件内容 如果是find ~ -name b.txt|grep b(这个只是对find的返回值进行grep搜索)退出执行 ctrl+/ 、ctrl+c 、ctrl+qgcc aa.c error2e.c -i ../include/(main文件include的apue.h的具体位置) -o shellmecho $path 打印变量调试工具:gdb

start next(n 下一条) s(进入函数内部) p 变量名 打印变量 c(continue) break 188 设置断点 finash 退出函数 q退出gdb l列出源码在 find 命令找出的文件中查询某一关键字(管道符)

find ./ -name Makefile | xagrs grep GCC 如果不行则去掉xagrs 如果没有找到会报错 不是命令写错了grep 'abc 文件夹名字 结果:显示匹配个数

grep -n "sdkfj" 文件夹名 显示匹配的行号及内容

-b,--byte-offset 打印匹配行前面打印该行所在的块号码。rm -rf 文件夹名 强制删除非空目录mv 原名 后来的名字 修改名字diff 文件名1 文件名2 -y -w (查看两个文件的差别) 具体说明:还有一处经常出错:stdlib.h stdiol.h 等的原因是因为include顺序问题vim程序下 :vs 新文件名 (用于打开多个窗口) ctrl+w(切换窗口)

43.top

一,grep:全面搜索正则表达式并打印出来

grep(最常用),egrep(扩展的grep),fgrep

用法:grep [options] ‘PATTERN’ file...

eg:grep ‘root’ /etc/passwd

选项:

-i不区分大小写

-v反向显示,只显示没匹配到的

-n显示匹配到的行在原文中所处的行号

-An(after)把匹配到的行后的n行也显示出来

-Bn(before)把匹配到的行前的n行也显示出来

-Cn(context)把匹配到的行前行后的n行也显示出来

模式:由正则表达式组成

^脱字符 ---行首定位符

&---行尾匹配符

.---用于匹配单个字符

*---匹配0或多个位于*号前的字符 root* 匹配roo,roott,roottt,,,

\词尾定位符

\词首词尾同时定位

\{root\{1\}

\( \) eg:\(root\).*\1able \1引用了root

[]匹配一组字符中任一个 eg:/[Ll]ove/

[x-y]匹配指定范围内的一个字符 eg:/[A-Z]ove/

[^]匹配不在指定组内的字符 eg:[^A-Z]

\ 用来转义元字符 ,去除其后紧跟的元字符或通配符的特殊意义。eg: love\.

\词尾定位符 eg:love\>

\(...\)匹配稍后将要使用的字符的标签

eg:\(love\)able\1able 匹配的是loveableloveable字符串

x\{m,\} 字符x重复出现至少m次

x\{m,n} 字符x重复出现m到n次

egrep新增的元字符

1. + 匹配一个或多个加号前的字符 eg:‘[a-z]+ove'匹配一个或多个小写

字母后跟ove的字符串

2. ? 匹配另个或一个前导字符,即它前面的那个字符可有可无

3. a|b 匹配a或b eg :’love|hate‘ 匹配love或hate

4.() 字符组 eg:love(able|ly)匹配loveable或lovely

二,cut命令

cut命令是用来剪下文本文件里的数据,文本文件可以是字段类型或是字符

类型,后一种数据类型在遇到需要从文件里剪下特定的列时特别方便。

语法:

cut -c list [file ...]

cut -f list [-d delim] [file...]

用途:

从输入文件中选择一或多个字段或者一组字符,配合管道,可再做进一步处理

-c list

以字符为主,做剪下的操作。list为字符编号或一段范围的字符

-d delim

通过-f选项,使用delim作为定界符。

eg:

cut -d: -f1 /etc/passwd(以冒号为定界符切割)

cut -d" " /etc/passwd(以空格作为定界符切割)

-f list

以字段为主,做剪下的操作

三,管道 |

管道:将前一个命令的输出结果作为后一个命令的输入内容。

使用方法:command1 | command2 | command3 | ……

eg:echo redhat | passwd –stdin student(将student的密码改为redhat)

tee

功能说明:读取标准输入的数据,并将其内容输出成文件。

eg: ls /etc |tee /tmp/ls.out|less

(tee将ls /etc出来的内容变成两份,一份输出到/tmp/ls.out ,一份

使用less查看)

四find linux下find -exec备忘

今天在linux下给数据库做自动备份,要求每个星期一备份一次,然后备份文件只保留当前一个月的文件。数据备份的shell脚本和守护进程就不说了,我这里只说说查找当前文件夹文件,保留一个月备份上。用到的命令find -exec rm:

一般有2中写法:

#find ... -exec rm {} \;

#find ... | xargs rm -rf

两者都可以把find命令查找到的结果删除,其区别简单的说是前者是把find发现的结果一次性传给exec选项,后者xargs命令会分批次的处理结果。

xargs优点:由于是批处理的unix打印,所以执行效率比较高(通过缓冲方式)

xargs缺点:有可能由于参数数量过多(成千上万),导致后面的命令执行失败

若换成 find ....-execrm {} \; 的话,

因为rm 是"逐个" item 去处理的, 则无此忧虑

rm不接受标准输入,所以不能用find / -name "tmpfile" |rm

-exec 必须由一个 ; 结束,而因为通常 shell 都会对 ; 进行处理,所以用 \; 防止这种情况。

{} 可能需要写做 '{}',也是为了避免被 shell 过滤。

例子:

cd /home/useway/DataBackup

find ./ -type f -mtime +30 -exec rm -fr {} \; > /dev/null 2>&1

./表示从当前目录找

-type f,表示只找file,文件类型的,目录和其他字节啥的不要

-mtime +30 表示30天前的文件。

-exec 把find到的文件名作为参数传递给后面的命令行,代替{}的部分

-exec后便跟的命令行,必须用“ \;”结束

/dev/null 2>&1 这样的写法.这条命令的意思是将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃.

centos系统的使用教程:很不错的linux视频教学网站:

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章