一些linux常用命令(以centos7为例)

263 阅读4分钟

-P 选项(显示物理地址)

       -P, --physical
              avoid all symlinks

如下,可见 进入 软链接ptr 后,pwd显示ptr所在目录,pwd -P 显示ptr所指向的目录。

scp(安全copy 命令)

scp — secure copy (remote file copy program)

Manual(部分)

用法:
scp -r 源文件用户名a@主机名1:path1 目标文件用户名b@主机名2:path2

可把此语法 理解为:
以用a的身份,登入主机1,读取path1文件(文件夹);
再以b的身份登入主机2,写入path2文件(文件夹)。

如果 从本机 读取或写入,则 "目标文件用户名b@主机名2" 可省略

另外,前提是:
用户名a@主机名1 对path1有读权限
用户名b@主机名2 对path2有读权限

-r表示递归:

-r      Recursively copy entire directories.  Note that scp follows symbolic links encountered in the tree traversal.

例:把 hadoop102 的 /home/atguigu/hello 文件夹及其内容, 复制到 hadoop103 的 /root 目录下

scp -r atguigu@hadoop102:/home/atguigu/hello/ root@hadoop103:/root/

例:以本机免密方式,把 hadoop102(本机) 的 /home/atguigu/hello 文件夹及其内容, 复制到 hadoop103 的 /opt 目录下

scp -r /home/atguigu/hello/  root@hadoop103:/opt/

例:以本机免密方式,把 hadoop102 的 /home/atguigu/hello 文件夹及其内容, 复制到 hadoop104(本机) 的 /home/atguigu/tmp/ 目录下

scp -r atguigu@hadoop102:/home/atguigu/hello ./

rsync(远程同步 命令)

rsync -rvlt ./hello root@hadoop102:/opt

用法: 可以只同步变化的文件(对比文件的修改时间);实行 增量同步(相同的文件不复制)。
语法:
rsync -rvlt path1 目标文件用户名B@主机名2:path2

-r: 递归,复制目录
-v: 显示复制的过程
-l:  同步软连接
-t:  基于文件的修改时间进行对比,只同步修改时间不同的文件

特别注意,只能将本机的文件同步到其他机器:
rsync -rvlt path1 目标文件用户名B@主机名2:path2
——上面这条命令中:
path1是个目录,若目录以'/'结尾,只会 同步 目录中的内容,不会同步目录本身!
path1是个目录,若目录不以'/'结尾,不但会 同步 目录中的内容,也会 同步 目录本身!

例:以本机免密方式,把 hadoop103(本机) 的 /opt/hello 文件夹及其内容, 复制到 hadoop102 的 /opt 目录下

rsync -rvlt ./hello root@hadoop102:/opt

hadoop103上 进行操作:

hadoop102上 观察结果,可见 hello文件夹、其内的文件 均被成功复制:

hadoop103上 /opt/hello下 新建 newdir文件夹 及 newdir/newtxt.txt文件,再把整个 /opt/hello文件夹 复制到 hadoop102上,可见只有 新建的文件夹newdir 和 文件newtxt.txt 被真正复制

rsync -rvlt ./hello  roto@hadoop102:/opt/

搜索

grep(global search rgular expression(RE) and print out the line):是一种强大的文本搜索工具
如(ll是两个小写L) ll | grep -n name.txt 结果如下:

安装卸载软件

RPM 是 RedHat Package Manger(RedHat软件管理工具),是一种用于打包及安装工具
-qa : q代表query,a代表all
例(查到有Firefox包,卸载Firefox): 卸载命令 记法:-e可以理解为exclude; --nodeps可以理解为no dependencies: 卸载后找不到火狐(Firefox): 再次安装Firefox: 正在安装: yum list firefox 显示软件包信息:

定时任务

centos6 语法:service crond restart centos7 语法:systemctl restart crond.service 进入crontab编辑界面:crontab -e 每隔1分钟,向/opt/aaa.txt文件中添加"hihi" 可见/opt/aaa.txt文件中,很多"hihi"

杀进程

ps -ef | grep firefox

awk 命令

awk命令来源(就是三个牛人名字的首字母缩写连在一起, 记法:awksome的前3个字母):

选项参数 及 功能

-F 指定输入文件折分隔符
-v 赋值一个用户定义变量

Demo

复制passwd文件到当前目录:

sudo cp /etc/passwd ./ 

搜索passwd文件以root关键字开头的所有行,并输出该行的第7列:

awk -F : '/^root/{print $1, $7}' passwd

只显示/etc/passwd的第一列和第七列,以逗号分割,且 在所有行前面 添加列名"user, shell",然后 在最后一行添加"programmer, /bin/whatever":

awk -F : 'BEGIN{print "user,   shell"} {print $1 ", " $7 } END{print "programmer, /bin/whatever"}' passwd 


将passwd文件中的用户id增加数值1并输出:

awk -v i=1 -F : '{print $3+i}' passwd 

如下,可见都成功+1

awk的内置变量

变量 及 说明
FILENAME:文件名
NR:已读的记录数
NF:浏览记录的域的个数(切割后,列的个数)

其他

vim显式行号: set nu vim跳转到某行: vim命令模式下: ctrl+r 重复;u撤销。
man查看说明时,快捷键gg、G(gg首,G尾)仍有效,若上下翻页,则按f、b(front、back)。