【linux篇】常用的操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenshi_2753/article/details/79789408

一、免密钥操作
第一种:dsa

1.cd ~/.ssh/
2.ssh-keygen -t dsa -P ’ ’ -f ~/.ssh/id_dsa // 若没有id_dsa.pub 则生成公钥文件
3.scp id_dsa.pub node01:pwd/node03.pub // 分发公钥给其他的节点并重命名注:pwd左右有``字符。
4.cat node04.pub >> authorized_keys //在node01节点上将公钥追加到授权文件authorized_keys中。

  1. ssh node01 // 在node04上测试是否可以登录ndoe01。
    备:
    注意谁对谁做免密钥,关系一定要清楚
    eg:a把公钥发给了b,然后b把a的公钥追加到b自己的授权文件里,则表示:b对a做了免密钥,那么a可以登录b了。简单记错:公钥,是打开别人大门的钥匙,a的钥匙给了b,则a可以打开b的大门。

第二种:rsa
如果node01是新机器,家目录下没有.ssh 的目录,通过ssh localhost,输完密码后退出后,就会生成这个隐藏的目录。里面同时生成known_hosts。
做免密钥:ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
生成密钥文件,同时生成公钥文件。
node01然后回到家目录,ssh-copy-id node01 把自己的公钥给自己。同时生成认证文件。同时对node02,node03生成公钥,并把公钥给node01。
综合下来,初次免密钥操作如下:
1.ssh localhost
2.cd .ssh
3.ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
4.ssh-copy-id node01
5.对node02,node03重复3和4的操作。及把node02,node03的公钥都给了node01,那么,node02,node03对node01都可以免密登录了。
“简记:A把公钥给了B,A就可以登录B了。”

备:rsa比dsa优点在,最明显的操作过程简单。

二、vi/vim中删除操作

:.,$d-4 //删除倒数后4行

二、查看端口

查看端口:ss -nal // 后面可接管道

三、查看进程

1.ps -el | grep XXX
2.ps -ef | grep XXX
3.ps -aux | grep XXX

四、tail查看文本

tail -n xx.log // 查看xx.log 从最后数的n行。
tail -f xx.log // 实时监控xx.log 文件变化情况 !!!重要!!!

五、跟踪命令的执行过程
strace
eg:strace ls /

execve("/bin/ls", [“ls”], [/* 25 vars */]) = 0
brk(0) = 0x1727000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f711e30c000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)

六、使用ldd命令查看命令所在的linux的库
ldd /bin/ls // ls 就是二进制程序

linux-vdso.so.1 => (0x00007fffb233b000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fd3622b4000)
librt.so.1 => /lib64/librt.so.1 (0x00007fd3620ac000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fd361ea7000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007fd361c9f000)
libc.so.6 => /lib64/libc.so.6 (0x00007fd36190b000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fd361706000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd3624d8000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd3614e9000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007fd3612e4000)

七、linux的网络设置相关
linux开机的时候eth0是默认关闭的
需要启动,然后设置成开机启动。
这里写图片描述
测试环境下克隆机器需要删除红色框的目的是使得克隆的时候mac地址变更的时候,eth0接口绑定不了新的网卡。但是生产环境下,不可删除,尤其是多网卡的情况下,可能会出现网卡绑定乱的情况。
测试环境下还需要把ONBOOT设成yes(开机自启)。
然后需要:启动网络(service network restart)
重启后ip才会改变,不然还是127.0.0.1.通过命令的方式处理后就不要重启机器ip才生效。
【备:restart 的操作需要在linux自己的界面上操作,不可在xshell上,因为xshell上关闭后就没法连接服务了】

八、查看路由表

route -n

九、top命令查看呢进程管理
使用htop界面会更好些
使用htop需要CentOS使用EPEL YUM源,安装一个叫”epel-release”的软件包,这个软件包会自动配置yum的软件仓库。到下面的网址找你计算机类型和对应的centos版本:http://download.fedoraproject.org/pub/epel
我的是6,所有使用了:https://mirrors.tuna.tsinghua.edu.cn/epel//6/x86_64/epel-release-6-8.noarch.rpm
下载并安装epel-release-6-8.noarch.rpm

