Linux常用命令
命令 | 描述 | —- | ———————————————————— |
| w
| 保存不退出 |
| q
| 不保存退出 |
| !
| 强制退出 |
| q!
| 表示不保存退出,保留源文件,而另存为其他的文件,可以用w 新文件名
|
| ZZ
| 大写Z,保存退出 |
命令提示符
[root@localhost~]#
符号 | 含义 |
---|---|
[ ] | 这是提示符的分隔符号,没有特殊含义 |
root | 显示的时当前的登录用户 |
@ | 分割符号,没有含义 |
localhost | 当前系统的简写主机名 |
~ | 代表当前用户所在的目录,注意这里只显示最后一个子目录 |
# | 命令提示符。如果是超级用户显示为#,如果是普通用户显示为$ |
超级用户的根目录 | /root |
普通用户的根目录 | /home/用户名 |
Linux命令的基本格式
[root@localhost~]# 命令 [选项][参数]
命令中的[]代表可选项,也就是一些命令可以不写选项或参数。
选项
加入选项可以实现更多功能,如ls -l
意思就是显示文件的详细信息。
参数
参数是命令的操作对象,一般文件、命令、用户和进程等都可以作为参数被命令操作。
目录操作命令
ls -目录操作命令
命令名称:ls
所在路径:usr/bin/ls
执行权限:所有用户
命令格式:ls [选项] [文件名或目录名]
选项:
选项 | 描述 |
---|---|
-a | 显示所有文件(包括隐藏文件) |
--color=when | 支持颜色输出,when的值默认是always (总显示颜色),也可以是never (从不显示颜色)和auto (自动) |
-ld | 显示目录信息,而不是目录下的文件 |
-lh | 人性化显示,按照我们习惯的单位显示文件大小 |
-i | 显示文件的i节点号 |
-l | 长格式显示(详细信息)。ls -l 等同于ll |
PS:Linux中.
开头的文件为隐藏文件。
-l
选项
依次表示:权限、引用计数、所属用户、所属组、文件大小(字节)、文件修改时间、文件名称
这里的引用计数代表该目录下有多少个一级子目录。
cd
-切换所在目录
所在路径:Shell内置命令
执行权限:所有用户
功能:切换所在目录
命令格式:cd [目录名]
cd命令只要两个选项:
-P | 指如果切换的目录是软链接目录,则进入其原始的物理目录 |
---|---|
-L | 指如果切换的目录是软链接目录,则直接进入软链接目录 |
~ | 代表用户的家目录。cd命令直接回车效果是一样的。 |
– | 代表上次所在目录 |
. | 代表当前目录 |
.. | 代表上级目录 |
mkdir
-创建目录命令
所在路径:/usr/bin/mkdir
执行权限:所有用户
功能描述:创建一个空目录
命令格式:mkdir [选项] 目录名
选项只有一个:-p
递归建立所需目录。
就是当需要创建多级目录时,需要-p
选项,不加则无法创建多级目录。
如:mkdir -p lm1/lm2/lm3
rmdir
-删除目录命令
所在路径:/usr/bin/rmdir
执行权限:所有用户
命令格式:rmdir [选项] 目录名
无选项。
rmdir也可以递归删除目录,不过只能删除空目录,一旦目录中有内容就会报错。
tree
-显示目录树
所在路径:/usr/bin/tree
执行权限:所有用户
命令格式:tree 目录名
文件操作命令
touch
-修改时间戳
执行权限:所有用户
功能描述:修改时间戳,如没有该文件,则创建一个空文件。
命令格式:touch [选项] 文件名或目录名
选项:
选项 | 描述 |
---|---|
-a | 只修改文件的访问时间 |
-c | 如果文件不存在,则不建立新文件 |
-d | 把文件的时间改为指定的时间 |
-m | 只修改文件的数据修改时间 |
Linux中分为三个时间,分别为访问时间、数据修改时间、状态修改时间。这三个时间可以通过stat
命令查看。
stat
-显示文件详细信息
执行权限:所有用户
功能描述:显示文件或文件系统的详细信息
命令格式:stat [选项] 文件或目录名
选项:只有一个选项-f
查看文件所在的文件系统信息,而不是查看文件的信息。
cat
-查看文件内容
执行权限:所有用户
功能描述:合并文件并打印输出到标准输出
命令格式:cat [选项] 文件名
选项:
选项 | 描述 |
---|---|
-A | 相当于-vET 功能的整合,用于列出所有隐藏符号 |
-E | 列出每行结尾的回车符$ |
-n | 显示行号 |
-T | 把Tab键用^I 显示出来 |
-v | 列出特殊字符 |
more
-分屏显示内容
执行权限:所有用户
功能描述:分屏显示文件内容
命令格式:more 文件名
常用的交互命令:
命令 | 描述 |
---|---|
空格键 | 向下翻页 |
b | 向上翻页 |
回车键 | 向下滚动一页 |
/字符串 | 搜索指定的字符串 |
q | 退出 |
less
-分行显示文件内容
执行权限:全部用户
功能描述:分行显示文件内容
命令格式:less 文件名
进入显示文件后,使用上
、下
箭头键,用于分行查看文件内容。(每按一次会向上、下显示一行)。
head
-显示文件开头的内容
执行权限:全部用户
命令格式:head [选项] 文件名
选项:
选项 | 描述 |
---|---|
-n | 行数:从文件开头开始,显示指定行数,-n20 与-20 效果一样 |
-v | 显示文件名 |
命令默认显示文件前十行内容。
tail
-显示文件结尾内容
执行权限:所有用户
命令格式:tail [选项] 文件名
选项
选项 | 描述 |
---|---|
-n | 行数:从文件结尾开始,显示指定行数,-n20 与-20 效果一样 |
-f | 监听文件的新增内容 |
使用-f
选项会显示最后10行内容,而且光标不会退出文件,会一直监听文件的新增内容,这个时候使用echo
命令向该文件追加内容,在原始的正在监听的终端中就会显示追加的内容。
ln
-在文件之间建立链接
执行权限:所有用户
命令格式:ln [选项] 源文件 目标文件
选项:
选项 | 描述 |
---|---|
-s | 建立软链接文件。默认建立硬链接文件 |
-f | 强制。如果目标文件已经存在,则删除目标文件后再建立链接文件 |
建立硬链接:ln /root/test /tmp/test-hard
建立软链接:ln -s /root/test /tmp/test-hard
目录和文件都能操作的命令
rm
-删除文件或目录
执行权限:所有用户
命令格式:rm [选项] 文件或目录
选项:
选项 | 描述 |
---|---|
-f | 强制删除 |
-i | 这个选项是默认的,交互删除,在删除之前会询问用户 |
-r | 可以递归删除,可以删除目录 |
如果被删除的路径是一个目录,则必须有-r
选项,否则会报错。
一般要强制删除一个文件时,用rm -rf 文件路径
。
cp
-复制文件和目录
执行权限:所有用户
命令格式:cp [选项] 源文件 目标文件
选项:
选项 | 描述 |
---|---|
-a | 相当于-dpr选项的集合 |
-d | 如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接 |
-i | 询问,如果目标文件已经存在,则会询问是否覆盖 |
-l | 把目标文件建立为源文件的硬链接文件,而不是复制源文件 |
-s | 把目标文件建立为源文件的软链接文件,而不是复制源文件 |
-p | 复制后目标文件保留源文件的属性(包括所有者、所属组、权限、时间) |
-r | 递归复制,用于复制目录 |
不改名复制:cp test /tmp/
改名复制:cp test /tmp/test
如需要复制目录,则需要使用-r
选项。
mv
-移动文件或改名
执行权限:所有用户
命令格式:mv[格式] 源文件 目标文件
选项:
选项 | 描述 |
---|---|
-f | 强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖 |
-i | 交互移动,默认选项 |
-n | 如果目标文件已经存在,则不会覆盖移动,而是不询问用户 |
-v | 显示详细信息 |
权限管理命令
权限位的含义
以上详细信息中,第一列就是权限位,其中:
第1位:表示linux的文件类型,如下
- | 普通文件 |
---|---|
b | 块设备文件 |
c | 字符设备文件 |
d | 目录文件,Linux中一切皆文件,目录也是一种文件 |
l | 软链接文件 |
p | 管道符文件 |
s | 套接字文件 |
r | 代表read,读权限 |
w | 代表write,写权限 |
x | 代表execute,执行权限 |
第1组(第2-4位):文件拥有者的权限
第2组(第5-7位):文件所属组的权限
第3组(第8-10位):其他用户
chmod
-修改文件的权限
执行权限:所有用户
功能描述:修改文件的权限模式
命令格式:chmod [选项] 权限模式 文件名
选项只有一个-R
,递归设置权限,也就是给子目录中的所有文件设定权限。
权限模式:chmod命令的权限模式的格式是[用户身份][[赋予方式][权限]]
。
用户身份:
用户身份 | 描述 |
---|---|
u | 代表所有者 |
g | 代表所属组 |
o | 代表其他人 |
a | 代表全部身份 |
赋予方式:
赋予方式 | 描述 |
---|---|
+ | 加入权限 |
- | 减去权限 |
= | 设置权限 |
权限:
权限 | 描述 |
---|---|
r | 读取权限 |
w | 写权限 |
x | 执行权限 |
如:
chmod o=rwx 文件名
给其他人设置读写和执行权限。
chmod u+x,g+w 文件名
给所有者执行权限,和所属组写权限。
数字权限
数字的含义:
数字 | 含义 |
---|---|
1 | 代表x 权限 |
2 | 代表w 权限 |
4 | 代表r 权限 |
如:chmod 755 文件名
第一个数字代表所有者的权限是 4+2+1
第二个数字代表所属组的权限是 4+1
第三个数字代表其他人的权限是 4+1
注意:
①当需要删除一个文件时,需要获取当前文件目录的写权限,光有文件的写权限是不够的。
②root用户是超级用户,就算没有任何权限,也可以执行所有操作。
③在普通用户中,只有文件的所有者才能修改权限。
umask
-默认权限
主要让Linux中的新建文件和目录拥有默认权限。
查看系统的umask 默认权限
:
umask -S
直接使用字母来表示默认权限。
修改系统的umask
默认权限:
umask 002
修改默认权限为002
用户命令
useradd
-创建用户
执行权限:超级用户
命令格式:useradd [选项] 用户名
选项:
选项 | 描述 |
---|---|
-u | 手动指定用户的UID |
-d | 手动指定用户的家目录 |
-g | 手动指定用户的组名 |
-e | 手动指定用户的失效日期 |
第一步:添加用户useradd user
第二部:设置用户密码passwd user
,输入两次密码确认
passwd
-修改用户密码
执行权限:超级用户
命令格式:passwd [选项] 用户名
选项:
选项 | 描述 |
---|---|
-S | 查询用户密码的状态 |
-l | 暂时锁定用户 |
-u | 解锁用户 |
su
-切换用户
命令格式:su - user
切换到指定用户
usermod
-修改用户信息
命令格式:usermod [选项] 用户名
userdel
-删除用户
命令格式:userdel [-r] 用户名
所有者和所有组命令
chown
-修改所有者和所有组
执行权限:所有用户
功能描述:修改文件和目录的所有者和所属组
命令格式:chown [选项] 所有者:所属组 文件(目录)
选项:-R
递归设置权限,给子目录中的所有文件设置权限。
修改文件的所有者:chown user 文件名
修改文件的所属组:chown user:user 文件名
帮助命令
man
显示联级帮助手册
执行权限:所有用户
命令格式:man [选项] 命令
选项:
选项 | 描述 |
---|---|
-f | 查看命令拥有哪个级别的帮助 |
-k | 查看和命令相关的所有帮助 |
如:man ls
#获取ls
命令帮助信息
info
-显示帮助信息的完整资料
与man
的使用大同小异。
在这个帮助信息中,如果标题的前面有*
符号,则表示这是一个可以进入的子页面,按回车进入。
help
-获取Shell内置命令帮助
一般使用都是外部命令,所以help
使用很少。
搜索命令
whereis
-查找命令、源文件和帮助
执行权限:所有用户
命令格式:whereis [选项] 命令
选项:
选项 | 描述 |
---|---|
-b | 只查找二进制命令 |
-m | 只查找帮助文档 |
which
-列出命令的所在路径
执行权限:所有用户
命令格式:which 命令
locate
-按照文件名搜索
执行权限:所有用户
命令格式:locate [选项] 文件名
选项:-i
忽略大小写。
注意:新建的文件,locate
找不到,因为它不会直接去搜索硬盘空间,而是搜索locate
数据库。
如果需要,可以使用updatedb
命令来更新数据库。这种情况也是有可能会找不到,因为系统可能把该文件认定为临时文件。
find
-在目录中搜索文件
执行权限:所有用户
命令格式:find 搜索路径 [选项] 搜索内容
选项:
选项 | 描述 |
---|---|
-name | 按照文件名搜索 |
-iname | 按照文件名搜索,不区分文件名大小写 |
-inum | 按照inode号搜索 |
-size[+/-] | 按照指定大小搜索文件,不加正反号为搜索指定大小文件 |
-atime[+/-] | 按照文件访问时间搜索 |
-mtime[+/-] | 按照文件数据修改时间搜索 |
-ctime[+/-] | 按照文件状态修改时间搜索 |
-perm[+/-]权限模式 | 按照文件权限搜索 |
其他的还可以按照所有者
,文件类型
,逻辑与算符
。
关机和重启命令
sync
-数据同步
执行权限:所有用户
可直接执行,无参数。
shutdown
-关机和重启
执行权限:超级用户
命令格式:shutdown [选项] 时间 [警告信息]
选项:
选项 | 描述 |
---|---|
-c | 取消已经执行的shutdown 命令 |
-h | 关机 |
-r | 重启 |
shutdown -r now
马上重启
shutdown -r 05:30
指定时间重启,会占用终端前台
shutdown -r 05:30 &
指定时间重启,会放入后台
shutdown -c
取消定时重启
shutdown -r +10
10分钟之后重启
shutdown -h now
马上关机
shutdown -h 05:30
指定时间关机
reboot
重启
直接重启。
halt
和poweroff
关机
直接关机。
init
重启和关机
init 0
关机
init 6
重启
改变系统运行级别的形式来完成关机重启的操作。
网络命令
ip
-显示和设置网络路由
执行权限:超级用户
功能描述:显示和设置网络路由、路由策略
查看IP地址信息:ip address show
查看本机的路由信息表:ip route show
以下命令需要使用nmmtui
工具
临时设定IP地址和删除IP地址:ip address add 192.168.44.31/24 dev ens33
临时设定网关:ip route del default via 192.168.44.1
ifconfig
-配置网络接口
执行权限:超级用户
查看IP地址信息:ifconfig
临时配置IP地址:
ifconfig eth0 192.168.44.3
不指定子网掩码就会使用标准的子网掩码
ifconfig eth0 192.168.44.3 netmask 255.255.255.0
指定子网掩码
ifup
启用网卡、ifdown
关闭网卡
关闭eth0网卡命令:ifdown eth0
启用eth0网卡命令:ifup eth0
ping
-向网络主机发送请求
执行权限:所有用户
功能描述:向网络主机发送ICMP请求
命令格式:ping [选项] IP
选项:
选项 | 描述 |
---|---|
-b | 后面加入广播地址,用于对整个网段进行探测 |
-c | 次数:用于指定ping的次数。ping -c 3 192.168.103.105 |
-s | 字节:指定探测包的大小。 |
再如:探测网段中可用主机
ping -b -c 3 192.168.103.255
ss
-查询网络访问
执行权限:超级用户
命令格式:ss [选项]
选项:
选项 | 描述 |
---|---|
-a | 列出所有网络状态,包括Socket程序 |
-n | 使用IP地址和端口号显示,不使用域名和服务名 |
-p | 显示PID和程序名 |
-t | 显示TCP端口的连接状态 |
-u | 显示UDP端口的连接状态 |
-l | 查看监听状态 |
TCP和UDP:
①它们是两个具有代表性的传输层协议;
②TCP面向连接,而UDP是无连接的;
③TCP提供的服务更可靠;
④TCP面向字节流,UDP则是面向报文的;
⑤TCP连接只能是点到点相比,UDP连接方式更加多样化;
⑥UDP的首部开销8个字节比TCP的20字节要小;
在CentOS 7.x中默认没有安装netstat
命令,而是通过ss
命令取代了netstat
命令。
使用方法:
查看本机所有网络连接:ss -an
查询本机开启的端口:ss -tuln
查看本机开启的端口与正在进行的连接:ss -tuan
netstat
-查看网络连接
执行权限:所有用户
功能描述:输出网络连接、路由表、接口统计、伪装链接和组播成员
命令格式:netstat [选项]
用法基本与ss
一致。
write
-向其他用户发送信息
执行权限:所有用户
命令格式:write 用户名 [终端号]
如:write user1 pts/1
wall
-给所有登录用户发送信息
命令格式:wall "要发送的信息"
mail
-发送和接收电子邮件
执行权限:所有用户
发送邮件:
mail user1
Subject:hello <-右键标题
Nice to meet you! <-邮件内容
. <-使用"."来结束邮件输入
发送文件内容:
mail -s "test mail" root</root/anaconda-ks.cfg
其中-s
选项用来指定邮件标题。
查看已经接收的邮件:
mail
打开ssh服务
service sshd start
打开22端口
netstat -ntpl | grep 22
查看防火墙状态
systemctl status firewalld
开启防火墙状态
systemctl start firewalld
关闭防火墙
systemctl stop firewalld
查看当前firewall状态
firewall-cmd --state
重启firewall
firewall-cmd --reload
禁止开启重启
systemctl disable firewalld.service
查看已经开放的端口
firewall-cmd --list-ports
开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
测试端口
telnet 服务器ip地址 端口
#ip地址与端口使用空格隔开
用户和用户组管理
用户配置文件和管理相关文件
用户信息文件:/etc/passwd
保存所有用户的主要信息
影子(密码)文件:/etc/shadow
保存用户的实际加密密码和密码有效期等参数。这个文件只有超级用户才有权限查看。
组信息文件/etc/group/
记录组ID(GID)和组名的对应文件
组密码文件/etc/gshadow
服务器搭建
压缩包解压缩命令:
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
———————————————
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
———————————————
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
启动tomcat
tomcat的bin目录下执行:
./startup.sh
关闭tomcat
./shutdown.sh
安装ssh服务
sudo yum install openssh-server
监听22端口
Port 22
ListenAddress 0.0.0.0
ListenAddress ::
使用ssh服务登录
ssh root@192.168.0.114
打开某个端口号
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
重新启动网络服务
systemctl restart network