Ping命令
ping是一个重要的命令,用于测试服务器是否在线。协议是ICMP,internet控制消息协议,ping相当于icmp请求,服务器给出icmp回应。基本用法:
ping 13.214.215.52
如果服务器在线,就会有回应。当然也可以ping域名
ping blog.kelemi.top
在Linux下,ping会不停地进行,停止的话,按ctrl+c中止。
在windows下,ping不会一直执行,一般只ping四个包就停止,这是他们之间的区别。
可以指定发几个包,比如6个
ping -c 6 blog.kelemi.top
可以查看丢包情况,当然越低越好。ping通常作为查找网络故障的第一步。但ping不能告诉我们更多的情况,一般还要再用其他工具查找故障。
有时我们需要确定我们是否在线,一般ping 谷歌DNS或阿里DNS就好。
ping -c 5 8.8.8.8或 ping -c 223.5.5.5
wget命令
linux服务器一般没有图形界面,从internet上下载软件不太方便,而wget则可以帮助我们实现这个需求。
首先确认系统是否有wget。
which wget
没有的话,需要先安装,比如 sudo dnf install wget。
我们来下载新版wordpress试试,首先在wordpress官网上找到,并复制下载链接,比如是 https://wordpress.org/latest.zip,我们可以下载
wget https://wordpress.org/latest.zip
可以加上一些选项:
wget -O wp.zip https://wordpress.org/latest.zip
大写O表示下载后改名为wp.zip
wget -P /home/kelemi/Downloads https://wordpress.org/latest.zip
默认wget下载到当前目录,大写P选项更改下载的目录。
前面是下载小文件,有时候需要下载大文件,比如下载几GB的操作系统镜像,需要比较长的时间,过程因为网络或其他原因中断了,我们肯定不希望从头开始。可以使用 -c选项。
wget https://mirrors.aliyun.com/ubuntu-releases/focal/ubuntu-20.04.5-desktop-amd64.iso
中间网络中断了,我们重新连上网络想继续下载, 则可以加上 -c选项
wget -c https://mirrors.aliyun.com/ubuntu-releases/focal/ubuntu-20.04.5-desktop-amd64.iso
wget也可以从文件中读取下载列表,我们建立一个文件,fetch-list.txt。这个文件为两行:
https://mirrors.aliyun.com/ubuntu-releases/focal/ubuntu-20.04.5-desktop-amd64.iso
https://wordpress.org/latest.zip
然后我们可以执行
wget -i fetch-list.txt
将自动下载ubuntu和wordpress这两个文件中列的链接内容。
df与du命令
本节来查看存储空间的情况。
df
不带任何参数的df输出存储空间的情况,一般我们都带上 -h 参数将相应数字对人类友好的信息:
df -h
可以看到有文件系统,大小,已用空间,可用,已用空间百分比以及挂载的文件目录位置。
我们可以增加一个参数 -T,会多显示一个列,该列显示挂载的文件系统类型,比如根目录挂载的文件系统为 ext4,启动文件为 vfat类型,还有一些tmpfs的类型。
df -h -T
当然各参数也可以合并:df -hT
tmpfs文件系统列出目前对我们没什么意义,要排除它。
df -hT -x tmpfs
使用 -x 选项排除tmpfs系统,如果你愿意,也可以排除ext4,比如df -hT -x ext4,总之用 -x 可以排除任何你想隐藏的行。当然也可以参数合起来,比如 df -hTx temps
再来看一下与df配合的用例
watch df -hTx temps
watch命令表示重复执行,上面这条命令执行后,一旦插入外部存储比如U盘,马上就显示出来。
df命令能让我们方便查看磁盘占用情况,但有时我们需要知道文件或目录占用的空间,就需要du出马了。
du /home/kelemi
会输出该目录下每个文件的原始大小,有点乱。可以像df一样,加 -h 选项。-h 可以让数字让人更容易理解,不过还是很乱。我们需要控制显示的深度。
du -h –max-depth 1 /home/kelemi
这样就限制深度就是一级,显示出来就比较清晰,当然也可以设深度为2或其他数字。对于显示选定目录的大小,还有更好的命令
du -hs /home/kelemi
-s 表示是摘要。也可以同时显示多个目录的大小
sudo du -hs /home/kelemi /etc
将显示这两个目录的占用大小。我们还可以加上 -c 参数,将各个目录的总和统计出来。
sudo du -hsc /home/kelemi /etc
上面的命令实际用处不大,下面这个是有用的
du -hsc /home/kelemi/*
列出当前目录的列表及统计。
有一个比较好的包是ncdu,它可以方便协助列出文件夹的大小,而且默认按大小排序。安装好ncdu包后,运行
ncdu
head与tail命令
head和tail命令用于查看文件头和结尾。第一个示例查看syslog
head /var/log/syslog
默认情况下,head输出文件的前10行,可以用 head /var/log/syslog | wc -l 验证一下。同样的,tail命令是显示文件的后10行。
tail /var/log/syslog
可以指定显示的行数
cp /var/log/syslog . |
head -n 25 syslog |
我们先将syslog拷贝一个副本,可不想直接在生产日志直接操作。-n 25 表示显示25行。可以验证下 head -n 25 syslog | wc -l ,结果是25行。tail也是同样的可以指定行数。
tail -n 25 syslog
head可以组合在其他命令,比如我们想查找syslog中的ssh记录的前10行。
cat syslog | grep ssh | head
也可以再进行一次统计 cat syslog | grep ssh | head | wc -l
tail命令也一样可以这么操作。但tail有个特别的用法是 -f 这是head中没有的,用于实时跟踪文件的内容。
tail -f /var/log/syslog
当系统日志有新内容,将实时显示在屏幕上。比如我们可以另开一个窗口运行 :sudo systemctl restart sshd,在实时窗口就能看到日志。当然实际并非实时,一般是隔几秒更新一次。这在有些时候是非常有用的,比如我们系统有个auth.log日志,用于监视用户登录的情况并记录错误信息。
tail -f /var/log/auth.log
显示最后10行,然后不停止,一直在监视该文件。我们有个小技巧,可以回车几行,这样就能与原来的日志有清晰分隔。然后另开窗口,用户尝试登录系统,并故意输错密码,可以看到实时查看文件的窗口能看到相应登录的错误信息。