在 Linux 系统中,通过命令行进行用户管理是一项重要的系统管理任务。以下是一些常用的用户管理命令及其使用方法:
创建新用户:
sudo useradd username
创建带有家目录的新用户:
sudo useradd -m username
创建带有指定 UID 的新用户:
sudo useradd -u uid username
创建带有指定主组的新用户:
sudo groupadd groupname
sudo useradd -g groupname username
创建带有多个附加组的新用户:
sudo groupadd group1
sudo groupadd group2
sudo useradd -G group1,group2 username
修改用户的密码:
sudo passwd username
修改用户的主目录:
sudo usermod -d /path/to/new/home/directory username
修改用户的登录 Shell:
sudo usermod -s /bin/bash username
禁用用户账号(设置密码过期):
sudo usermod -L username
启用用户账号(取消密码过期):
sudo usermod -U username
查看所有用户列表:
cat /etc/passwd
查看特定用户的详细信息:
grep username /etc/passwd
将用户添加到现有组:
sudo usermod -aG groupname username
将用户添加到多个组:
sudo usermod -aG group1,group2 username
删除用户(保留家目录):
sudo userdel username
删除用户及家目录:
sudo userdel -r username
创建新组:
sudo groupadd groupname
删除组:
sudo groupdel groupname
查看所有组列表:
cat /etc/group
查看特定组的成员:
grep groupname /etc/group
查看用户信息(如UID、GID等):
id username
查看当前登录用户的详细信息:
whoami
查看用户的主组和附加组:
groups username
查看用户的计划任务:
crontab -l -u username
编辑用户的计划任务:
crontab -e -u username
切换用户:
su - username
通过这些命令,你可以有效地管理 Linux 系统中的用户和组。请确保在执行这些命令时具有足够的权限(通常是通过 sudo
),并且在删除用户或组之前仔细确认,以免造成不必要的损失。
在 Linux 系统中,通过命令行进行文件管理是非常常见的操作。以下是一些常用的文件管理命令及其使用方法:
查看当前目录的内容:
ls
可以加上 -l
参数显示详细信息:
ls -l
查看指定目录的内容:
ls /path/to/directory
列出隐藏文件:
ls -a
改变当前工作目录:
cd /path/to/directory
查看当前所在的工作目录:
pwd
创建新目录:
mkdir directory_name
创建多个目录:
mkdir dir1 dir2
创建多级目录:
mkdir -p path/to/directory
删除空目录:
rmdir directory_name
删除文件或目录(包括非空目录):
rm file_name
rm -r directory_name
强制删除(不提示确认):
rm -f file_name
rm -rf directory_name
复制文件或目录:
cp source destination
复制多个文件到一个目录:
cp file1 file2 directory/
递归复制目录:
cp -r source_directory destination_directory
移动或重命名文件或目录:
mv source destination
重命名文件:
mv oldname newname
显示或编辑文件内容:
cat file_name
分页显示文件内容:
less file_name
more file_name
编辑文件内容:
nano file_name
vi file_name
查找文件:
find /path/to/start -name pattern
查找当前目录下的所有 .txt
文件:
find . -name "*.txt"
查看文件权限:
ls -l
查看特定文件的权限:
ls -l filename
更改文件或目录的权限:
chmod mode file_or_directory
例如,给文件所有者读写执行权限:
chmod 700 file_name
给所有人读权限:
chmod a+r file_name
更改文件或目录的所有者:
chown user file_or_directory
同时更改用户和组:
chown user:group file_or_directory
更改文件或目录的组:
chgrp group file_or_directory
创建 gzip 压缩文件:
gzip file_name
解压 gzip 文件:
gunzip file_name.gz
创建 bzip2 压缩文件:
bzip2 file_name
解压 bzip2 文件:
bunzip2 file_name.bz2
创建 tar 归档文件:
tar -cvf archive.tar directory/
解压 tar 文件:
tar -xvf archive.tar
创建并压缩 tar 文件(gzip 或 bzip2):
tar -czvf archive.tar.gz directory/
tar -cjvf archive.tar.bz2 directory/
解压压缩的 tar 文件:
tar -xzvf archive.tar.gz
tar -xjvf archive.tar.bz2
这些命令涵盖了日常文件管理中最常用的操作。熟练掌握这些命令可以帮助你高效地管理 Linux 系统中的文件和目录。
在 Linux 系统中,通过命令行进行磁盘管理是非常重要的技能之一。以下是一些常用的磁盘管理命令及其使用方法:
查看总的磁盘使用情况:
df -h
-h
参数表示以人类可读的形式(如 GB、MB)显示磁盘空间。
查看特定文件系统的磁盘使用情况:
df -h /mount/point
查看文件系统的详细信息(包括inode使用情况):
df -i
查看当前目录下各文件和子目录的磁盘使用情况:
du -h
-h
参数表示以人类可读的形式显示磁盘空间。
查看特定文件或目录的磁盘使用情况:
du -sh /path/to/directory
-s
参数表示汇总大小,-h
表示以人类可读形式显示。
查找占用空间较大的文件或目录:
du -ah | sort -nhr
查看当前系统中的磁盘设备:
lsblk
创建新的磁盘分区:
parted /dev/sdb mklabel gpt
parted /dev/sdb mkpart primary ext4 0% 100%
使用 parted
工具创建 GPT 分区表,并创建一个主分区。
格式化新的磁盘分区:
mkfs.ext4 /dev/sdb1
挂载新的磁盘分区:
mkdir /mnt/newdisk
mount /dev/sdb1 /mnt/newdisk
卸载磁盘分区:
umount /mnt/newdisk
挂载文件系统:
mount /dev/sdb1 /mount/point
永久挂载文件系统(编辑 /etc/fstab
文件):
echo '/dev/sdb1 /mnt/newdisk ext4 defaults 0 0' >> /etc/fstab
卸载文件系统:
umount /mount/point
启用磁盘配额:
tune2fs -O ^has_journal /dev/sda1
mkfs.ext4 -q -o quota /dev/sda1
mount -o remount,quota /mnt/sda1
设置用户或组的磁盘配额:
edquota -u username
edquota -g groupname
查看磁盘配额状态:
repquota -avug /mount/point
创建物理卷(Physical Volume,PV):
pvcreate /dev/sdb1
创建卷组(Volume Group,VG):
vgcreate vgname /dev/sdb1
创建逻辑卷(Logical Volume,LV):
lvcreate -L 20G -n lvname vgname
格式化逻辑卷:
mkfs.ext4 /dev/vgname/lvname
挂载逻辑卷:
mkdir /mnt/lv
mount /dev/vgname/lvname /mnt/lv
扩展逻辑卷:
lvextend -L +10G /dev/vgname/lvname
resize2fs /dev/vgname/lvname
减少逻辑卷:
umount /mnt/lv
resize2fs /dev/vgname/lvname 15G
lvreduce -L 15G /dev/vgname/lvname
mount /mnt/lv
通过这些命令,你可以有效地管理和监控 Linux 系统中的磁盘空间使用情况。确保在执行涉及磁盘分区和格式化的操作时格外小心,以防止数据丢失。
在 Linux 系统中,通过命令行进行网络管理是一项基本而重要的任务。以下是一些常用的网络管理命令及其使用方法:
查看所有网络接口的状态:
ip link show
或者使用:
ifconfig
查看特定网络接口的状态:
ip link show eth0
或者:
ifconfig eth0
设置网络接口的 IP 地址:
ip addr add 192.168.1.100/24 dev eth0
或者:
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
删除网络接口的 IP 地址:
ip addr del 192.168.1.100/24 dev eth0
或者:
ifconfig eth0 down
ifconfig eth0 up
激活网络接口:
ip link set eth0 up
或者:
ifconfig eth0 up
停用网络接口:
ip link set eth0 down
或者:
ifconfig eth0 down
查看当前的路由表:
ip route show
添加静态路由:
ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
删除静态路由:
ip route del 192.168.2.0/24 via 192.168.1.1 dev eth0
查看当前的 DNS 服务器配置:
cat /etc/resolv.conf
设置 DNS 服务器:
echo 'nameserver 8.8.8.8' > /etc/resolv.conf
设置主机名:
hostnamectl set-hostname newhostname
或者直接编辑配置文件:
sudo nano /etc/hostname
查看当前的主机名:
hostname
检查网络连通性:
ping www.example.com
跟踪路由路径:
traceroute www.example.com
查看 TCP/IP 网络统计数据:
netstat -tulnp
查看 ARP 缓存表:
arp -a
查看网络接口的统计信息:
ip link show eth0
实时监控网络流量:
iftop
查看网络接口的流量统计信息:
sar -n DEV 1
查看 SSH 服务状态:
systemctl status ssh
启动 SSH 服务:
systemctl start ssh
停止 SSH 服务:
systemctl stop ssh
重新启动 SSH 服务:
systemctl restart ssh
查看 SSH 服务的日志:
journalctl -u ssh
查看防火墙状态:
systemctl status firewalld
启动防火墙服务:
systemctl start firewalld
停止防火墙服务:
systemctl stop firewalld
添加端口到防火墙规则:
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
删除端口的防火墙规则:
firewall-cmd --permanent --remove-port=80/tcp
firewall-cmd --reload
sudo nano /etc/network/interfaces
或者在使用 NetworkManager
的系统中:sudo nano /etc/systemd/network/eth0.network
通过这些命令,你可以有效地管理和监控 Linux 系统中的网络配置。确保在网络配置过程中仔细操作,避免因错误配置导致网络不可用的情况。
Linux 提供了一系列强大的命令行工具来帮助用户管理和监控系统中的进程。以下是一些常用的 Linux 进程管理命令:
ps aux
显示所有用户的详细进程信息。top
命令进入交互模式来查看和管理进程。top
,但是提供了更加友好的交互界面,支持颜色显示和鼠标操作。htop
kill
用来发送信号给指定的进程。killall
用来根据程序名杀死所有同名进程。kill PID
或者 killall program_name
killall
,但是提供了更灵活的选择条件。pkill -f pattern
可以根据正则表达式杀死匹配的进程。pgrep pattern
查找与模式匹配的所有进程的 PID。nice
可以设置新启动进程的优先级。renice
可以改变已存在的进程的优先级。nice -n 5 command
启动一个优先级较低的进程;renice -n 5 -p PID
改变指定进程的优先级。nohup command &
将命令放入后台并忽略挂断信号。bg
将在后台暂停的任务恢复运行。fg
将后台的任务移到前台运行。jobs
列出后台的任务,然后可以用 bg %job_number
或 fg %job_number
控制它们。- 用来追踪系统调用和信号。
- 示例命令:`strace -p PID` 跟踪指定进程的所有系统调用。
这些命令可以帮助你有效地管理和监控 Linux 系统上的进程。每个命令都有详细的帮助文档,可以通过 man 命令名
来获取更多详细的信息。
# 连接到远程服务器
ssh 用户名@远程服务器地址
# 指定端口连接
ssh -p 端口号 用户名@远程服务器地址
# 执行远程命令
ssh 用户名@远程服务器地址 命令
# 使用密钥文件连接
ssh -i 密钥文件路径 用户名@远程服务器地址
# 连接到远程服务器
sftp 用户名@远程服务器地址
# 列出远程目录内容
ls
dir
# 切换远程目录
cd 远程目录路径
# 列出本地目录内容
lpwd
# 切换本地目录
lcd 本地目录路径
# 上传文件
put 本地文件路径
# 下载文件
get 远程文件路径
# 退出sftp
bye
#!/bin/bash
# 假设你的 SFTP 服务器地址为 example.com
# 用户名为 user,密码为 password
# 文件列表在 /path/to/files.txt 中,每行一个文件路径
cat << EOF > sftp_commands
put /path/to/local/file1.txt
put /path/to/local/file2.txt
put /path/to/local/file3.txt
exit
EOF
echo "开始上传文件..."
sftp -b sftp_commands -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no [email protected] << EOF
EOF
rm sftp_commands
# 输入以下命令以连接到远程服务器
telnet 远程服务器地址 端口号
以上就是在linux服务器当中经常用到的命令行工具, 可能并不全, 但是熟练掌握后, 可以处理80%的应用部署,问题检查问题