linux基础命令

一、常用基础操作

1.1 查看磁盘大小

df -h

1.2 查看内存大小

free -h

1.3 查看系统信息

cat /etc/redhat-release
# 查看cpu信息
lscpu

# 查看cpu的个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

# 查看每个物理CPU中core的个数(核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq

# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

# 查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

1.4 查看内核版本与升级内核

uname -a
  • 升级内核
# 导入仓库源
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
# 查看可以使用系统内核包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
# 安装指定的内核
yum install -y kernel-ml-5.6.10-1.el7.elrepo --enablerepo=elrepo-kernel

grub2-set-default 0
grub2-mkconfig -o /boot/grub2/grub.cfg
grubby --default-kernel
reboot

1.5 修改主机名

  • 使用这个命令会立即生效且重启也生效
hostnamectl set-hostname mgc

vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1  mgc
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

1.6 查看端口号

  • centos7默认没有 netstat 命令,需要安装 net-tools 工具,yum install -y net-tools
  • ss(Socket Statistics的缩写)命令可以用来获取 socket统计信息(查询端口占用),比 netstat 更快速高效
netstat -tunlp|grep 端口号
或者
ss -anlp | grep 端口号
ss命令参数
-n, –numeric 不解析服务名称
-r, –resolve 解析主机名
-a, –all 显示所有套接字(sockets)
-l, –listening 显示监听状态的套接字(sockets)
-o, –options 显示计时器信息
-m, –memory 显示套接字(socket)的内存使用情况
-p, –processes 显示使用套接字(socket)的进程

1.7 防火墙相关

# centos7
firewall-cmd --state

service firewalld start 开启
service firewalld stop 关闭
  • 查看防火墙开放的端口信息
firewall-cmd --list-ports
  • 新增开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent

–-zone 作用域
–-add-port=80/tcp 添加端口,格式为:端口/通讯协议
–-permanent 永久生效,没有此参数重启后失效
  • 新增多个端口(区间)
firewall-cmd --zone=public --add-port=80-85/tcp --permanent
  • 重新加载防火墙规则
firewall-cmd --reload
  • 删除端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent

1.8 杀死进程与查看相关进程

netstat -antp
kill -s 9 1827

其中-s 9 制定了传递给进程的信号是9,即强制、尽快终止进程。各个终止信号及其作用见附录。

1.9 查看路由

ip  route

1.10罗列使用CPU资源最多的linux任务(输入q退出)

top   

二、文件和目录

2.1 目录文件基础操作

cd 进入目录
示例:cd /home 进入home目录    
cd ../    返回上一级目录
cd ../..    返回上两级目录
cd -    返回上次所在目录
cd ~    返回根目录


cp
cp file1 file1    文件复制
cp -a
cp -a dir1 dir2    复制一个目录
cp -a /tmp/dir1 .     复制一个目录到当前工作目录
(.代表当前目录)

ls    查看目录中的文件
ls -a    显示隐藏文件
ls -l    显示详细信息
ls -lrt    按时间显示文件(l表示详细列表,r表示反向排序,t表示按时间排序)

pwd    显示工作路径

mkdir dir1    创建dir1目录
mkdir dir1 dir2    同时创建两个目录
mkdir -p /tmp/dir1/dir2     创建一个目录树

mv dir1 dir2     移动/重命名一个目录

rm -f file1    删除文件file1
rm -rf dir1    删除目录dir1及其子目录

2.2 查看文件内容

cat file1 从第一个字节开始正向查看文件的内容
tac file1 从最后一行开始反向查看一个文件的内容


head -2 file1 查看一个文件的前两行
more file1 查看一个长文件的内容

tail -3 file1 查看一个文件的最后三行
tail -f file1 实时查看文件内容

2.3 文本处理

grep str /tmp/test 在文件 '/tmp/test' 中查找 "str"
grep ^str /tmp/test 在文件 '/tmp/test' 中查找以 "str" 开始的行
grep [0-9] /tmp/test 查找 '/tmp/test' 文件中所有包含数字的行
grep str -r /tmp/* 在目录 '/tmp' 及其子目录中查找 "str"
diff file1 file2 找出两个文件的不同处
sdiff file1 file2 以对比的方式显示两个文件的不同

2.4 查找

find / -name file1 从 '/' 开始进入根文件系统查找文件和目录
find / -user user1 查找属于用户 'user1' 的文件和目录
find /home/user1 -name \*.bin 在目录 '/home/user1' 中查找以 '.bin'结尾的文件
find /usr/bin -type f -atime +100 查找在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 查找在10天内被创建或者修改过的文件
locate \*.ps 寻找以 '.ps' 结尾的文件,先运行 'updatedb' 命令
find -name '*.[ch]' | xargs grep -E'expr'在当前目录及其子目录所有.c和.h文件中查找 'expr'
find -type f -print0 | xargs -r0 grep -F 'expr'在当前目录及其子目录的常规文件中查找 'expr'
find -maxdepth 1 -type f | xargs grep -F 'expr' 在当前目录中查找'expr'

三、yum工具

yum -y install [package] 下载并安装一个rpm包
yum localinstall [package.rpm] 安装一个rpm包,使用你自己的软件仓库解决所有依赖关系
yum -y update 更新当前系统中安装的所有rpm包
yum update [package] 更新一个rpm包
yum remove [package] 删除一个rpm包
yum list 列出当前系统中安装的所有包
yum search [package] 在rpm仓库中搜寻软件包
yum clean [package] 清除缓存目录(/var/cache/yum)下的软件包
yum clean headers 删除所有头文件
yum clean all 删除所有缓存的包和头文件

四、系统服务

systemctl -at service
ls /etc/systemd/system/*.service 服务目录
ls /usr/lib/systemd/system/*.service
systemctl -t service --state=active 查看活动的服务
systemctl start name.service 启动服务(name=服务名)
systemctl stop name.service 停止服务
systemctl status name.service  查看服务器状态
systemctl is-enabled name 检查服务是否enabled
systemctl enable name.service 设置开机服务启动
systemctl disable name.service 禁用服务
systemctl daemon-reload  /etc/systemd/system/*.service 创建新的服务 

五、用户相关

5.1 新建用户

adduser testuser //新建testuser 用户 
passwd testuser //给testuser 用户设置密码

5.2 建工作组

groupadd testgroup //新建test工作组

5.3 新建用户同时增加工作组

useradd -g testgroup testuser //新建testuser用户并增加到testgroup工作组

//注::-g 所属组 -d 家目录 -s 所用的SHELL

5.4 给已有的用户增加工作组

usermod -G groupname username