Linux常用命令
基础命令
- cd:改变当前工作目录。例如,ls:列出当前目录中的文件和子目录。例如,
ls -l
将以长格式显示当前目录中的文件和子目录。 - pwd:显示当前工作目录的路径。
- mkdir:创建新目录。例如,
mkdir my_directory
将创建一个名为 "my_directory" 的新目录。 - rm:删除文件或目录。例如,
rm my_file.txt
将删除名为 "my_file.txt" 的文件。 - cp:复制文件或目录。例如,
cp source_file.txt destination_file.txt
将将名为 "source_file.txt" 的文件复制到名为 "destination_file.txt" 的文件中。 - mv:移动或重命名文件或目录。例如,
mv source_file.txt destination_directory
将将名为 "source_file.txt" 的文件移动到名为 "destination_directory" 的目录中。 - grep:在文件中搜索指定字符串。例如,
grep 'search_string' /path/to/file
将在 "/path/to/file" 文件中搜索包含 "search_string" 的行。 - find:在指定目录中查找文件。例如,
find /home -name '*.txt'
将在 "/home" 目录及其所有子目录中查找所有扩展名为 ".txt" 的文件。 - chmod:更改文件或目录的权限。例如,
chmod +x script.sh
将使名为 "script.sh" 的文件变为可执行文件。 - chown:更改文件或目录的所有者。例如,
chown user:group my_file.txt
将将名为 "my_file.txt" 的文件的所有者更改为 "user",并将其组更改为 "group"。 - ssh:使用 SSH 协议远程连接到另一台计算机。例如,
ssh user@remote_server
将使用用户名和密码连接到远程服务器。 - top:显示正在运行的进程并监视系统资源使用情况。
- ps:显示当前运行的进程。例如,
ps aux
将显示所有正在运行的进程的详细信息。 - kill:终止指定进程。例如,
kill -9 pid
将终止进程 ID 为 "pid" 的进程。 - ping:测试与另一台计算机之间的网络连接。例如,
ping remote_server
将在本机与远程服务器之间进行连通性测试。 - ifconfig:显示网络接口的配置信息。
- netstat:显示网络连接和网络接口的统计信息。
- route:显示路由表信息。
- clear:清除终端屏幕内容。
软件包管理
rpm:
rpm是Red Hat Package Manager的缩写,它是一种软件包管理工具,用于在Linux系统上安装、升级、卸载和管理软件包。
示例:
- 安装软件包:
rpm -i package.rpm
- 升级软件包:
rpm -U package.rpm
- 卸载软件包:
rpm -e package
- 查询软件包信息:
rpm -q package
yum:
yum是 Yellowdog Updater, Modified的缩写,它是一种更先进的软件包管理工具,用于在Linux系统上安装、升级、卸载和管理软件包。
示例:
- 安装软件包:
yum install package
- 升级软件包:
yum update package
- 卸载软件包:
yum remove package
- 查询软件包信息:
yum info package
deb:
deb是Debian Package的缩写,它是一种软件包管理工具,用于在Debian系统上安装、升级、卸载和管理软件包。
示例:
- 安装软件包:
dpkg -i package.deb
- 升级软件包:
dpkg -i package.deb
- 卸载软件包:
dpkg -r package
- 查询软件包信息:
dpkg -L package
文本处理
在Linux系统中,有许多用于处理文本的命令,以下是一些常用的:
- cat:将文件内容输出到终端或合并多个文件。
- grep:在文件中查找指定的字符串。
- sed:流编辑器,用于处理文本流。
- awk:一种强大的文本处理工具,可以按照指定的模式处理文本行。
- cut:从文件中剪切出指定的列。
- sort:对文件进行排序。
- unzip:解压缩zip文件。
- tar:创建和提取tar文件。
- gzip:压缩和解压缩文件。
- df:磁盘空间使用情况。
- du:文件和目录的大小。
示例:
- 将file1.txt和file2.txt的内容输出到终端:
cat file1.txt file2.txt
- 在file.txt中查找包含字符串"hello"的行:
grep 'hello' file.txt
- 将file.txt中的所有行替换为新的内容:
sed 's/.*$/new_content/' file.txt
- 在file.txt中按照指定的模式处理每行并输出结果:
awk 'pattern { print }' file.txt
- 从file.txt中剪切出第二列和第四列:
cut -d ',' -f 2,4 file.txt
- 对file.txt进行数字排序并输出结果:
sort -n file.txt
- 将archive.zip解压缩到当前目录:
unzip archive.zip
- 将file.txt打包成archive.tar并压缩成archive.tar.gz:
tar -czvf archive.tar.gz file.txt
- 压缩file.txt并保存为file.txt.gz:
gzip file.txt
- 查看磁盘空间使用情况:
df -h
- 查看文件和目录的大小:
du -h file1 file2
文件搜索
搜索文件和目录:
find /path/to/search -name "filename"
这个命令可以在指定的路径下搜索文件名为“filename”的文件和目录,并将结果输出到终端。
搜索属于特定用户的文件和目录:
find /path/to/search -user username
这个命令可以在指定的路径下搜索属于用户“username”的文件和目录。
搜索以特定后缀结尾的文件:
find /path/to/search -name "*.suffix"
这个命令可以在指定的路径下搜索以“*.suffix”为后缀的文件。
搜索在过去一定时间内未被使用的文件:
find /path/to/search -type f -atime +days
这个命令可以在指定的路径下搜索在过去“days”天内未被使用的文件。
搜索在特定时间内被创建或修改过的文件:
find /path/to/search -type f -mtime +days
这个命令可以在指定的路径下搜索在最近“days”天内被创建或修改过的文件。
使用数据库快速搜索文件:
locate \*.suffix
这个命令可以使用数据库快速搜索以“*.suffix”为后缀的文件,需要先运行“updatedb”命令更新数据库。
显示文件的位置信息:
whereis filename
这个命令可以显示一个二进制文件、源码或man的位置信息。
显示一个二进制文件或可执行文件的完整路径:
which executable_name
这个命令可以显示一个二进制文件或可执行文件的完整路径。
挂载文件系统
挂载一个叫做hda2的盘:
mount /dev/hda2 /mnt/hda2
这个命令将设备文件 /dev/hda2
挂载到 /mnt/hda2
目录下。如果目录 /mnt/hda2
不存在,则会报错。
卸载一个叫做hda2的盘:
umount /dev/hda2
这个命令从挂载点 /mnt/hda2
退出,并卸载设备文件 /dev/hda2
。如果设备正在被使用,卸载可能会失败。
当设备繁忙时强制卸载:
fuser -km /mnt/hda2
这个命令会强制卸载设备文件 /dev/hda2
,即使有进程正在使用该设备。参数 -k
表示同时杀死正在使用设备的进程。
运行卸载操作而不写入 /etc/mtab 文件:
umount -n /mnt/hda2
这个命令会卸载设备文件 /dev/hda2
,但不会将卸载信息写入 /etc/mtab
文件。这个选项在文件为只读或磁盘写满时非常有用。
挂载软盘:
mount /dev/fd0 /mnt/floppy
这个命令将软盘设备文件 /dev/fd0
挂载到 /mnt/floppy
目录下。
挂载cdrom或dvdrom:
mount /dev/cdrom /mnt/cdrom
这个命令将光盘设备文件 /dev/cdrom
挂载到 /mnt/cdrom
目录下。
挂载cdrw或dvdrom:
mount /dev/hdc /mnt/cdrecorder
这个命令将光盘设备文件 /dev/hdc
挂载到 /mnt/cdrecorder
目录下。
挂载文件或ISO镜像文件:
mount -o loop file.iso /mnt/cdrom
这个命令将文件 file.iso
挂载到 /mnt/cdrom
目录下。选项 -o loop
表示使用循环设备来挂载文件。
挂载Windows FAT32文件系统:
mount -t vfat /dev/hda5 /mnt/hda5
用户和组
创建用户组:
groupadd group_name
该命令可以用来创建一个新的用户组,其中“group_name”为新用户组的名称。
删除用户组:
groupdel group_name
该命令可以用来删除一个用户组,其中“group_name”为要删除的用户组的名称。
重命名用户组:
groupmod -n new_group_name old_group_name
该命令可以用来重命名一个用户组,其中“new_group_name”为新用户组的名称,“old_group_name”为要重命名的用户组的名称。
创建用户:
useradd user_name
该命令可以用来创建一个新的用户,其中“user_name”为新用户的名称。
删除用户:
userdel -r user_name
该命令可以用来删除一个用户,其中“-r”选项表示同时删除用户的家目录及文件。
修改用户属性:
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1
该命令可以用来修改用户的属性,其中“-c”选项表示用户的注释信息,“-g”选项表示用户的初始组,“-d”选项表示用户的家目录,“-s”选项表示用户的登录Shell。
修改口令:
passwd
该命令可以用来修改用户的口令,只有root用户才能执行此命令。
设置用户口令的失效期限:
chage -E 2005-12-31 user_name
该命令可以用来设置用户口令的失效期限,其中“-E”选项表示设置口令的失效日期,“2005-12-31”为口令的失效日期,“user_name”为要设置口令失效期限的用户名称。
检查用户和群组的文件格式和语法修正:
pwck
grpck
这些命令可以用来检查“/etc/passwd”文件和“/etc/group”文件的格式和语法是否正确,以及检查是否存在不存在的用户和群组。
登陆进一个新的群组以改变新创建文件的预设群组:
newgrp group_name
该命令可以用来登陆进一个新的群组,从而改变新创建文件的预设群组,其中“group_name”为要登陆的新群组的名称。