Linux基础命令详解
Linux 基础命令是学习和使用 Linux 系统的重要组成部分。掌握这些命令可以帮助你有效地管理文件、处理用户和进程,以及进行系统维护。以下是一些常见的 Linux 基础命令及其详解。
1. 文件和目录操作
1.1 ls
- 列出目录内容
ls [options] [directory]
ls
:列出当前目录下的所有文件和目录。ls -l
:以长格式显示文件信息,包括权限、所有者、大小和最后修改时间。ls -a
:显示所有文件,包括隐藏文件(以.
开头的文件)。ls -h
:显示文件大小(例如 KB, MB)。
1.2 cd
- 切换目录
cd [directory]
cd
:切换到指定目录。cd ..
:返回到上一级目录。cd /
:切换到根目录。cd ~
或cd
:切换到当前用户的主目录。
1.3 pwd
- 显示当前工作目录
pwd
pwd
:打印当前工作目录的完整路径。
1.4 mkdir
- 创建目录
mkdir [options] directory_name
mkdir new_dir
:创建一个名为new_dir
的目录。mkdir -p /path/to/new_dir
:创建路径中所有不存在的目录。
1.5 rmdir
- 删除空目录
rmdir directory_name
rmdir empty_dir
:删除名为empty_dir
的空目录。
1.6 rm
- 删除文件或目录
rm [options] file_name
rm file.txt
:删除文件file.txt
。rm -r directory_name
:递归删除目录及其内容。rm -f file_name
:强制删除文件而不提示。
1.7 cp
- 复制文件或目录
cp [options] source destination
cp file1.txt file2.txt
:复制文件file1.txt
到file2.txt
。cp -r dir1 dir2
:递归复制目录dir1
到dir2
。
1.8 mv
- 移动或重命名文件或目录
mv [options] source destination
mv file1.txt file2.txt
:重命名file1.txt
为file2.txt
。mv file.txt /new/location/
:将file.txt
移动到指定目录。
1.9 touch
- 创建空文件或更新文件时间戳
touch file_name
touch newfile.txt
:创建一个名为newfile.txt
的空文件。
1.10 cat
- 连接并显示文件内容
cat [options] file_name
cat file.txt
:显示file.txt
文件的内容。cat file1.txt file2.txt > combined.txt
:将两个文件的内容合并并输出到combined.txt
。
1.11 more
和 less
- 分页查看文件内容
more file_name
less file_name
more file.txt
:分页显示file.txt
文件的内容,从头开始。less file.txt
:与more
类似,但可以前后翻页,支持更多导航功能。
1.12 head
和 tail
- 查看文件的开头或结尾部分
head [options] file_name
tail [options] file_name
head file.txt
:显示file.txt
的前 10 行内容。tail file.txt
:显示file.txt
的后 10 行内容。tail -f file.txt
:实时追踪并显示file.txt
的新增内容(常用于查看日志文件)。
2. 权限和所有权管理
2.1 chmod
- 修改文件权限
chmod [options] mode file_name
chmod 755 script.sh
:将script.sh
的权限设置为rwxr-xr-x
。chmod u+x script.sh
:为文件的所有者添加执行权限。
2.2 chown
- 修改文件所有者和组
chown [options] owner[:group] file_name
chown root file.txt
:将file.txt
的所有者改为root
。chown root:staff file.txt
:将file.txt
的所有者改为root
,组改为staff
。
2.3 umask
- 设置默认文件创建权限
umask [options] [mask]
umask
:显示当前的umask
设置。umask 022
:将umask
设置为022
,即新文件的默认权限为755
。
3. 进程管理
3.1 ps
- 显示当前运行的进程
ps [options]
ps
:显示与当前终端相关的进程。ps aux
:显示系统中所有用户的所有进程。ps -ef
:以完整格式显示所有进程信息。
3.2 top
- 实时显示系统资源使用情况
top
top
:启动top
命令,显示实时系统资源使用情况,包括 CPU、内存和各进程的使用情况。
3.3 kill
- 终止进程
kill [options] PID
kill 1234
:终止进程 ID 为1234
的进程。kill -9 1234
:强制终止进程 ID 为1234
的进程。
3.4 killall
- 终止指定名称的所有进程
killall process_name
killall nginx
:终止所有名为nginx
的进程。
3.5 bg
和 fg
- 控制后台和前台进程
bg [job_spec]
fg [job_spec]
bg %1
:将任务号为1
的后台进程恢复为后台运行状态。fg %1
:将任务号为1
的后台进程调回前台运行。
4. 用户管理
4.1 who
- 显示当前登录的用户
who
who
:显示当前登录的所有用户信息。
4.2 w
- 显示当前登录用户及其活动
w
w
:显示登录的用户及其正在执行的命令,CPU 和内存使用情况。
4.3 su
- 切换用户身份
su [options] [user_name]
su
:切换到root
用户身份(需要输入root
密码)。su - username
:切换到指定用户的身份。
4.4 sudo
- 以超级用户权限执行命令
sudo command
sudo apt-get update
:以超级用户权限更新软件包列表。
4.5 adduser
和 useradd
- 添加新用户
adduser username
useradd username
adduser
:创建新用户,并设置密码和用户目录。useradd
:创建新用户,但不自动设置密码或用户目录。
4.6 passwd
- 修改用户密码
passwd [user_name]
passwd
:修改当前用户的密码。passwd username
:修改指定用户的密码(需要超级用户权限)。
5. 网络管理
5.1 ping
- 测试网络连通性
ping [options] destination
ping google.com
:测试与google.com
的连通性。
5.2 ifconfig
- 显示或配置网络接口
ifconfig [interface]
ifconfig
:显示所有网络
接口的配置。
ifconfig eth0
:显示eth0
接口的配置。
5.3 netstat
- 显示网络连接和统计信息
netstat [options]
netstat -an
:显示所有网络连接及其状态。
5.4 ssh
- 通过 SSH 连接远程服务器
ssh [user_name@]hostname
ssh user@192.168.1.1
:通过 SSH 连接到192.168.1.1
上的用户user
。
5.5 scp
- 通过 SSH 进行文件复制
scp source_file [user_name@]host:destination_file
scp file.txt user@192.168.1.1:/home/user/
:将file.txt
复制到远程服务器上的/home/user/
目录。
5.6 curl
- 命令行工具,用于从或向服务器传输数据
curl [options] URL
curl https://www.example.com
:下载example.com
的内容。
6. 系统管理
6.1 df
- 显示文件系统的磁盘使用情况
df [options]
df -h
:以人类可读的格式显示磁盘使用情况。
6.2 du
- 显示目录或文件的磁盘使用情况
du [options] [file/dir]
du -h /home/user/
:以人类可读的格式显示/home/user/
目录的磁盘使用情况。
6.3 free
- 显示系统的内存使用情况
free [options]
free -h
:以人类可读的格式显示内存使用情况。
6.4 uptime
- 显示系统运行时间及负载
uptime
uptime
:显示系统的当前时间、运行时间、当前登录用户数、系统负载。
6.5 dmesg
- 显示系统启动信息
dmesg
dmesg
:显示内核启动消息(通常与硬件相关)。
6.6 shutdown
- 关闭系统
shutdown [options] time
shutdown -h now
:立即关闭系统。shutdown -r now
:立即重启系统。
6.7 reboot
- 重启系统
reboot
reboot
:立即重启系统。
7. 文本处理
7.1 grep
- 搜索文本内容
grep [options] pattern [file]
grep 'error' log.txt
:在log.txt
文件中搜索包含 “error” 的行。grep -r 'error' /var/log/
:递归搜索/var/log/
目录下的所有文件中包含 “error” 的行。
7.2 awk
- 文本处理工具
awk 'pattern {action}' file
awk '{print $1}' file.txt
:输出file.txt
文件每行的第一个字段。
7.3 sed
- 流编辑器,用于文本替换和编辑
sed 's/pattern/replacement/' file
sed 's/old/new/g' file.txt
:将file.txt
中所有 “old” 替换为 “new”。
7.4 sort
- 排序文本文件
sort [options] file
sort file.txt
:按字母顺序排序file.txt
中的行。sort -n file.txt
:按数值排序file.txt
中的行。
7.5 uniq
- 删除文本文件中的重复行
uniq [options] file
uniq file.txt
:删除file.txt
中的重复行(要求相同的行必须连续)。
7.6 wc
- 统计文件的字数、行数、字符数
wc [options] file
wc file.txt
:显示file.txt
的行数、单词数、字符数。
7.7 tr
- 替换或删除字符
tr [options] set1 set2
tr 'a-z' 'A-Z' < file.txt
:将file.txt
中的小写字母转换为大写字母。
8. 压缩和解压缩
8.1 tar
- 压缩和解压缩文件
tar [options] archive_name file_name
tar -cvf archive.tar file.txt
:将file.txt
压缩为archive.tar
。tar -xvf archive.tar
:解压缩archive.tar
。
8.2 gzip
和 gunzip
- 压缩和解压缩文件
gzip file_name
gunzip file_name.gz
gzip file.txt
:将file.txt
压缩为file.txt.gz
。gunzip file.txt.gz
:将file.txt.gz
解压缩为file.txt
。
8.3 zip
和 unzip
- 创建和解压缩 zip 文件
zip archive_name file_name
unzip archive_name.zip
zip archive.zip file.txt
:将file.txt
压缩为archive.zip
。unzip archive.zip
:解压缩archive.zip
。
9. 磁盘管理
9.1 fdisk
- 磁盘分区工具
fdisk [options] device
fdisk /dev/sda
:管理/dev/sda
磁盘的分区。
9.2 mkfs
- 创建文件系统
mkfs [options] device
mkfs.ext4 /dev/sda1
:在/dev/sda1
分区上创建 ext4 文件系统。
9.3 mount
和 umount
- 挂载和卸载文件系统
mount [options] device mount_point
umount [options] device
mount /dev/sda1 /mnt
:将/dev/sda1
分区挂载到/mnt
目录。umount /mnt
:卸载/mnt
目录中的文件系统。
10. 系统信息
10.1 uname
- 显示系统信息
uname [options]
uname -a
:显示系统的所有信息。uname -r
:显示内核版本。
10.2 hostname
- 显示或设置系统主机名
hostname [options]
hostname
:显示当前的主机名。
10.3 uptime
- 显示系统运行时间
uptime
uptime
:显示系统的当前时间、运行时间、登录用户数、系统负载。
11. 包管理
11.1 apt
(用于 Debian 系统)
apt-get [options] command
sudo apt-get update
:更新包列表。sudo apt-get upgrade
:升级所有已安装的软件包。sudo apt-get install package_name
:安装新的软件包。
11.2 yum
(用于 Red Hat 系统)
yum [options] command
sudo yum update
:更新所有软件包。sudo yum install package_name
:安装新的软件包。
12. 帮助与文档
12.1 man
- 显示命令的手册页
man command_name
man ls
:显示ls
命令的手册页。
12.2 info
- 显示命令的详细信息
info command_name
info ls
:显示ls
命令的详细信息。
12.3 --help
- 显示命令的简要帮助
command_name --help
ls --help
:显示ls
命令的简要帮助信息。
总结
掌握这些基础命令,可以大大提高在 Linux 系统上的工作效率。这些命令涵盖了文件管理、用户管理、网络管理、进程管理等各个方面的基本操作。