Linux 常用一些命令(二)

前言

最近在工作接触到一些linux 操作命令,这里将其总结下来作为参考。

linux 命令

权限相关

用户及用户组

1、查看当前存在所有用户

[root@VM-16-10-centos ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
用户名:用户口令:用户id:用户所在组id:备注:用户所在目录:shell命令所在目录

2、查看当前存在所有用户组

[root@VM-16-10-centos ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
用户组:用户组口令:组id

3、创建用户组

groupadd -g 607 deploy
#-g 指定用户组id

4、创建用户deployop并指定用户组deployop

#删除用户deployop
userdel deployop
#创建用户deployop并指定用户组deployop
useradd -m -d /deployop -u 1001 -g deploy deployop
# 给deployop 设置密码depPassword
echo deployop:depPassword | chpasswd
# 设置deployop 99999天不能修改密码
chage -M 99999 deployop
#-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
#-d和-m选项用来为登录名deployop产生一个主目录
#-g 用户组 指定用户所属的用户组。
#-s Shell文件 指定用户的登录Shell。 
#-u 用户号 指定用户的用户Id,如果同时有-o选项,则可以重复使用其他用户的标识号。

5、处理创建用户必要文件

cat >/deployop/.bash_profile<<EOF

if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific enviroment and startup progrem

PATH=$PATH:$HOME/bin
export PATH
EOF

cat >/deployop/.bashrc<<EOF

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi
EOF

5、查看当前登陆用户

[root@VM-16-10-centos /]# echo whoami=`whoami`
whoami=root
[root@VM-16-10-centos /]# whoami
root

6、指定用户执行命令

su deployop -l -c "mkdir -p /deployop/testDir"
#-l 指登陆用户执行
#-c 执行 shell 命令

设置文件/目录权限

1、切换用户创建文件(docker 登陆默认创建登陆设置文件,.开头文件linux 默认不可见;ocker 会将 token 存储在 ~/.docker/config.json 文件中)

#切换用户
su deployop
mkdir -p  /deployop/.docker
cat>/deployop/.docker/config.json<<EOF
{
  "auths":{
        "test.login.url":{
        "auth":"testPassword"
      }
   }
}
EOF

2.修改文件目录用户及用户组

su root
# 切换用户组.docker 为root:root
chown -R root:root /deployop/.docker/

3、修改用户权限设置

#修改用户权限 4 可读 1 可执行  2 可写,644 代表用户本人4+2 可读/可写 
# 同一组人 4 可读  其他 4可读
chmod 644 /deployop/.docker/config.json

docker

1、安装docker

# 移除之前安装内容
yum remove -y docker \
	docker-client \
	docker-client-lastest\
        docker-common \
        docker-lastest \
	docker-lastest-logrotate \
        docker-logrotate \
        docker-engine

yum remove -y docker-ce docker-ce-li containerd.io

# 安装准备

yum install -y lrzsz zip unzip go glibc.i686 java-1.8.0-openjdk-devel.x86_64 expect ftp git 
yum install -y yum-utils  device-mapper-persistent-data  lvm2
 
 #添加安装docker-ce docker-ce-cli containerd.io 的yum 源
yum-config-manager  --add-repo   https://download.docker.com/linux/centos/docker-ce.repo
 # 安装docker-ce 等内容
yum install -y docker-ce docker-ce-cli containerd.io docker-compose
#安装其他想要内容
yum install -y policycoreutils-python*

2、修改安装

#关闭selinux模式 (防止docker无法重启之类)

sed -i '/SELINUX=enforcing/cSELINUX=disabled' /etc/sysconfig/selinux
setenforce 0

3、让deployop 到docker用户组,让其使用docker

groupadd docker;gpasswd -a deployop docker

4、重启docker

restart docker.service

5、创建一个docker 容器

docker run it --privileged  -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos01 \

-p 2022:22 \
-d centos:8

# -i 也要保持标准输入保持打开状态,一般与 -t 连用。
# -d 在后台运行容器,并且打印容器i
# -t	分配一个伪tty,一般与 -i 连用。
# -v 只挂靠用户目录
# -p 暴露端口

6、登录到docker容器内部

docker exec -it mycentos01 /bin/bash

7、docker 容器和宿主机之间相互拷贝文件

# 将docker容器中文件test.txt 拷贝到~ 目录
docker cp mycentos01:/var/tmp/test.txt ~
# 将宿主机内容报备docker容器
docker cp ~/test.txt mycentos01:/var/tmp/test2.txt

8、整个docker 已经死,直接重启docker

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
systemctl daemon-reload
systemctl restart docker.service

9.docker修改daemon.json 非重启生效

# 给 dockerd 发送 SIGHUP 信号,dockerd 收到信号后会 reload 配置
kill -SIGHUP $(pidof dockerd)

10.清理未使用镜像文件

docker system prune -af

11.有时候docker启动报错可以尝试直接使用dockerd 启动,会展示启动失败更加详细信息

服务器间目录、文件同步

1、复制本地文件到远程服务器

#将本地文件夹/deployop 复制到/deployop1
scp -rp /deployop root@1.15.63.153:/deployop1
#-r 递归复制整个目录,
#-p保留原文件的修改时间,访问时间和访问权限

# 将本地文件复制到test.txt  到服务器text2.txt
scp -p /deployop/test.txt  root@1.15.63.153:/deployop1/text2.txt

2、复制远程服务器到本地

#将1.15.63.153文件夹/deployop1 复制到/deployop2
scp -rp  root@1.15.63.153:/deployop1 /deployop2
#-r 递归复制整个目录,
#-p保留原文件的修改时间,访问时间和访问权限

# 将1.15.63.153文件test2.txt  到本地text3.txt
scp -p  root@1.15.63.153:/deployop1/text2.txt  /deployop2/text3.txt

3、rsync远程服务器同步到本地

# 复制远程1.15.63.153 文件夹到本地 
rsync -avzP root@1.15.63.153:/deployop1  /deployop2

rsync -avzP root@1.15.63.153:/deployop1/test.txt  /deployop2/test5.txt

4、rsync 同步本地数据到远程

# 复制本地文件夹1.15.63.153 远程
rsync -avzP   /deployop2 root@1.15.63.153:/deployop2

#复制本地test5.txt到远程服务器
rsync -avzP   /deployop2/test5.txt  root@1.15.63.153:/deployop2/test7.txt

其他

杀死僵尸进程

ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs -i kill -9 {}

# -o 只显示指定参数 stat 状态 ppid 父进程  pid 进程 
# grep -e '^[Zz]' 过滤出需要杀死的僵尸进程
# awk 打印出第二个参数
# xargs -i {} 与|结合使用用返回参数代替{} 

重启服务器

# 重启服务器
reboot

#强制重启服务
reboot -f

获取当前linux ip

这个是我的linux 可以获取对应ip,不同linux 需要作出对应调整,都是可以用下面几个命令拼凑出来的

ifconfig -a|grep inet| grep -v 127.0.0.1 | grep -v inet6 | awk '{print $2}' | tr -d "addr:"
# grep -v  过滤掉内容
# awk '{print $2}' 代表打印出第二行
# tr -d 需要删除的字符

创建软连接

建立软连接之后两个目录,都会进行同步

#删除testDir2 并建立软连接
rm -rf /deployop/testDir2;ln -s /deployop/testDir /deployop/testDir2

yum

# 1、查看yum 源和更改yum源
ll /etc/yum.repos.d/
cat /etc/yum.repos.d/CentOS-Base.repo

# 2、更改yum源
mv CentOS-Base.repo CentOS-Base.repo.back20211218
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo

#重新加载yum
yum clean all
yum makecache

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值