知识的荒漠

不积跬步无以至千里,不积小流无以成江海;千里之行,始于足下!

用户工具

站点工具


服务器:nas:ubuntu常用命令

Linux服务管理

Systemd已经基本取代了SysV的Init;
对于支持service的程序,安装的时候会自动的在/etc/init.d目录添加一个配置文件。当我们使用service控制程序时,比如执行开启httpd的服务:service httpd start。那么我们的service 就会开启/etc/init.d/httpd配置文件里面指向的/usr/sbin/httpd可执行文件;
对于支持systemd的程序,安装的时候,会自动的在/usr/lib/systemd/system目录添加一个配置文件。当我们使用systemctl控制该程序时,比如执行开启httpd服务:systemctl start httpd.service。那么我们的systemctl就会开启httpd.service配置里面指向的/usr/sbin/httpd可执行文件;
如果我们想让该程序开机启动,我们可以执行命令systemctl enable httpd,这个命令相当于在/etc/systemd/system目录添加一个软链接,指向/usr/lib/systemd/system目录下的 httpd.service文件。这是因为开机时,Systemd只执行/etc/systemd/system目录里面的配置文件。

服务管理基本命令路径备注
/etc/init.dsudo /etc/init.d/ssh restart/etc/init.dsysVinit服务的启动方式,最古老用法
servicesudo service ssh restart同上也是sysVinit,比/etc/init.d先进一点,底层还是调用/etc/init.d
systemctlsudo systemctl restart ssh/etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接,优先级最高
/run/systemd/system 系统执行过程中产生的服务脚本,优先级次之
/lib/systemd/system 存放系统上所有的启动文件。优先级最低
systemctl是systemD命令的主要方式

Ubuntu常用命令

