1. ** 系统命令 **
1.1. 重启
`reboot` | 立刻重启 | |
`shutdown -r now` | 立刻重启 | root用户使用 |
`shutdown -r 10` | 10分钟后自动重启 | 如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启 |
`shutdown -r 20:35` | 在时间为20:35时重启 | root用户使用 |
shuntdown为系统安全关机/重启的命令,通过参数-h或-r的配合来完成关机或重启。不过在linux系统中只有拥有root权限才可以使用这个命令。
1.2. 关机
`halt` | 立刻关机 | |
`poweroff` | 立刻关机 | |
`shutdown -h now` | 立刻关机/td> | root用户使用 |
`shutdown -h 10` | 10分钟后自动关机 | root用户使用 |
1.3. 查询程序进程或端口占用情况
1.3.1. 查询程序进程
ps -ef | grep <程序名>
,如ps -ef | grep nginx
;ps -ef | grep tomcat
1.3.2. 查看端口占用情况
- 查看已经连接的服务端口(ESTABLISHED)
netstat -a
- 查看所有的服务端口(LISTEN,ESTABLISHED)
netstat -ap
- 查看指定端口,可以结合grep命令:
netstat -ap | grep <pid>
,如:netstat -ap | grep 8080
- 查看指定端口,也可以结合lsof命令:
lsof -i:<pid>
,如:lsof -i:8888
1.3.3. 关闭端口程序进程
kill -9 <pid>
,如kill -9 8080
kill就是给某个进程id发送了一个信号。默认发送的信号是SIGTERM,而kill -9发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程。
1.3.4. 查看端口号对应的系统服务名称
cat /etc/services
1.4. 系统服务及防火墙管理
1.4.1. 启动系统服务
sudo /etc/init.d/service start
1.4.2. 停止系统服务
sudo /etc/init.d/service stop
1.4.3. 重启系统服务
sudo /etc/init.d/service restart
1.4.4. 查看端口号对应的系统服务名称
cat /etc/services
1.5. ufw 防火墙设置
1.5.1. 查看防火墙状态/查看当前防火墙使用规则
sudo ufw status
1.5.2. 防火墙的安装
sudo apt-get install ufw
ubuntu 系统默认已安装ufw。
1.5.3. 开启防火墙
sudo ufw enable
1.5.4. 关闭防火墙
sudo ufw disable
1.5.5. 打开或关闭某个端口
sudo ufw allow|deny [service|port]
如:sudo ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口
;sudo ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口
;sudo ufw allow 53 允许外部访问53端口(tcp/udp)
;sudo ufw allow from 192.168.1.100 允许此IP访问所有的本机端口
;sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
;sudo ufw deny smtp 禁止外部访问smtp服务;
sudo ufw delete allow smtp 删除上面建立的某条规则
;
1.6. 系统缓存/硬盘空间状态查看及管理
1.6.1. 查看内存使用情况
命令: free -m
返回参数及说明:
total | 内存总数 |
used | 已使用的内存数 |
free | 空闲的内存数 |
shared | 多个进程共享的内存总额 |
1.6.2. 查看磁盘占用情况
命令: df -lh
返回参数及说明:
Used | 已经使用的空间 |
Avail | 可以使用的空间 |
Mounted on | 挂载的目录 |
类似的命令还有:
df -h --total | 显示磁盘的单个文件系统的利用率 |
df -T | 展示文件系统类型 |
df -a | 显示虚拟文件系统的信息 |
df -T -h | 检查硬盘使用情况 |
fdisk -l | 检查磁盘分区 |
1.6.3. 查看索引节点(Inode)的占用情况
命令: df -i
在Linux中,inode是用来存储特定文件的元数据的一种数据结构,在创建一个文件系统时,inode的预先定义数量将被分配。这意味着,一个文件系统可能耗尽空间不只是因为大文件用完了所有可用空间,也可能是因为很多小文件用完了所有可能的inode。
磁盘块和索引节点其中之一满,都会导致无法创建文件,提示磁盘空间已满。有时系统运行的nginx服务器突然报500错误,也有可能是因为磁盘空间/索引或系统内存已满。此时应注意查看磁盘空间,及时清除无效文件或缓存。
1.6.4. 查找并列出系统大文件
命令: find / -size +<文件体积> |xargs ls -lh
;
如:find / -size 100M |xargs ls -lh
为列出系统内大于100M的文件。
1.6.5. 清空log文件
命令: cat /dev/null > <文件及路径>
;
如:cat /dev/null > /home/Tomcat7_server/apache-tomcat-7.0.69/logs/catalina.out
为清空Tomcat日志文件;cat /dev/null > /usr/local/nginx/logs/access.log
为清空Nginx服务器的 access.log文件。
1.6.6. 查看当前目录内文件夹的大小
命令: du -h --max-depth=1
1.6.7. 清理程序升级缓存以及无用包
- 清理旧版本的软件缓存
sudo apt-get autoclean
; - 清理所有软件缓存
sudo apt-get clean
; - 删除系统不再使用的孤立软件
sudo apt-get autoremove
;
1.6.8. 清理Linux下孤立的包
sudo apt-get install deborphan -y
2. ** 软件源码包的安装与卸载 **
2.1. 源码包的下载与解压
2.1.1. tar.gz类压缩包
- 直接解压:
tar -xvzf <文件名称>.tar.gz
; - tar.gz文件解至tar文件:
gzip -d <文件名称>.tar.gz
;
2.1.2. tar未压缩类文件包
- 解包:
tar -xvf <文件名称>.tar
; - 打包:
tar -cvf <文件名称>.tar <文件列表>
;
2.1.3. zip类文件包
- 解压:
unzip <文件名称>.zip -d dir
; - 打包:
zip zipfile <待压缩文件列表>
;
2.1.4. bz2类文件包
- 解压:
bunzip2 <文件名称>.bz2
或bzip2 -d <文件名称>.bz2
; - 压缩:
bzip2 <待压缩文件>
;
2.1.5. z类文件包
解压:uncompress <文件名称>.z
;
压缩:compress <文件名称>
;
2.2. 通过源码包安装程序
- 配置:解压目录下
./configure
; - 编译:解压目录下
make
; - 安装:解压目录下
make install
;
2.3. 源码包程序的卸载
- 移除软件:
sudo apt-get remove --purge <软件名>
; - 移除软件的依赖:
sudo apt-get autoremove --purge <软件名>
; - 删除系统不再使用的孤立软件:
sudo apt-get autoremove
; - 清理旧版本的软件缓存:
sudo apt-get autoclean
; - 清除残余的配置文件/清理残留数据:
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
;
3. ** 文件及文件夹的管理 **
3.1. 文件/文件夹的复制
3.1.1. 基本语法
cp [选项] <源文件1>/<文件夹1> <源文件2>/<文件夹2> <源文件3>/<文件夹3> ... <目标路径>
具体选项及作用如下:
选项 | 适用情况 | |
- a | 通常在拷贝目录时使用。保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合 | |
-d | 拷贝时保留链接 | |
-f | 强制覆盖同名文件而不提示 | |
-i | 交互式拷贝。与f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖 | |
-p | 除复制源文件的内容外,其修改时间和访问权限也将复制到新文件中 | |
-r | 此时目标文件必须为一个目录名,cp将递归复制该目录下所有的子目录和文件。 | |
-l | 不作拷贝,只是链接文件 |
【注】为防止用户在不经意的情况下用
cp
命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖。因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
3.1.2. 常用案例
|
3.1.3. 文件/文件夹同时复制到多个路径的方法
如果想要复制一个特定文件到 5 个或者更多的文件夹中,有不希望重复输入 5 次或者更多的cp
命令,你可以用 cp
命令与 echo
命令、管道、xargs
命令一起使用,实现同步复制文件到多个路径。
具体做法如下:
echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh
上面的命令中,目录的路径(dir1、dir2、dir3…dirN)被管道作为输入到
xargs
命令中,具体含义如下:
-n 1
- 告诉 xargs 命令每个命令行最多使用一个参数,并发送到 cp 命令中;-
cp
– 用于复制文件。; -
-v
– 启用详细模式来显示更多复制细节。
3.2. 文件/文件夹的移动
文件及文件夹的移动命令相对简单,基本语法如下:
mv <源文件>/<文件夹> <目标路径>
例:
mv index.jsp /home/tomcat/webapps
mv /data/new /data/old/
如果是移动文件夹下的所有文件的话就可以文件夹后面跟上
/*
,如:
mv /data/new/* /data/old/
3.3. 文件/文件夹的移除
3.3.1. 基本语法
rm [选项] <源文件>/<文件夹>
选项及作用如下:
选项 | 严谨程度 | |
-f / --force | 强制删除,无需确认 | |
-i | 每删除一个文件或进入一个子目录都要求确认 | |
-I | 在删除超过三个文件或者递归删除前要求确认 | |
-r / -R | 递归删除子目录,常用在目录的删除 | |
-d / --dir | 删除空目录 | |
-fr | 删除非空目录 | |
-v, --verbose | 显示删除结果 |
3.3.2. 常用案例
rm -d <目录名> 目录名> | 删除选定空目录 |
rmdir <目录名> 目录名> | 删除选定空目录 |
rm -r <目录名> 目录名> | 删除选定非空目录 |
rm <文件名> 文件名> | 删除选定文件 |