命令是Linux系统的灵魂,学习Linux就要先学习他的基本灵魂。
需要特别注意的是,Linux系统是对大小写敏感的。
区别于windows系统,win系统是大小写不敏感的。
Linux命令的分类
内置shell命令和外部命令
内部命令:属于shell解释器的一部分(自带的)
外部命令:独立于shell解释器之外的程序文件(安装程序需要的命令)
Linux通用命令
格式命令字+选项+参数
选项及参数的含义
1.选项:用于命令调节的具体功能
2.以 “-” 引导短格式选项(单个字符),如 “-l”
3.以 “-” 引导长格式选项(多个字符),如 “-color”
4.多个短格式选项可以写在一起,只用一个“-”引导,例如“-al”
参数:命令操作的对象,如文件、目录名等
例如: ls -l /home
# 清屏
Ctrl + L 或者 clear
# 快速补齐
[Tab]
# 终止执行的命令
[ctrl + c]
# 挂起正在执行的命令
[ctrl + z]
# 恢复
fg xxx
# 关机
poweroff
halt
init 0
# 设置运行级别
init level
#init 0 - 停机(千万不能把initdefault 设置为0 )
#init 1 - 单用户模式,只root用户进行维护
#init 2 - 多用户,不能使用NFS(Net File System) 不联网
#init 3 - 完全多用户模式(标准的运行级)
#init 4 - 安全模式
#init 5 - X11 (xwindow) 图形化界面模式
#init 6 - 重新启动 (千万不要把initdefault 设置为6 )
# 重启
reboot
init 6
# 退出登录
exit
hostname # 查看主机名
ifconfig # 查看IP地址信息
whoami # 查看当前用户名
w # 显示目前登入系统的用户信息
who #查看当前登录的用户
uname -a #显示内核/操作系统/CPU信息。
uname -r #显示内核版本
cat /etc/issue #查看系统版本
cat /etc/*-release #查看系统版本
cat /proc/cpuinfo #显示CPU信息。
head /etc/issue #显示操作系统的版本信息
hostname #显示当前系统的主机名。
grep MemTotal /proc/meminfo #用于查看内存总量。
grep MemFree /proc/meminfo #用于查看空闲内存量。
uptime #用于显示系统运行时间、用户数和负载情况。
cat /proc/loadavg #用于查看系统负载。
free -m #查看内存使用量和交换区使用量(以MB为单位)。
df -h #查看各分区使用情况(以可读的格式显示)。
useradd:用于添加新用户。
示例:useradd newuser
说明:添加名为newuser的新用户。
扩展:
useradd 选项 用户名
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
userdel:用于删除用户。
示例:userdel olduser
说明:删除名为olduser的用户。
passwd:用于设置或更改用户密码。
示例:passwd username
说明:为指定用户设置或更改密码。
拓展:用户的口令管理
passwd 选项 用户名
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
su:用于切换到其他用户。
示例:su - username
说明:切换到指定的用户。
who、w:用于查看当前登录的用户及其活动。
示例:who 或 w
说明:显示当前登录的用户列表和他们的活动状态。
last:用于显示最近的登录记录。
示例:last
说明:显示最近登录的用户和登录时间。
usermod:用于修改用户属性。
示例:usermod -L username
说明:锁定用户,禁止其更改密码和登录。
chage:用于查看和修改用户的密码过期信息。
示例:chage -l username
说明:查看用户的密码过期信息。
sudo:允许用户以其他用户的身份执行命令,可以用来切换用户或执行管理任务。
示例:sudo -u username command
说明:以username用户的身份执行command命令。
拓展:
-V 显示版本编号
-h 会显示版本编号及指令的使用方式说明
-l 显示出自己(执行 sudo 的使用者)的权限
-v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次 确认,如果超过 N 分钟,也会问密码
-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username的身份执行指令(#uid 为该 username 的使用者号码)
-s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
-H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者root )
command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令
logout:用于退出当前用户会话。
示例:logout
说明:退出当前用户会话,注销登录。
exit:用于退出当前shell或终端会话。
示例:exit
说明:退出当前shell或终端会话,注销登录。
usermod:用于修改用户账户的属性。它可以修改用户的各种属性,如用户名、用户ID、用户组ID、用户主目录、用户登录shell等。
示例1:usermod -l newname oldname
说明:修改用户登录名,把名为oldname的用户账户的登录名改为newname。
示例2:usermod -d /new/home/directory username
说明:修改用户主目录,把名为username的用户的主目录改为/new/home/directory。请注意,如果新目录不存在,需要先创建它。
示例3:usermod -s /new/shell username
说明:修改用户登录shell,把名为username的用户的登录shell改为/new/shell。请注意,如果新shell不存在,需要先安装它。
示例4:usermod -g newgroup username
说明:修改用户所属的组,把名为username的用户所属的组改为newgroup。请注意,如果新组不存在,需要先创建它。
示例5:usermod -L username
说明:锁定用户账户,锁定名为username的用户账户,使密码无效。被锁定的账户无法登录。
示例6:usermod -U username
说明:解锁用户账户,解锁名为username的用户账户,使密码恢复生效。被解锁的账户可以正常登录。
#用户信息与密码的配置文件
用户信息文件: /etc/passwd
密码文件: /etc/shadow
用户组文件: /etc/group
组密码:/etc/gshadow
groupadd:用于添加新用户组。
示例:groupadd newgroup
说明:添加名为newgroup的新用户组。
groupdel:用于删除用户组。
示例:groupdel oldgroup
说明:删除名为oldgroup的用户组。
gpasswd:用于设置或更改用户组密码。
示例:gpasswd newgroup
说明:为名为newgroup的用户组设置密码。
grep:用于搜索文本,也可以用于搜索用户是否属于特定用户组。
示例:grep "username" /etc/group
说明:检查用户是否属于特定的用户组。
newgrp:用于切换用户所属的组。
示例:newgrp newgroup
说明:将当前用户切换到newgroup组。
sudo:允许用户以其他用户的身份执行命令,可以用来切换用户组。
示例:sudo -u username command
说明:以username用户的身份执行command命令。
su:用于切换到其他用户,也可以切换用户组。
示例:su - username
说明:切换到username用户,并加载其环境变量和组信息。
ls:列出目录中的文件和子目录。
示例:ls -l
说明:以长格式列出目录中的文件和子目录,显示详细信息。
cd:切换当前工作目录。
示例:cd /path/to/directory
说明:将当前工作目录切换到指定目录。
pwd:显示当前工作目录的完整路径。
示例:pwd
说明:显示当前工作目录的完整路径。
mkdir:创建新目录。
示例:mkdir new_directory
说明:在当前目录下创建一个名为new_directory的新目录。
rmdir:删除空目录。
示例:rmdir empty_directory
说明:删除名为empty_directory的空目录。
touch:创建空文件或更新文件时间戳。
示例:touch new_file.txt
说明:在当前目录下创建一个名为new_file.txt的空文件,如果文件已存在,则更新其时间戳。
cp:复制文件或目录。
示例:cp source.txt destination.txt
说明:将source.txt复制为destination.txt。
mv:移动或重命名文件或目录。
示例:mv old_name.txt new_name.txt
说明:将old_name.txt重命名为new_name.txt。
rm:删除文件或目录。
示例:rm file.txt
说明:删除名为file.txt的文件。
file:确定文件类型。
示例:file file.txt
说明:查看file.txt的类型(例如,文本文件、二进制文件等)。
du:估计文件空间使用情况。
示例:du -h file.txt
说明:查看file.txt所占用的空间大小(以人类可读的格式显示)。
#查看文件内容
cat:用于显示整个文件的内容。
示例:cat file.txt
说明:显示file.txt文件的内容。
tac:用于反向查看文件内容,即从最后一行到第一行。
示例:tac file.txt
说明:从file.txt文件的最后一行开始,反向显示文件内容。
head:用于显示文件的前几行内容,默认是前10行。
示例:head file.txt
说明:显示file.txt文件的前10行内容。
tail:用于显示文件的后几行内容,默认是最后10行。
示例:tail file.txt
说明:显示file.txt文件的最后10行内容。
more:以一页一页的形式查看文件内容,支持交互式操作。
示例:more file.txt
说明:分页显示file.txt文件的内容,可以按空格键向下滚动一页,按Enter键向下滚动一行等。
less:与more类似,但功能更强大,支持向前和向后翻页、搜索等操作。
示例:less file.txt
说明:分页显示file.txt文件的内容,可以使用上下箭头键、Page Up/Page Down键等翻页,使用/键进行搜索等。
#用于搜索和定位特定的文件或目录
find:用于在目录树中查找文件,并根据各种条件进行过滤。
示例:find /path/to/search -name "*.txt"
说明:在指定路径下查找所有扩展名为.txt的文件。
grep:用于在文件中查找特定的字符串或模式。
示例:grep "hello" /path/to/file
说明:在指定文件中查找包含“hello”的行。
whereis:用于查找二进制文件、源代码文件和帮助文件。
示例:whereis ls
说明:查找ls命令相关的二进制文件、源代码文件和帮助文件。
locate:用于快速查找系统中的文件。它依赖于预先构建的数据库,所以不是实时的,但在大系统中通常比find更快。
示例:locate /etc/passwd
说明:查找名为“/etc/passwd”的文件。
ifconfig:用于配置和显示网络接口的信息。
示例:ifconfig eth0 192.168.0.100
说明:设置eth0接口的IP地址为192.168.0.100。
ping:用于测试与目标主机之间的连通性。
示例:ping 192.168.0.1
说明:检查与IP地址为192.168.0.1的主机的连通性。
traceroute:用于跟踪数据包在网络中的路径。
示例:traceroute www.example.com
说明:查看数据包到达www.example.com的路径和延迟。
netstat:用于显示网络连接、路由表和网络接口统计信息。
示例:netstat -an
说明:显示所有活动的网络连接和监听的端口。
wget:用于从网络上下载文件。
示例:wget http://www.example.com/file.txt
说明:从www.example.com下载名为file.txt的文件。
ssh:用于远程登录到另一台计算机,进行安全的数据传输。
示例:ssh user@remote_host
说明:通过SSH协议安全地连接到远程主机。
curl:用于从命令行获取或发送数据,支持多种协议。
示例:curl http://www.example.com/data
说明:使用curl命令从指定URL获取数据。
nc (netcat):用于在网络上进行读写操作。
示例:nc -l -p 8080
说明:在本地主机上监听8080端口,等待其他主机的连接。
nmap:用于扫描网络上的主机和服务。
示例:nmap -sP 192.168.0.0/24
说明:扫描IP地址范围192.168.0.0至192.168.0.255,检查哪些主机是活跃的。
host:用于域名解析。
示例:host www.example.com
说明:查看www.example.com的IP地址信息。