1.1 目录和路径
1.1.1 目录
1.1.2 路径
Linux系统目录分隔符为斜杠 ” / ”
- 绝对路径 是荣根目录开始 /
- 相对路径 是指从当前目录开始
.
1.2 目录结构
- /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。
- /bin****: /usr/bin****: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
- /boot:放置linux系统启动时用到的一些文件
- /dev****:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。
- /etc:系统配置文件存放的目录
- /home:系统默认的用户家目录
- /lib: /usr/lib: /usr/local/lib:系统使用的函数库的目录
- /lost+fount****:系统异常产生错误时,会将一些遗失的片段放置于此目录下。
- /mnt: /media:光盘默认挂载点
- /opt****:给主机额外安装软件所摆放的目录。
- /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间
- /root****:系统管理员root的家目录。
- /sbin: /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能”查看”而不能设置和使用
- /tmp****:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。
- /srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内
- /usr:应用程序存放目录,/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录
- /var:放置系统执行过程中经常变化的文件
1.3 访问权限
1. 示例
[root@192 run]# ll
-rw-r--r--. 1 root root 6 5月 10 10:59 auditd.pid
- : 文件类型 -:代表文件,d代表文件夹,c代表硬件字符设备,b硬件块设备,s管道文件,l 软连接文件
rw-: 所有者拥有的权限,可读可写
r--: 用户组拥有的权限,可读
r--: 其他用户拥有的权限,可读
2. 常用命令
2.1 命令使用方法
command [-options] [parameter1...]
- command: 命令名称,相应功能的英文单词缩写
- [options]: 选项
- [paramter1...]: 传递给命令的参数
[] 代表可以省略2命令使用方法
2.2 查看帮助文档
- –help : 一般是 Linux 命令自带的帮助信息,并不是所有命令都自带这个选项。ls –help
- man [选项] 命令名称 我们想查看 ls 的用法:man 1 ls
| 功能键 |
功能 |
|---|
| 空格键 |
显示手册页的下一屏 |
| Enter键 |
一次滚动手册页的一行 |
| b |
回滚一屏 |
| f |
前滚一屏 |
| q |
退出man命令 |
| h |
列出所有功能键 |
| /word |
搜索word字符串 |
2.3 常用命令
2.3.1 文件管理
1. 查看文件信息 ls
| 参数 |
含义 |
|---|
| -a |
显示指定目录下所有子目录与文件,包括隐藏文件 |
| -l |
以列表方式显示文件的详细信息 |
| -h |
配合 -l 以人性化的方式显示文件大小 |
2.输出重定向命令:>
ls > test.txt # 将查询的结果重定向到文件中
>输出重定向会覆盖原来的内容,>> 输出重定向则会追加到文件的尾部。
3. 分屏显示:more
more index.html # 从头开始分屏查看index.html 空格查看下一页
4. 管道 |
管道: 一个命令的输出可以通过管道做为另一个命令的输入
ls -alh | more
管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。
5.清屏 clear
6. 切换工作目录 cd
| 命令 |
含义 |
|---|
| cd |
切换到当前用户的主目录(/home/用户目录),用户登陆的时候,默认的目录就是用户的主目录。 |
| cd ~ |
切换到当前用户的主目录(/home/用户目录) |
| cd . |
切换到当前目录 |
| cd .. |
切换到上级目录 |
| cd – |
可进入上一个进入的目录 |
7. 显示当前路径:pwd
8.创建目录:mkdir -p 递归创建目录
9 删除目录: rmdir
10 删除文件 rm
可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。
| 参数 |
含义 |
|---|
| -i |
以进行交互式方式执行 |
| -f |
强制删除,忽略不存在的文件,无需提示 |
| -r |
递归地删除目录下的内容,删除文件夹时必须加此参数 |
11.建立链接文件:ln
- Linux链接文件类似于Windows下的快捷方式。
- 链接文件分为软链接和硬链接。
- 软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
- 硬链接:硬链接只能链接普通文件,不能链接目录。
ln 源文件 链接文件
ln -s 源文件 链接文件
没有 -s 代表硬链接
12. 查看或者合并文件内容:cat
cat 1.txt 2.txt > 3.txt # 将1,2 合并到 3
13.文本搜索:grep
grep [-选项] '搜索内容串' 文件名
| 选项 |
含义 |
|---|
| -v |
显示不包含匹配文本的所有行(相当于求反) |
| -n |
显示匹配行及行号 |
| -i |
忽略大小写 |
grep常用正则表达式:自行百度
14.计算文件行数或字数:wc
| 选项 |
含义 |
|---|
| -l |
统计行数 |
| -w |
统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。 |
| -c |
统计字节数 |
| -m |
统计字符数。这个标志不能与 -c 标志一起使用。 |
15. 查找文件:find
find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件
| 命令 |
含义 |
|---|
| find ./ -name test.sh |
查找当前目录下所有名为test.sh的文件 |
| find ./ -name ‘*.sh’ |
查找当前目录下所有后缀为.sh的文件 |
| find ./ -name “[A-Z]*” |
查找当前目录下所有以大写字母开头的文件 |
| find /tmp -size 2M |
查找在/tmp 目录下等于2M的文件 |
| find /tmp -size +2M |
查找在/tmp 目录下大于2M的文件 |
| find /tmp -size -2M |
查找在/tmp 目录下小于2M的文件 |
| find ./ -size +4k -size -5M |
查找当前目录下大于4k,小于5M的文件 |
| find ./ -perm 0777 |
查找当前目录下权限为 777 的文件或目录 |
16. 拷贝文件:cp
| 选项 |
含义 |
|---|
| -a |
该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。 |
| -f |
删除已经存在的目标文件而不提示 |
| -i |
交互式复制,在覆盖目标文件之前将给出提示要求用户确认 |
| -r |
若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。 |
| -v |
显示拷贝进度 |
17.移动文件:mv
用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名
| -f |
禁止交互式操作,如有覆盖也不会给出提示 |
|---|
| -i |
确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖, 系统会询问是否重写,要求用户回答以避免误覆盖文件 |
| -v |
显示移动进度 |
18. 获取文件类型:file
19. 归档管理:tar
tar [options] 打包文件 文件
tar -cvf test.tar 1.txt 2.txt 3.txt 打包文件到test.tar
tar -xvf test.tar 解押文件
| 参数 |
含义 |
|---|
| -c |
生成档案文件,创建打包文件 |
| -v |
列出归档解档的详细过程,显示进度 |
| -f |
指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后 |
| -t |
列出档案中包含的文件 |
| -x |
解开档案文件 |
| -z |
打包文件时同时压缩 |
| -C |
解压到指定目录 tar -zxvf test.tar.gz -C /home/test/ |
| -j |
加上此参数可以实现bzip2压缩 |
20. 文件压缩解压:gzip
- tar与gzip命令结合使用实现文件打包、压缩。
- tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz
gzip [options] 被压缩的文件
21.文件压缩解压:bzip2
tar -cjvf 压缩包包名 文件 #压缩
tar -xjvf 压缩包包名 # 解压缩
22. 文件压缩解压:zip、unzip
- 压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
- 解压文件:unzip -d 解压后目录文件 压缩文件
23.查看命令位置:which
which ls
/usr/bin/ls
3.2 用户操作
1. 查看当前用户; whoami
2. 查看登录用户: who
who 命令用于查看当前所有登录系统的用户信息
| 选项 |
含义 |
|---|
| -m或am I |
只显示运行who命令的用户名、登录终端和登录时间 |
| -q或–count |
只显示用户的登录账号和登录用户的数量 |
| -u |
在登录时间后显示该用户最后一次操作到当前的时间间隔 |
| -u或–heading |
显示列标题 |
3. 查看登陆用户: w
w [options] [用户名]
| 选项 |
含义 |
|---|
| -h |
只显示运行who命令的用户名、登录终端和登录时间 |
| -l |
显示详细信息列表,此为预设值 |
| -s |
使用短列表,不显示用户登录时间、JCPU和PCPU时间 |
| -u |
忽略执行程序的名称,以及该程序的PCPU时间 |
4. 退出登录账户: exit
5. 切换用户: su
如果是ubuntu平台,需要在命令前加“sudo”
| 命令 |
含义 |
|---|
| su |
切换到root用户 |
| su root |
切换到root用户 |
| su – |
切换到root用户,同时切换目录到/root |
| su – root |
切换到root用户,同时切换目录到/root |
| su 普通用户 |
切换到普通用户 |
| su – 普通用户 |
切换到普通用户,同时切换普通用户所在的目录 |
6. 添加,删除组账号: groupadd,groupdel
cat /etc/group 查看有多少用户组
7.修改用户所在组:usermod
usermod -g 用户组 用户名
8.添加用户账号:useradd
useradd [参数] 新建账号
9.设置用户密码:passwd
10.删除用户:userdel
| 命令 |
含义 |
|---|
| userdel abc(用户名) |
删除abc用户,但不会自动删除用户的主目录 |
| userdel -r abc(用户名) |
删除用户,同时删除用户的主目录 |
11.查询用户登录情况:last
不管是哪位用户从哪里登录,管理员都可以通过last命令查出,以及是否有人非法登录。
12.修改文件权限: chmod
chmod 修改文件权限有两种使用格式:字母法与数字法。
| [ u/g/o/a ] |
含义 |
|---|
| u |
user 表示该文件的所有者 |
| g |
group 表示与该文件的所有者属于同一组( group )者,即用户组 |
| o |
other 表示其他以外的人 |
| a |
all 表示这三者皆是 |
| [ +-= ] |
含义 |
|---|
| + |
增加权限 |
| – |
撤销权限 |
| = |
设定权限 |
| rwx |
含义 |
|---|
| r |
read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。 |
| w |
write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。 |
| x |
excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。 |
chmod o+w file 给文件file的其它用户增加写权限:
chmod u-r file 给文件file的拥有者减去读的权限:
chmod g=x file设置文件file的同组用户的权限为可执行,同时去除读、写
数字法:“rwx” 这些权限也可以用数字来代替
| r |
读取权限,数字代号为 “4” |
|---|
| w |
写入权限,数字代号为 “2” |
| x |
执行权限,数字代号为 “1” |
| – |
不具任何权限,数字代号为 “0” |
如执行:chmod u=rwx,g=rx,o=r filename
就等同于:chmod u=7,g=5,o=4 filename
注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。
如:chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限。
13.修改文件所有者:chown
chown 用户名 文件或目录名
14. 修改文件所属组: chgrp
3.3. 系统管理
1. 查看当前日历: cal
2.显示或设置时间: date
date [MMDDhhmm[[CC]YY][.ss]] + format
3. 查看进程信息:ps
| 选项 |
含义 |
|---|
| -a |
显示终端上的所有进程,包括其他用户的进程 |
| -u |
显示进程的详细状态 |
| -x |
显示没有控制终端的进程 |
| -w |
显示加宽,以便显示更多的信息 |
| -r |
只显示正在运行的进程 |
4.动态显示进程:top
可以在使用top命令时加上-d
| 按键 |
含义 |
|---|
| M |
根据内存使用量来排序 |
| P |
根据CPU占有率来排序 |
| T |
根据进程运行时间的长短来排序 |
| U |
可以根据后面输入的用户名来筛选进程 |
| K |
可以根据后面输入的PID来杀死进程。 |
| q |
退出 |
| h |
获得帮助 |
5.终止进程
kill命令指定进程号的进程,需要配合 ps 使用。
kill [signal] pid /# 信号值为 0-15 9为绝对终止
6.后台程序:&、jobs、fg
- 用户可以将一个前台执行的程序调入后台执行,方法为:命令 &
- 如果程序已经在执行,ctrl+z可以将程序调入后台
- jobs查看后台运行程序
- fg编号(编号为通过jobs查看的编号),将后台运行程序调出到前台
7.关机重启:reboot、shutdown、init
| 命令 |
含义 |
|---|
| reboot |
重新启动操作系统 |
| shutdown –r now |
重新启动操作系统,shutdown会给别的用户提示 |
| shutdown -h now |
立刻关机,其中now相当于时间为0的状态 |
| shutdown -h 20:25 |
系统在今天的20:25 会关机 |
| shutdown -h +10 |
系统再过十分钟后自动关机 |
| init 0 |
关机 |
| init 6 |
重启 |
8. 检测磁盘空间:df
df命令用于检测文件系统的磁盘空间占用和空余情况
| 选项 |
含义 |
|---|
| -a |
显示所有文件系统的磁盘使用情况 |
| -m |
以1024字节为单位显示 |
| -t |
显示各指定文件系统的磁盘空间使用情况 |
| -T |
显示文件系统 |
| -h |
以GB显示 |
9. 检测目录所占磁盘空间:du
du [选项] 目录或文件夹
| 选项 |
含义 |
|---|
| -a |
递归显示指定目录中各文件和子目录中文件占用的数据块 |
| -s |
显示指定文件或目录占用的数据块 |
| -b |
以字节为单位显示磁盘占用情况 |
| -l |
计算所有文件大小,对硬链接文件计算多次 |
| -h |
显示单位 |
11.格式化:mkfs
mkfs [options] 设备文件名 [blocks]
| 选项 |
含义 |
|---|
| -V |
详细显示模式 |
| -t <.fs> |
指定文件系统类型,默认值为 ext2 |
| -c |
在创建文件系统的同时,进行磁盘坏块检查 |
| blocks |
文件系统块的大小 |
12.应用软件安装和卸载
RPM 的全称为Redhat Package Manager ,是由Redhat公司提出的,用于管理Linux下软件包的软件
rpm [options] [soft package]
| 选项 |
含义 |
|---|
| -i |
指定安装的软件包 |
| -h |
使用“#”显示详细的安装过程及进度 |
| -v |
显示安装的详细信息 |
| -q |
查询系统是否已安装指定的软件包 |
| -a |
查看系统已安装的所有软件包 |
| -e |
卸载软件包 |
| –nodeps |
配合-e参数使用,强制卸载不检查依赖项 |
| –force |
强制操作 如强制安装删除等 |
13.测试远程主机连通性:ping
- ping通过ICMP协议向远程主机发送ECHO_REQUEST请求,期望主机回复ECHO_REPLY消息
- 通过ping命令可以检查是否与远程主机建立了TCP/IP连接
使用方法:ping [参数] 远程主机IP地址
| 参数 |
功能 |
|---|
| -a |
每次相应时都发出声音警示 |
| -A |
表示以实际往返相应时间为间隔,连续发送消息 |
| -f |
连续不断发送消息,不管是否收到相应 |
| -n |
只显示主机IP,不需要把IP解释成主机名 |
| -c |
发送指定次数数据报信息后停止,ping -c 5 192.168.10.254 |
| -i |
每次发送消息时间间隔,默认一秒,ping -i 2 192.168.10.254 |
| -s |
分组数据大小,默认56字节 |
| -w |
以秒为单位的超时值,一旦超时,就立即停止 |
14.监控网络状态:netstat
| 字段 |
说明 |
|---|
| Proto |
协议,如:tcp,udp |
| Recv-Q |
尚未读取的数据字节数 |
| Send-Q |
尚未发送的数据字节数 |
| Local_address |
本地主机地址与端口号 |
| Foreign_address |
远程主机与端口号 |
| State |
网络连接状态 |
| RefCnt |
引用计数,表示加接到相应套接字的进程数量 |
| Flags |
标志字段 |
| Type |
套接字类型,如:(SOCK_DGRAM, SOCK_STREAM,SOCK_RAW) |
| State |
套接字状态 |
| Path |
套接字路径名 |
| 参数 |
功能 |
|---|
| -a |
列出所有端口 |
| -i |
显示网络接口列表 |
| -at |
所有tcp端口 |
| -au |
所有udp端口 |
| -l |
所有监听端口 |
| -lt |
tcp监听端口 |
| -lu |
指定网络接口 |
| -s |
显示所有协议统计信息 |
| -r |
当前路由状态 |
| -p |
输出中显示 PID 和进程名称,可以与其它开关一起使用,如:-pt |
555
555
555
555
555