Centosshell命令整理

Linux上的组和用户的关系

  1. 一个Linux系统可以有多个组,一个组可以对应多个用户,其中root用户相当于管理员,可以管理其他用户,所以用root用户创建一个新用户。

root下新建一个用户

登录root用户,使用root用户创建

            sudo adduser 用户名    //新创建一个用户

            sudo su root     //切换到跟用户

            passwd 用户名    //给该用户创建密码

文件目录命令:

            ls            //查看目录

            ls -al         //查看搜游目录信息

            pwd         //查看当前所在目录

CentOS查看CPU、内存、版本等系统信息 

3.1查看CPU

grep "model name" /proc/cpuinfo

如果觉得需要看的更加舒服

grep "model name" /proc/cpuinfo | cut -f2 -d:

 

3.2查看内存

grep MemTotal /proc/meminfo

grep MemTotal /proc/meminfo | cut -f2 -d:

free -m |grep "Mem" | awk '{print $2}'

3.3 查看cpu32位还是64

查看CPU位数(32 or 64)

#getconf LONG_BIT

#echo $HOSTTYPE

#uname -a

3.4 查看当前linux的版本

#more /etc/RedHat-release

#cat /etc/redhat-release

3.5 查看内核版本

#uname -r

#uname -a

3.6 查看当前时间

date

3.7 查看硬盘和分区

df -h

 

fdisk -l     //也可以查看分区

du -sh     //可以看到全部占用的空间

du /etc -sh  //可以看到这个目录的大小

3.8 查看安装的软件包

查看系统安装的时候装的软件包

cat -n /root/install.log

more /root/install.log | wc -l

查看现在已经安装了那些软件包

rpm -qa

rpm -qa | wc -l

yum list installed | wc -l

不过很奇怪,我通过rpm,和yum这两种方式查询的安装软件包,数量并不一样。没有找到原因。

3.9 查看键盘布局

cat /etc/sysconfig/keyboard

cat /etc/sysconfig/keyboard | grep KEYTABLE | cut -f2 -d=

3.10 查看selinux情况

sestatus

sestatus | cut -f2 -d:

cat /etc/sysconfig/selinux

3.11 查看ipmac地址

ifcfg-eth0 文件里你可以看到mac,网关等信息。

ifconfig

cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep IPADDR

cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep IPADDR | cut -f2 -d=

ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6-

查看网关

cat /etc/sysconfig/network

查看dns

cat /etc/resolv.conf

3.12 查看默认语言

echo $LANG $LANGUAGE

cat /etc/sysconfig/i18n

3.13 查看所属时区和是否使用UTC时间

cat /etc/sysconfig/clock

3.14 查看主机名

hostname

cat /etc/sysconfig/network

修改主机名就是修改这个文件,同时最好也把host文件也修改

RPM安装命令总结 

Linux 操作系统下,几乎所有的软件均通过RPM 进行安装、卸载及管理等操作。RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件。Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装。RPM 有五种操作模式,分别为:安装、卸载、升级、查询和验证。

4.1RPM安装软件包

#rpm -i example.rpm 安装 example.rpm 包;

#rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息;

#rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度

4.2 删除已安装的软件包

要卸载软件包example,只需输入以下这行命令:

 # rpm -e example

注意:软件包名是example,而不是rpm文件名"example.rpm"

4.3 升级软件包

升级软件类似于安装软件:

# rpm -Uvh example.rpm

用户要注意的是:rpm会自动卸载相应软件包的老版本。如果老版本软件的配置文件通新版本的不兼容,rpm会自动将其保存为另外一个文件,用户会看到下面的信息:

saving /etc/example.conf as /etc/example.conf.rpmsave

这样用户就可以自己手工去更改相应的配置文件。


另外如果用户要安装老版本的软件,用户就会看到下面的出错信息:

# rpm -Uvh example.rpm

examle packag example-2.0-l(which is newer) is already installed

error:example.rpm cannot be installed

如果用户要强行安装就使用-oldpackage参数。

4.4 查询软件包

用户可以用rpm -qrpm的数据库中查询相应的软件,rpm会给出软件包的名称,版本,发布版本号,例如:

# rpm -q example

