Linux使用备注
Linux系统相关
关机指令
shutdown -h now
立马关机shutdown -r now
立即重启shutdown -h 20:25
定时关机(在今天20:25关机)shutdown -h +10
十分钟后关机reboot
重启系统相当于shutdown -r now
hart
立即关机相当于shutdown -h now
Linux目录相关
文件相关操作
Linux将文件传输到远程服务器命令为
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端口
定时任务相关
常用命令
crontab -e
修改crontab文件,若文件不存在,则创建文件crontab -l
查看所有的定时任务crontab -r
删除定时任务crontab文件
常见使用场景
使用crontab定时执行某个shell脚本,并将执行日志进行记录
1 | 0 * * * * sh ~/test/test.sh >> ~/test/test.log |
可能会出现的问题:
shell脚本无执行权限,解决方法:
chmod +x test.sh
直接执行shell脚本成功,但是放在crontab中执行脚本确是失败,错误提示找不到命令,解决方法:
在crontab中脚本必须要写全路径,某则会找不到脚本的位置
脚本中使用到了环境变量中存在的命令,crontab在执行脚本过程中会找不到命令,具体解决方法如下:
在shell脚本中直接使用某个命令的全路径
在shell脚本中加入读取环境变量:
1
2. /etc/profile
. /.bash_profile在crontab文件中在可执行命令之前加上
. /etc/profile;/bin/sh
,例如1
0 * * * * . /etc/profile;/bin/sh ~/test/test.sh