Linux基础命令

Linux基本命令

原文地址

Linux系统相关

  • 查看系统版本号cat /etc/redhat-release
  • 修改root密码sudo passwd
关机指令
  • shutdown -h now立马关机
  • shutdown -r now立即重启
  • shutdown -h 20:25定时关机(在今天20:25关机)
  • shutdown -h +10十分钟后关机
  • reboot重启系统相当于shutdown -r now
  • hart立即关机相当于shutdown -h now

Linux目录相关

文件相关操作

  • 查找文件位置whereis命令

  • 将文件传输到远程服务器scp -P port /test/test.txt root@host:/root

  • 给文件重命名mv oldfilename newfilename

压缩与解压缩相关
  • 压缩为tar.gz包tar -zcvf test.tar.gz test
  • 解压缩tar.gz包tar -zxvf test.tar.gz

软件相关

卸载软件
  • yum remove softname卸载yum下载的软件包
  • rpm -e softname卸载使用rpm包管理器安装的软件包
  • make uninstall卸载编译安装的软件

磁盘

磁盘分区相关

​ 在Linux中无论有多少个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分,Linux采用了一种“载入”的处理方法,它的整个文件系统中包含了一整绕的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间在一个目录下获得

​ Linux的硬盘分IDE硬盘和SCSI两种,目前SCSI使用的比较多

  • lsblk查询所有设备挂载情况
  • lsblk -f可以查看挂载设备的详细信息
给Linux增加硬盘案例

第一步:给Linux添加一块硬盘

​ 若是在虚拟机中,可以通过虚拟机添加一块硬盘,若不是虚拟机而是在实体机中可以添加实体硬盘,云服务器中可以进行扩容,添加硬盘之后需要重启Linux系统才可以在系统中通过上述命令查看到新添加的硬盘

第二步:给添加的硬盘分区

通过命令fdisk /dev/vda`对磁盘进行分区,执行后输入m表示显示命令列表,然后输入n添加一个分区,然后选择p,分区类型为主分区,然后两次回车默认剩余全部空间,最后输入w写入分区并退出,若不保存操作退出则输入q

第三步:将分区进行格式化

mkfs -t ext4 /dev/sdb1将硬盘进行格式化,其中ext4为分区类型,/dev/sdb1为新添加的分区,磁盘格式化后将会给硬盘生成一个UUID,可以通过lsblk -f查看

第四步:将分区挂载到一个目录下

通过命令mount /dev/sdb1 /newdisk可以将新创建的分区挂载到一个目录下,不过当系统重启后,通过命令方式进行的挂载将不会生效,通过命令umount /dev/sdb1或者umount /newdisk可以将分区卸载

第五步:设置可以自动挂载

通过修改配置文件/etc/fstab实现挂载,添加完成后,执行mount -a立即生效,此方法实现的挂载不会因为重启而失效

磁盘情况相关

  • df -h查询系统整体使用情况

  • du -h 查询指定目录的磁盘占用情况,默认为当前目录

    常用配置项
    -s指定目录大小汇总

    -h带计量单位

    -a包含文件

    --max-depth=1子目录深度

    -c列出明细的同时,增加汇总量

  • ls -l /opt| grep "^-" | wc -l统计某个目录下子文件的个数

    ls -l将目录打印出来后交给grep进行过滤,只匹配-开头的数据,最后通过wc -l统计数量

  • ls -l /opt| grep "^d" | wc -l统计某个目录下子目录的个数
    ls -l将目录打印出来后交给grep进行过滤,只匹配d开头的数据,最后通过wc -l统计数量

  • ls -lR /opt | grep "^-" | wc -l统计某个目录下的文件数量(包括子目录中的文件)
    加一个R表示递归的访问该目录的子目录

  • ls -lR /opt | grep "^d" | wc -l统计某个目录下的文件数量(包括子目录数量)
    加一个R表示递归,过滤正则表达式中用d表示匹配为d开头的数据

  • tree /opt用树状显示目录结构的tree目录,如果没有tree这个命令,需要通过yum install tree命令安装

网络配置相关

  • 查看网络IP指令为ifconfig

  • ping 目的主机测试主机之间的连通性

Linux网络环境配置
  • netstat -anp | grep port获取在某个端口运行的服务信息
Linux获取IP方式

第一种为DHCP(自动获取IP模式)

  • 优点:Linux启动后会自动获取IP,不会出现IP冲突问题
  • 缺点:每次获取到的IP地址都不一样(不适合作为服务器来使用)

第二种为指定静态IP方法

通过修改/etc/sysconfig/network-scripts下的ifcfg-ens33配置文件修改

设置主机名和hosts映射
  • 修改文件/etc/hostname文件指定主机名,重启生效
  • 修改文件/etc/hosts文件修改hosts映射

进程管理

进程在系统中存在两种状态:一种为前台一种为后台

  • ps命令可以查看系统中有哪些正在运行的进程,可以不加选项直接使用
  • ps选项
    • ps -a显示当前终端中所有的进程信息
    • ps -u以用户的格式显示进程信息
    • ps -x显示后台进程运行的参数
  • 使用案例,查看sshd所运行的进程信息,命令为ps -aux | grep sshd

防火墙

firewall相关

通过systemctl status firewalld可以查看防火墙是否开始

  • firewall-cmd --list-ports查看当前开放的端口
  • firewall-cmd --permanent --add-port=8080/tcp开放8080端口
  • firewall-cmd --permanent --remove-port=8080/tcp 关闭8080端口

定时任务相关

常用命令

  • crontab -e修改crontab文件,若文件不存在,则创建文件
  • crontab -l查看所有的定时任务
  • crontab -r删除定时任务crontab文件

常见使用场景

使用crontab定时执行某个shell脚本,并将执行日志进行记录

0 * * * * sh ~/test/test.sh >> ~/test/test.log

可能会出现的问题:

  • shell脚本无执行权限,解决方法:chmod +x test.sh

  • 直接执行shell脚本成功,但是放在crontab中执行脚本确是失败,错误提示找不到命令,解决方法:

    • 在crontab中脚本必须要写全路径,某则会找不到脚本的位置

    • 脚本中使用到了环境变量中存在的命令,crontab在执行脚本过程中会找不到命令,具体解决方法如下:

      • 在shell脚本中直接使用某个命令的全路径

      • 在shell脚本中加入读取环境变量:

        . /etc/profile
        . /.bash_profile
        
      • 在crontab文件中在可执行命令之前加上. /etc/profile;/bin/sh,例如

        0 * * * * . /etc/profile;/bin/sh ~/test/test.sh
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值