目录
一、Linux命令基础
1、ls、ll命令——展示数据
①ls命令——平铺展示数据
其中ls命令以平铺的方式展现数据
②ll命令——列表展示数据
ll命令以列表的方式展现数据
-a选项,表示:all的意思,即列出全部文件(包含隐藏的文件/文件夹)
-l选项,表示:以列表(竖向排列)的形式展示内容,并展示更多信息
-h 表示以易于阅读的形式,列出文件大小,如K、M、G
-h选项必须要搭配 -l 一起使用
2、cd、pwd命令——目录切换命令
①cd命令—— 切换工作目录
语法:cd 【Linux路径】
②pwd命令——查看当前工作目录
特殊路径符
3、mkdir命令——创建目录
语法:mkdir [-p] Linux路径
在当前目录下创建文件夹
在/目录下创建文件夹
如果想要一次性创建多个层级的目录,如下图
会报错,因为上级目录test并不存在,所以无法创建test目录 可以通过-p选项,将一整个链条都创建完成。
4、touch-cat-more命令
①touch命令——创建文件
②cat命令——查看文件内容全部显示
这是txt.txt文件内容
使用cat命令查看
③more命令——查看文件内容支持翻页
在查看的过程中,通过空格翻页,通过q退出查看
5、cp-mv-rm命令
①cp命令——复制文件、文件夹
如上图,将txt.txt文件由~目录复制到move文件夹中
如果复制目录的话,则无法复制
使用-r命令就可以进行目录的复制,成功
②mv命令——移动文件、文件夹
将txt.txt文件移动到move文件夹
如果目标不存在,则会进行改名
移动文件夹
③rm命令——删除文件、文件夹、通配符
删除txt2.txt文件
目前move2里面有txt.txt文件,直接无法删除move2文件夹
这时候需要加上-r才可以删除
如果用来作为通配符
删除所有以test开头的文件或文件夹
6、which-find命令
使用su - root切换到管理员模式
①which命令——查看命令的程序文件存放位置
②find命令——按文件名查找文件
从根目录开始查找文件名为txt.txt的文件
根据通配符进行模糊匹配
进行模糊前缀匹配
模糊后缀匹配
匹配包含txt.txt的内容
根据文件大小进行搜索
查找大于1G的文件
7、grep-wc命令
①grep命令——过滤文件
这是txt.txt的内容
通过grep管道符查找gcc内容在txt.txt文件中
查找gcc所处行位置,加上-n
查找有多个相同内容的数据
②wc命令——数量统计
统计数据如图:
③管道符——左边结果作为右边输入
如下图所示统计txt.txt文件"-"数据
如下图统计当前目录下的数量
如下图,查找当前目录txt.txt文件
如下图,ls当前目录的输入会作为第一个grep的输入,第一个grep的输入会作为第二个grep的输入
8、echo-tail-重定向符命令
①echo命令——输出指定内容
反引号(飘号)
重定向符
覆盖写入
追加写入
将目录写入txt.txt文件中
②tail命令——查看文件尾部内容
这是txt.txt文件内容
默认查看尾部十行内容
查看倒数5行的内容
-f会持续追踪,只要有变化就动态显示
9、vi、vim编辑器
vim 文件名
使用i进入编译模式
使用Esc按键和:wq保存并退出
二、Linux用户和权限
1、su命令——切换用户
1.1、切换到root用户(需要密码)
su - root
1.2、切换到其他用户,比如jackma(无需密码)
su - jackma
2、sudo命令——给普通用户添加root权限
2.1、用法
切换到root用户,执行visudo命令,会自动进入vim编译器
su - root
输入密码
visudo
在最后一行添加如下命令
为普通用户添加权限,然后:wq进行保存
切换到普通用户
su - jackma
在根目录创建目录,权限不够
使用sudo命令
创建成功
2.2、概括
可以让一条普通命令带有root权限,语法:
sudo 其它命令
需要以root用户执行visudo命令,增加配置方可让普通用户有sudo命令的执行权限
3、用户和用户组
Linux中关于权限的管控级别有2个级别,分别是:
- 针对用户的权限控制
- 针对用户组的权限控制
比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限。
1、用户组管理
1.1、创建用户组
groupadd 用户组名
1.2、删除用户组
groupdel 用户组名
2、用户管理
2.1、创建用户
useradd [-g -d] 用户名
- -g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
- -d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
添加到boss组
不指定目录就会自动在home目录下创建
指定/home/user目录下创建
2.2、删除用户
userdel [-r]用户名
- -r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
删除前
删除user3
删除后
2.3、查看用户所属组
id 用户名
2.4、修改用户所属组
将指定用户加入到指定组
usermod -aG 用户组 用户名
将user2加入到boss2组
2.5、查看系统有那些用户
getent passwd
最下面两行是user1和user2
共有7份信息,分别是
用户名 : 密码(x) : 用户ID : 组ID : 描述信息(无用) : HOME目录 : 执行终端(默认bash)
4、查看权限控制
4.1、认知权限信息
通过ls -l 可以以列表形式查看内容,并显示权限细节
- 序号1,表示文件、文件夹的权限控制信息
- 序号2,表示文件、文件夹所属用户
- 序号3,表示文件、文件夹所属用户组
4.2、权限细节
权限细节总共分为10个槽位
举例:drwxr-xr-x,表示:
- 这是一个文件夹,首字母d表示
- 所属用户(右上角图序号2)的权限是:有r有w有x,rwx
- 所属用户组(右上角图序号3)的权限是:有r无w有x,r-x (-表示无此权限)
- 其它用户的权限是:有r无w有x,r-x
那么,rwx到底代表什么呢?
- r表示读权限
- w表示写权限
- x表示执行权限
针对文件、文件夹的不同,rwx的含义有细微差别
- r
- 针对文件可以查看文件内容
- 针对文件夹,可以查看文件夹内容,如ls命令
- w
- 针对文件表示可以修改此文件
- 针对文件夹,可以在文件夹内:创建、删除、改名等操作
- x
- 针对文件表示可以将文件作为程序执行
- 针对文件夹,表示可以更改工作目录到此文件夹,即cd进入
5、chmod命令——修改权限信息
我们可以使用chmod命令,修改文件、文件夹的权限信息。注意,只有文件、文件夹的所属用户或root用户可以修改。
chmod [-R] 权限 文件或文件夹
-R,对文件夹内的全部内容应用同样的操作
例如:
chmod u=rwx,g=rx,o=x hello.txt ,将文件权限修改为:rwxr-x--x
- 其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限
chmod -R u=rwx,g=rx,o=x test,将文件夹test以及文件夹内全部内容权限设置为:rwxr-x--x
- 除此之外,还有快捷写法:chmod 751 hello.txt
修改前权限
修改后权限
6、chown命令
使用chown命令,可以修改文件、文件夹的所属用户和用户组
普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行
chown [-R] [用户] [:] [用户组] 文件或文件夹
- 选项,-R,同chmod,对文件夹内全部内容应用相同规则
- 选项,用户,修改所属用户
- 选项,用户组,修改所属用户组
- :用于分隔用户和用户组
chown root hello.txt,将hello.txt所属用户修改为root
chown :root hello.txt,将hello.txt所属用户组修改为root
chown root:itheima hello.txt,将hello.txt所属用户修改为root,用户组修改为itheima
chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则
如图,修改test文件权限到root用户
如图,修改test文件权限到boss用户组
三、Linux实用操作
1、快捷键小操作
1.1、ctrl + c 强制停止
Linux某些程序的运行,如果想要强制停止它,可以使用快捷键ctrl + c
命令输入错误,也可以通过快捷键ctrl + c,退出当前输入,重新输入
1.2、ctrl + d 退出或登出
可以通过快捷键:ctrl + d,退出账户的登录
或者退出某些特定程序的专属页面
1.3、清屏
通过快捷键ctrl + l,可以清空终端内容
2、软件安装
yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。
yum [-y] [install] [remove] [search] 软件名称
- 选项:-y,自动确认,无需手动确认安装或卸载过程
- install:安装
- remove:卸载
- search:搜索
yum命令需要root权限哦,可以su切换到root,或使用sudo提权。
yum命令需要联网
例如:
yum [-y] install wget, 通过yum命令安装wget程序
yum [-y] remove wget,通过yum命令卸载wget命令
yum search wget,通过yum命令,搜索是否有wget安装包
3、systemctl
systemctl命令控制软件的启动和关闭
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启
能够被systemctl管理的软件,一般也称之为:服务
systemctl start | strop | status | enable | disable 服务名
- start 启动
- stop 关闭
- status 查看状态
- enable 开启开机自启
- disable 关闭开机自启
系统内置的服务比较多,比如:
NetworkManager,主网络服务
network,副网络服务
firewalld,防火墙服务
sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)
4、软连接
在系统中创建软链接,可以将文件、文件夹链接到其它位置。 类似Windows系统中的《快捷方式》
ln -s 参数1 参数2
- -s选项,创建软连接
- 参数1:被链接的文件或文件夹
- 参数2:要链接去的目的地
实例:
ln -s /etc/yum.conf ~/yum.conf
ln -s /etc/yum ~/yum
5、日期、时区
5.1、date命令
通过date命令可以在命令行中查看系统的时间
date [-d] [+格式化字符串]
- -d 按照给定的字符串显示日期,一般用于日期计算
- 格式化字符串:通过特定的字符串标记,来控制显示的日期格式
- %Y 年
- %y 年份后两位数字 (00..99)
- %m 月份 (01..12)
- %d 日 (01..31)
- %H 小时 (00..23)
- %M 分钟 (00..59)
- %S 秒 (00..60)
- %s 自 1970-01-01 00:00:00 UTC 到现在的秒数
5.2、ntp程序
我们可以通过ntp程序自动校准系统时间
安装
ntp:yum -y install ntp
启动并设置开机自启:
systemctl start ntpd
systemctl enable ntpd
当ntpd启动后会定期的帮助我们联网校准系统的时间
也可以手动校准(需root权限):
ntpdate -u ntp.aliyun.com
通过阿里云提供的服务网址配合ntpdate(安装ntp后会附带这个命令)命令自动校准
6、IP地址、主机名
查看ip地址指令
ifconfig
如无法使用ifconfig命令,可以安装
yum -y install net-tools
7、网络请求和下载
7.1、使用ping命令检查服务器是否可联通
可以通过ping命令,检查指定的网络服务器是否是可联通状态
ping [-c num] ip或主机名
- 选项:-c,检查的次数,不使用-c选项,将无限次数持续检查
- 参数:ip或主机名,被检查的服务器的ip地址或主机名地址
7.2、使用wget命令下载文件
wget是非交互式的文件下载器,可以在命令行内下载网络文件
wget [-b] url
- 选项:-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
- 参数:url,下载链接
示例:wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
在后台下载:wget -b http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
通过tail命令可以监控后台下载进度:tail -f wget-log
7.3、使用curl命令发起网络请求
curl可以发送http网络请求,可用于:下载文件、获取信息等
curl [-0] url
- 选项:-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件
- 参数:url,要发起请求的网络地址
向cip.cc发起网络请求:curl cip.cc
8、端口
查看端口占用
8.1、使用nmap命令查看端口的占用情况
安装nmap:yum -y install nmap
语法:nmap 被查看的IP地址
可以看到,本机(127.0.0.1)上有7个端口现在被程序占用了。
8.2、使用netstat命令查看指定端口的占用情况
语法:netstat -anp | grep 端口号
安装netstat:yum -y install net-tools
如图,可以看到当前系统6000端口被程序(进程号7174)占用了 其中,0.0.0.0:6000,表示端口绑定在0.0.0.0这个IP地址上,表示允许外部访问
可以看到,当前系统12345端口,无人使用
9、主进程管理
9.1、查看进程
可以通过ps命令查看Linux系统中的进程信息
ps [-e -f]
- 选项:-e,显示出全部的进程
- 选项:-f,以完全格式化的形式展示信息(展示全部信息)
一般来说,固定用法就是: ps -ef 列出全部进程的全部信息
ps -ef
9.2、查看指定进程
我们可以使用管道符配合grep来进行过滤,如:
准确的找到redis命令的信息
ps -ef | grep redis
过滤带有6379关键字的进程信息(一般指代过滤6379进程号)
ps -ef | grep 6379
9.3、关闭进程
在Linux中,可以通过kill命令关闭进程。
kill [-9] 进程id
选项:-9,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制
10、文件上传、下载
10.1、通过FinalShell工具虚拟机进行数据交换
在FinalShell软件的下方窗体中,提供了Linux的文件系统视图,可以方便的:
- 浏览文件系统,找到合适的文件,右键点击下载,即可传输到本地电脑
- 浏览文件系统,找到合适的目录,将本地电脑的文件拓展进入,即可方便的上传数据到Linux中
使用拖拽将windows文件上传到linux
使用下载将linux文件下载到windows
10.2、rz、sz命令
除了通过FinalShell的下方窗体进行文件的传输以外,也可以通过rz、sz命令进行文件传输。
rz、sz命令需要安装
yum -y install lrzsz
使用方法:直接使用rz命令
rz
效果如下:
sz命令进行下载
语法: sz 要下载的文件
如下图:
13、压缩和解压
13.1、tar命令(复杂)
使用tar命令均可以进行压缩和解压缩的操作
语法:tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N
- -c,创建压缩文件,用于压缩模式
- -v,显示压缩、解压过程,用于查看进度
- -x,解压模式
- -f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
- -z,gzip模式,不使用-z就是普通的tarball格式
- -C,选择解压的目的地,用于解压模式
13.1.1、tar 命令压缩
例如:
- tar -cvf test.tar 1.txt 2.txt 3.txt
将1.txt 2.txt 3.txt 压缩到test.tar文件内
- tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
将1.txt 2.txt 3.txt 压缩到test.tar.gz文件内,使用gzip模式
注意: -z选项如果使用的话,一般处于选项位第一个 -f选项,必须在选项位最后一个
13.1.2、tar 解压
- tar -xvf test.tar
解压test.tar,将文件解压至当前目录
- tar -xvf test.tar -C /home/itheima
解压test.tar,将文件解压至指定目录(/home/itheima)
- tar -zxvf test.tar.gz -C /home/itheima
以Gzip模式解压test.tar.gz,将文件解压至指定目录(/home/itheima)
注意:
- -f选项,必须在选项组合体的最后一位
- -z选项,建议在开头位置
- -C选项单独使用,和解压所需的其它参数分开
13.2、zip和unzip命令(较简单)
13.2.1、zip命令压缩文件
可以使用zip命令,压缩文件为zip压缩包
zip [-r] 参数1 参数2 ... 参数N
- -r,被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-r效果一致
示例:
- zip test.zip a.txt b.txt c.txt
将a.txt b.txt c.txt 压缩到test.zip文件内
- zip -r test.zip test itheima a.txt
将test、itheima两个文件夹和a.txt文件,压缩到test.zip文件内
压缩前没有txt.zip文件
压缩txt.txt文件到txt.zip文件
13.2.2、unzip命令解压文件
使用unzip命令,可以方便的解压zip压缩包
unzip [-d] 参数
- -d,指定要解压去的位置,同tar的-C选项
- 参数,被解压的zip压缩包文件
unzip test.zip,将test.zip解压到当前目录
unzip test.zip -d /home/itheima,将test.zip解压到指定文件夹内(/home/itheima)
解压前没有txt.txt文件
解压txt.zip后有txt.txt文件