下面是查询时可以使用的特定参数:
-a查询目前系统安装的所有软件包。
-f 文件名查询包括该文件的软件包。
-F-f参数,只是输入是标准输入(例如 find /usr/bin | rpm -qF)
-q 软件包名查询该软件包
-Q-p参数,只是输入是标准输入(例如 find /mnt/cdrom/RedHat/RPMS | rpm -qQ)

下面是输出时的格式选择:
-i 显示软件包的名称,描述,发行,大小,编译日期,安装日期,开发人员等信息。
-l 显示软件包包含的文件
-s 显示软件包包含的文件目前的状态,只有两种状态:normalmissing
-d 显示软件包中的文档(如man,info,README等)
-c 显示软件包中的配置文件,这些文件一般是安装后需要用户手工修改的,例如:sendmail.cf,passwd,inittab
如果用-v参数就可以得到类似于ls -l的输出

4.5 rpm校验软件包

 rpm -Vf 需要验证到包 

4.6 rpm 实用技巧!

1)用户可以通过FTP来安装软件包。如果用户能够连上网络,想安装某个新的软件包时,可以直接用它的URL地址来安装:

比如:现在在ftp.linuxsir.com/pub/linux/redhat/RPMS/下有这个文件包:foo-1.0-1.i386.rpm,那就可以用这样的命令:

# rpm -i ftp.linuxsir.com/pub/linux/redhat/RPMS/foo-1.0-1.i386.rpm

来安装,也可以查询!

2)如果用户不小心误删了几个文件,但不确定到底是那些文件,想对整个系统进行校验,以了解哪些部分可能已经损坏,可以用:

 # rpm -Va

3)如果用户碰到一个不出来的文件,想要知道它是属于那一个软件包的话,可以这样做:

   # rpm -qf /usr/X11R6/bin/xjewel

结果会得到以下信息:

xjewel-1.6-1
4)如果用户得到一个新的RPM文件,却不清楚它的内容;或想了解某个文件包将会在系统里安装那些文件,可以这样做:

  # rpm -qpi koules-1.2-2.i386.rpm

docker操作

5.1 Docker创建一个容器

#下载centos镜像,运行一个名为mycentos的容器,并在容器里运行/bin/bash

docker run -ti --name mycentos centos /bin/bash

#退出容器

Exit

#关闭容器

docker stop mycentos

#重启容器

docker start mycentos

5.2 docker安装

step1:使用yum命令进行安装

yum install -y docker

备注:-y 表示不询问 使用默认配置进行安装,等待提示  完毕!

step2:查看是否安装成功

yum list installed | grep docker

备注:命令为查看yum安装完成文件列表 并 筛选docker安装信息 如下

 

step3:启动docker服务

systemctl start docker

step4:查看是否启动成功

systemctl status docker

 

step5:使用docker命令

1)查看镜像

     docker images

2)查找所有容器

     docker ps -a

 

3)找出我们想要的容器名字,查找容器长ID

    docker inspect -f '{{.ID}}' python

 

4)拷贝本地文件到容器

    docker cp 本地路径 容器长ID:容器路径

    docker cp /Users/xubowen/Desktop/auto-post-advance.py + 38ef22f922704b32cf2650407e16b146bf61c221e6b8ef679989486d6ad9e856

5)下载官方镜像:

        docker pull 镜像名

6)停止某一镜像:

        docker stop 镜像名

5.3 其他命令

1)、删除安装包

         yum remove -y 安装包名

2)、停止/开始服务

         systemctl stop docker

         systemctl start docker

3)、移除已经安装镜像

         docker rmi 镜像名:tag   or  镜像id

4)、停止/启动/删除容器服务

         docker stop 容器服务别名  or 容器id

         docker start 容器服务别名  or 容器id

         docker rm 容器服务别名  or 容器id

Windows上传文件到centos7服务器

1)首先linux上是否装上了ftp服务,命令:rpm -qa | grep vsftpd

若没有安装则进行第二步安装

2)安装ftp服务,命令:yum -y install ftp vsftpd

 

3)由于是默认安装,我们查看一下配置文件路径,命令:rpm -qc vsftpd

 

4)备份配置文件:命令:cp vsftp.config vsftpd.conf.origin

 