wget https://mirrors.tuna.tsinghua.edu.cn/epel//6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
3、添加完毕后,运行下面命令,完成。
yum clean all
yum update

测试:
echo ‘0-2’ > cpuset.cpus 设置核心数为0、1、2。然后开启多个线程,进行测试,比如:for i inseq 100000;do c=$i$i$i;done &
多次执行,则产生多个线程。此时在htop中看CPU核心数的对应的内存变化情况。

十、yum相关操作

其他国内yum源列表如下(参见 by:David Camp):

  1. 企业贡献:
    搜狐开源镜像站:http://mirrors.sohu.com/
    网易开源镜像站:http://mirrors.163.com/
  2. 大学教学:
    北京理工大学:
    http://mirror.bit.edu.cn (IPv4 only)
    http://mirror.bit6.edu.cn (IPv6 only)
    北京交通大学:
    http://mirror.bjtu.edu.cn (IPv4 only)
    http://mirror6.bjtu.edu.cn (IPv6 only)
    http://debian.bjtu.edu.cn (IPv4+IPv6)
    兰州大学:http://mirror.lzu.edu.cn/
    厦门大学:http://mirrors.xmu.edu.cn/
    清华大学:
    http://mirrors.tuna.tsinghua.edu.cn/ (IPv4+IPv6)
    http://mirrors.6.tuna.tsinghua.edu.cn/ (IPv6 only)
    http://mirrors.4.tuna.tsinghua.edu.cn/ (IPv4 only)
    天津大学:http://mirror.tju.edu.cn/
    中国科学技术大学:
    http://mirrors.ustc.edu.cn/ (IPv4+IPv6)
    http://mirrors4.ustc.edu.cn/
    http://mirrors6.ustc.edu.cn/
    东北大学:
    http://mirror.neu.edu.cn/ (IPv4 only)
    http://mirror.neu6.edu.cn/ (IPv6 only)
    电子科技大学:http://ubuntu.uestc.edu.cn/

十一、cgrop
CGroup 是 Control Groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组 (process groups) 所使用的物力资源 (如 cpu memory i/o 等等) 的机制
查看当前shell的进程。【参见 by:曹小贱

Cgroups提供了以下功能:
1.限制进程组可以使用的资源数量(Resource limiting )。比如:memory子系统可以为进程组设定一个memory使用上限,一旦进程组使用的内存达到限额再申请内存,就会出发OOM(out of memory)。
2.进程组的优先级控制(Prioritization )。比如:可以使用cpu子系统为某个进程组分配特定cpu share。
3.记录进程组使用的资源数量(Accounting )。比如:可以使用cpuacct子系统记录某个进程组使用的cpu时间
4.进程组隔离(Isolation)。比如:使用ns子系统可以使不同的进程组使用不同的namespace,以达到隔离的目的,不同的进程组有各自的进程、网络、文件系统挂载空间。
5.进程组控制(Control)。比如:使用freezer子系统可以将进程组挂起和恢复。

查看当前shell进程:

echo 使 s h e l l c g r o u p c p u s e t c p u s e t c g r o u p t a s k c p u s e t . c p u s e c h o 1 > c u p s e t . c u p s 1 e c h o 0 > c p u s e t . m e m s s h e l l t a s k e c h o 使用场景:把当前的shell运用在一个核心上。 首先在cgroup下的cpuset下新建一个目录,新建完会发现自动新建cpuset、cgroup以及task等相关的文件。 里面有cpuset.cpus的文件,echo 1 > cupset.cups,(表示设置1号核心)然后echo 0 > cpuset.mems ,最后把当前shell下的进程传到task中, `echo > task` 表示,把当前的shell线程限制在1号核心上。
然后测试,比如:while true;do yes;done
然后查看task会有进程号,如果杀死进程,则task无此进程号。

十二、正则表达式
//:TODO grep

猜你喜欢

转载自blog.csdn.net/chenshi_2753/article/details/79789408