linux基础命令
2020-04-17
8 min read
一、常用基础操作
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