5) vi可以修改配置文件,进行授权等,这里先不改它

6)安装ftp,命令:yum -y install ftp

      a.发现已安装,先不管他;

      b.测试一下本机是否可以访问ftp,命令:ftp localhost,发现也是成功的,也不管了

      c.退出ftp,命令:exit

 

如果此时拒绝连接:

通过FTP传输文件时拒绝连接此时需要查看FTP是否开启

查看FTP状态命令:service vsftpd status

如果FTP未开启,需要开启FTP,开启FTP命令:service vsftpd start

7)查看一下防火墙状态,命令:systemctl status vsftpd.service

若开启了防火墙则关闭,命令:systemctl stop vsftpd.service

或者这里也可以设置防火墙放开改服务,大家自行百度了

8)建立一个ftp用户,并设密码,命令:adduser ftpuser;passwd ftpuser

9)windows下开始用连接工具登录了,拖放文件随心所欲

文件操作

mv命令用于移动文件或者修改文件名称,是move的缩写,经常用mv备份文件和目录

格式:

mv 【选项】 源文件或目录  目标文件或目录

功能参数:

-b : 先备份在覆盖文件

-f   :   force(强制),目标文件已经存在,不询问直接覆盖

-i   目标文件已经存在时,先询问是否覆盖

-u  : 目标文件已经存在,且source比较新,才会更新update

-t   -target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

7.1文件重命名

命令:  mv test.txt test1.txt

说明:此格式只是重命名,如test.txt文件中有内容,重命名之后不会影响内容,内容存在不被清空

 

将文件file1改名为file2,如果file2已经存在,则询问是否覆盖

命令:mv -i log1.txt log2.txt

将文件file1改名为file2,即使file2存在,也是直接覆盖掉。

命令:mv -f log3.txt log2.txt

说明:

log3.txt的内容直接覆盖了log2.txt内容,-f 这是个危险的选项,使用的时候一定要保持头脑清晰,一般情况下最好不用加上它

7.2移动文件

移动单个文件:

d1目录的中的test.txt移动到n1目录下面命令:

Mv  /tmp/d1/test.txt  /tmp/n1

 

多个文件移动到目录中

log1.text,log2.txt,log3.txt移动到test3中,命令:

mv log1.txt log2.txt log3.txt test3   //三个文件移到 test3目录中

mv -t /opt/soft/test/test4/ log1.txt log2.txt  log3.txt  //将三个文件移动到test4目录中

7.3 目录的移动

命令:mv dir1 dir2

说明:如果目录dir2不存在,将目录dir1改名为dir2;否则,将dir1移动到dir2中。

命令:mv * ../    //移动当前文件夹下的所有文件到上一级目录

命令:mv test3/*.txt test5  //把当前目录的一个子目录里的文件移动到另一个子目录里

7.4文件被覆盖前做备份

命令:mv log1.txt -b log2.txt

说明:

-b 不接受参数,mv会去读取环境变量VERSION_CONTROL来作为备份策略。

–backup该选项指定如果目标文件存在时的动作,共有四种备份策略:

1.CONTROL=noneoff : 不备份。

2.CONTROL=numberedt:数字编号的备份

3.CONTROL=existingnil:如果存在以数字编号的备份,则继续编号备份m+1…n

执行mv操作前已存在以数字编号的文件log2.txt.~1~,那么再次执行将产生log2.txt~2~,以次类推。如果之前没有以数字编号的文件,则使用下面讲到的简单备份。

4.CONTROL=simplenever:使用简单备份:在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。

防火墙操作

8.1 查看防火墙状态

查看防火墙状态:sudo systemctl status firewalld

看到active(running)就意味着防火墙打开了。

8.2 关闭防火墙

关闭防火墙:sudo systemctl stop firewalld

关闭后查看是否关闭成功,如果看到inactive(dead)就意味着防火墙关闭了。

上述命令是暂时的防火墙关闭,重启系统之后就会回复之前的状态,如果是想重启后防火墙还是处于关闭的状态,得使用命令:

sudo systemctl disable firewalld

8.3 打开防火墙

打开防火墙:sudo systemctl start firewalld

长期打开防火墙同上