系统管理命令
用户和权限管理
adduser
/ useradd
添加新用户,并设置密码和用户信息。
sudo adduser newuser
sudo passwd newuser
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
passwd
更改用户密码。
passwd username
强制用户在下次登录时更改密码。
passwd -e username
chown
更改文件或目录的所有者和组。
chown user:group file.txt
递归更改目录及其内容的所有者。
chown -R user:group /path/to/directory
chmod
更改文件或目录的权限。
chmod 755 script.sh
755
表示所有者可以读写执行,组和其他用户可以读取和执行。
系统信息和日志
hostname
显示或设置系统的主机名。
hostname
sudo hostnamectl set-hostname newhostname
查看完整的主机名信息。
hostnamectl status
uptime
显示系统运行时间。
uptime
uname
显示系统信息。
uname -a
free
显示系统的内存使用情况。
free -h
df
显示文件系统的磁盘空间使用情况。
df -h
du
显示目录或文件的磁盘使用情况。
du -sh /var/log
ps
显示当前运行的进程。
ps aux
按树状结构显示进程。
ps -ef --forest
top
显示系统任务。
top
htop
交互式进程查看器,比 top
更加友好和功能丰富。
htop
journalctl
查看系统日志。
journalctl -xe
查看特定服务的日志。
journalctl -u httpd.service
系统控制和维护
shutdown
关闭系统。
sudo shutdown -h now
定时关闭系统。
sudo shutdown -h +10 "System will shutdown in 10 minutes"
reboot
重启系统。
sudo reboot
kill
终止进程。
kill -9 1234
列出进程并使用 kill
终止。
ps aux | grep process_name
kill -TERM <pid>
服务管理
systemctl
管理系统服务。
sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl status httpd
防火墙管理
firewall-cmd
管理 firewalld 防火墙规则。
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
查看当前的防火墙规则。
sudo firewall-cmd --list-all
文件和目录操作命令
ls
列出目录内容。
ls -la
显示文件大小和单位。
ls -lh
cd
更改当前工作目录。
cd /path/to/directory
返回上一级目录。
cd ..
cp
复制文件或目录。
cp source.txt destination.txt
递归复制目录。
cp -r source_directory destination_directory
mv
移动或重命名文件或目录。
mv oldname.txt newname.txt
移动目录。
mv /path/to/source_directory /path/to/destination_directory
rm
删除文件或目录。
rm file.txt
递归删除目录。
rm -r directory
mkdir
创建目录。
mkdir new_directory
递归创建多级目录。
mkdir -p /path/to/new_directory
touch
创建空文件或更新文件时间戳。
touch newfile.txt
ln
创建符号链接或硬链接。
ln -s /path/to/file linkname
创建硬链接。
ln /path/to/file linkname
网络管理命令
ping
检查网络连接和响应时间。
ping google.com
设置 ping 请求次数。
ping -c 4 google.com
ifconfig
显示或配置网络接口(已被 ip
命令替代,但仍然常用)。
ifconfig
配置网络接口。
ifconfig eth0 up
ip
显示或操作网络接口和路由。
ip addr show
ip link set eth0 up
查看路由表。
ip route show
netstat
显示网络连接、路由表等信息(已被 ss
替代)。
netstat -tuln
显示所有网络连接。
netstat -a
nmap
网络扫描工具,用于发现网络设备和服务。
nmap -sP 192.168.1.0/24
扫描开放端口。
nmap -p 1-65535 localhost
scp
通过 SSH 复制文件。
scp file.txt user@remote:/path/to/destination
复制目录。
scp -r directory user@remote:/path/to/destination
ssh
连接远程主机。
ssh user@remote_host
使用特定的私钥文件进行连接。
ssh -i /path/to/private_key user@remote_host
curl
命令行工具,用于传输数据,支持多种协议(HTTP、FTP等)。
curl -O http://example.com/file.txt
发送 POST 请求。
curl -X POST -d "param1=value1¶m2=value2" http://example.com/submit
文本处理命令
cat
连接并显示文件内容。
cat file.txt
grep
文本搜索工具,用于在文件中搜索匹配的字符串。
grep "search_term" file.txt
递归搜索目录中的文件。
grep -r "search_term" /path/to/directory
awk
一个强大的文本处理工具,适用于文件的筛选和报告生成。
awk '{print $1}' file.txt
使用 awk
进行更复杂的数据处理。
awk -F, '{print $1, $3}' file.csv
-F
指定字段分隔符。
sed
流编辑器,用于对文本进行查找和替换。
sed 's/old/new/g' file.txt
nano
简单的文本编辑器,易于使用。
nano file.txt
vim
高级文本编辑器,功能强大。
vim file.txt
diff
比较两个文件的差异。
diff file1.txt file2.txt
生成差异补丁文件。
diff -u file1.txt file2.txt > patch.diff
软件包管理命令
yum
软件包管理器,用于安装、更新和删除软件包。
sudo yum update
sudo yum install package_name
dnf
CentOS 8 及以后的版本推荐使用的包管理器。
sudo dnf install package_name
其他实用命令
echo
打印字符串到终端。
echo "Hello, World!"
打印环境变量。
echo $HOME
alias
为命令创建别名,以便更快地使用复杂的命令。
alias ll='ls -la'
取消别名可以使用 unalias
。
unalias ll
find
在目录中搜索文件和目录。
find / -name "file.txt"
根据文件大小搜索文件。
find / -size +500M
man
显示命令手册页,提供详细的命令使用说明。
man ls
exit
退出当前会话或 shell。
exit
通过这些命令,你可以高效地管理和操作你的 CentOS 系统。