nohup 你的shell命令 & #nohup命令可以让你的shell命令忽略SIGHUP信号,即可以使之脱离终端运行;“&”可以让你的命令在后台运行
#用户的 Cron 定时任务
crontab -l #获得你所登录的当前用户名下的所有 Cron 定时任务
sudo crontab -u mark -l #列出用户名为“mark” 的 cron 任务
sudo ls -1 /var/spool/cron/crontabs #列出那些用户创建了 cron 定时任务,以 root 或者其他 sudo 用户身份列出spool目录
#系统的定时任务
cat /etc/crontab /etc/cron.d/* #在/etc/crontab和在/etc/cron.d目录下的文件都是系统范围的 crontab 文件,它们仅仅可以被系统管理员编辑
ls -l /etc/cron.weekly/ #查看所有的周定时任务
#systemd 定时器
systemctl list-timers #Systemd 定时器是一些以*.timer的单元文件,它允许你基于时间来运行任务
#进程相关
ps -aux #查看进程号,可以看到进程用户
ps -aux | more #全部查看
ps -ef | grep mysql #查看mysql的进程
ps -aux | grep monit #查看monit的相关进程信息
kill -9 3306 #强制杀掉进程号3306
ps aux | grep 'Z' #查看僵尸进程,其他命令:ps -ef | grep defunct,top中S栏显示状态为Z
pstree -p -s PID #查找僵尸进程的父进程,在kill掉
#软件更新、删除
sudo apt-get update && sudo apt-get upgrade -y #更新软件源并更新软件
sudo apt-get dist-upgrade #根据列表更新已安装的软件包。可能会为了解决软件包冲突而删除一些已安装的软件包,也可能会为了解决软件包依赖问题安装新的软件包
sudo apt-get autoremove #删除不再需要的软件包
sudo apt-get autoclean #把已经删除了的软件包的.deb安装文件从硬盘中删除掉
sudo apt-get remove --purge virtualbox #删除已安装包(不保留配置文件)
sudo nano /etc/apt/sources.list
dpkg -l | grep mysql #查看安装的所有包含mysql的程序和版本号,配合sudo apt-get remove --purge mysql-*删除残留
find . -type f -size +100M #查找大于100M的文件
whereis ssh #查看ftp安装路径
whereis -b hddtemp #查找hddtemp的二进制文件位置
locate your_file_name #查找符合条件的文档,他会去保存文档和目录名称的数据库内查找
#硬盘、文件、权限相关
file <可执行文件> #查看可执行文件是32位还是64位
sudo rm -rf /home/app/wallabag #删除文件夹
#linux系统中,文件夹名后加/,主要是为了区别文件夹(末尾加不加/无区别)与其他标准文件(末尾不能加/),说明这是一个文件夹
find -type d -empty | xargs -n 1 rm -rf #批量删除当前目录下的所有空目录find -type d -empty(查找当前目录下的所有空目录),xargs -n 1 rm -rf(将查找到的所有空目录逐项删除)
sudo fdisk -l #查看硬盘及分区信息
sudo df -hT #-T选项,查看文件系统类型
sudo df -hl #查看是否挂在成功及硬盘使用率,-l选项,只显示本地文件系统
sudo chmod -R 755 /var/www/html/tool/katana #修改文件(文件夹)操作权限
sudo chown -R www-data:www-data /var/www/html/tool/katana #修改文件(文件夹)拥有者,用户名:用户组
sudo ln -s /usr/share/phpmyadmin /var/www/html #创建软连接:ln -s [源文件或目录] [目标文件或目录]
sudo rm –rf /var/www/html/phpmyadmin #删除软连接,千万注意末尾不能带'/';带'/'表示删除目标目录phpmyadmin中的文件,不带'/'删除的是phpmyadmin本身软链接;
#建议不要带递归选项r,直接rm -f phpmyadmin删除软连接,防止rm -rf phpmyadmin/时误删目标目录中的文件
sudo ln –snf [新的源文件或目录] [目标文件或目录] #修改软链接
#其他常用
sudo shutdown -r now #对比reboot,shutdown命令可以安全地关闭或重启Linux系统
#网络相关
route add 192.168.1.0 mask 255.255.255.0 10.8.0.2 #10.8.0.2是vpn连通后分配的ip地址
lshw -c network #也可用ifconfig;lshw命令用来显示系统硬件信息,network说明显示网卡信息,-c说明显示详细内容
ethtool enp1s0 #查询网卡基本信息(是否运行在千兆);例如Wake-on: g(g表示已启动,d表示禁用)
netstat -an | grep LISTEN  #结合grep查看网络端口的监听情况
netstat -tunlp | grep 80 #查看80端口被哪个程序占用
netstat -ap | grep 8080  #结合grep查看指定服务端口,也可用lsof -i:8080
#grep 8080 显示所有输出结果行带8080的,不带8080的不输出显示
#通过路由端口映射的不推荐开启ufw,dmz的可以考虑开启
sudo ufw status #ubuntu默认禁用,显示的是:Status: inactive;配置文件位于/etc/default/ufw
sudo ufw enable|disable|reset #启用,禁用,重置防火墙
sudo ufw allow 22|ssh #22,ssh均可,允许ssh的22端口传入和传出连接
sudo ufw allow 80/tcp #其它参考:http/tcp,1725/udp,8000:8100/tcp
sudo ufw status numbered #输出ufw规则编号列表
sudo ufw delete 2 #通过规则编号删除
sudo ufw delete allow 80 #通过实际规则删除
#内核相关
grep -c '(svm|vmx)' /proc/cpuinfo #返回0表示CPU不支持虚拟化
uname -a #查看系统内核,uname -m显示主机的硬件架构名称
getconf LONG_BIT #判断系统32位还是64位
dpkg --get-selections | grep linux-image #当前已安装的内核
apt remove linux-image-(版本号) #删除内核
sudo apt-get purge linux-image-(版本号) #清理内核
up­date-grub #更新grub
ls /boot #查看boot目录的文件信息

Ubuntu重启命令

sudo service ssh restart
sudo service smbd start|stop|restart|status|reload #samba
sudo systemctl restart mysql #老版命令为:sudo service mysql restart
sudo systemctl restart nginx
#
sudo systemctl restart apache2
service --status-all | grep -i fpm #查看所有包含fpm的服务
sudo service php7.4-fpm restart #重启php-fpm
sudo a2dismod|a2enmod rewrite|dav_fs #关闭|开启apache2的rewrite|webdav等模块
sudo a2dissite|a2ensite xxx #关闭|开启站点
php -m #查看所有已安装模块
sudo php -i | grep "mcrypt" #查看php是否已安装mcrypt模块
sudo apt install php-curl php-mbstring php-gd php-mysql php-sqlite3 php-mcrypt php-bcmath php-xml php-tidy php-bz2 php-imagick php-soap php-zip #常用模块
#
sudo service cron restart
sudo crontab -l #查看是否已正常加载
#
sudo monit -t #配置文件检测
sudo /etc/init.d/monit restart
monit stop all|nginx #别手贱,如果有监控ssh,执行后就登录不上了
monit start all|nginx

Ubuntu监控相关命令

sudo hdparm -C /dev/sdb #查看硬盘状态,standby=待机,sleep=睡眠,active=正常运行
sudo hddtemp /dev/sda #查看硬盘温度
sensors #查看CPU温度
sudo smartctl -A /dev/sda #查看硬盘详细smart信息
sudo smartctl -H /dev/sda #查看硬盘的健康状况
apcaccess status #apcupsd查看ups信息
sudo usbsrv -list #USB Redirector查看usb设备信息
sudo usbsrv -share 8 #共享usb设置
sudo usbsrv -timeout 30 8 #共享的usb设置30秒自动踢
sudo usbsrv -t 8 #取消共享
sudo parted /dev/sda
align-check optimal 1 #检查分区是否对齐,1替换为合适的分区号,返回1 aligned即对齐
#fail2ban相关
cat /var/log/fail2ban.log | grep " Ban " #查看禁用ip,抛弃cat /var/log/fail2ban.log | grep "NOTICE" | grep "Ban"
cat /var/log/fail2ban.log | grep `date +%Y-%m-%d` | grep " Ban " #抛弃cat /var/log/fail2ban.log | grep "2020-08-08" | grep " Ban "
sudo iptables -L #检查防火墙查看禁止的IP地址的状态
sudo fail2ban-client status #查看所有fail2ban状态,后面可加相关监控配置名查看具体信息
sudo fail2ban-client set sshd unbanip <IP Address> #解锁指定ip,允许其访问sshd
服务器/nas/ubuntu常用命令.txt · 最后更改: 2020/09/25 20:33 由 caiweizhi