一、Linux文件目录结构
使用Linux路径:/usr/tmp/hello.txt 来访问每一个文件
二、Linux命令通用格式
command [-options] [parameter]
command:命令本身
-options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等
1、ls命令
展示指定目录下的所有内容(默认展示工作目录下的内容)
语法细节: ls [-a -l -h] [linux路径]
其中可选参数:
-a:all的意思,即列出全部文件(包含隐藏的文件/文件夹)(文件名前带有“.”为隐藏文件夹)只有通过-a才能看到隐藏文件夹
-l:以列表(竖向排列)的形式展示内容,并展示更多信息(如权限、用户、大小、创建的时间)。
-h:表示以易于阅读的形式列出文件的大小,如:K、M、G。必须搭配-l一起使用。ls -lh
还可以组合使用,比如:ls -l -a = ls -la = ls -al
2、目录切换相关命令(cd\pwd)
cd(Change Directory):切换工作目录
语法细节:cd [Linux路径]
cd命令无需选项,只有参数,表示要切换到哪个目录下。如:cd /
cd命令直接执行不加参数,表示回到用户的HOME目录。如:cd
pwd(Print Work Directory):查看当前工作目录
语法细节:pwd
pwd命令无选项,无参数、直接输入pwd即可。
相对路径与绝对路径的概念:
绝对路径:以根目录作为起点,描述路径的方式,路径以/开头
相对路径:以当前目录做起点,描述路径的方式,路径不需要/开头
特殊路径符:
. 表示当前目录,如:cd ./Desktop
.. 表示上一级目录,比如:cd ../..
~表示用户的HOME目录,比如cd ~ 或 cd ~/Desktop
3、创建新的文件夹mkdir(Make Directory)
语法细节:mkdir [-p] Linux路径
·参数必填,表示linux路径,即要创建的文件夹的路径,相对路径或绝对路径均可
·-p 选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录。如:mkdir -p aa/bb/cc.txt
4、touch创建文件,cat\more查看文件内容
touch语法细节:touch linux路径
·touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用
cat语法细节:cat linux路径
·cat同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符均可。
more语法细节:more linux路径
·more同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符
more与cat不同的是,cat是直接将内容全部显示出来,more支持翻页,如果文件内容过多,可以一页页的展示。按【空格】翻页,【q】退出查看
5、复制、移动、删除文件夹(cp、mv、rm)
cp(copy)命令复制文件夹,语法细节:cp [-r] 参数1 参数2
·-r选项,可选,用于复制文件夹
·参数1,Linux路径,表示被复制的文件或文件夹
·参数2,Linux路径,表示要复制去的地方
mv(move)移动文件或文件夹,语法细节:mv 参数1 参数2
·参数1,linux路径,表示被移动的文件或文件夹
·参数2,linux路径,表示要移动去的地方,如果目标不存在,则进行改名确保目标存在
rm(remove)可用于删除文件、文件夹,语法细节:rm [-r -f] 参数1 参数2......参数n
·同cp命令一样,-r选项用于删除文件夹
·-f表示force ,强制删除(普通用户不会弹出提示确认信息,root用户会弹出)
·参数1 参数2......参数n表示要删除的文件或文件夹,空格隔开
rm命令支持通配符*,用来做模糊匹配,如:test*,表示任何以test开头的内容
(删库:rm -rf 路径)
6、witch-find命令
witch查找命令的程序文件,语法细节:witch 要查找的命令(cd、rm等等)
·无需选项,只需要参数表示查找哪个命令
find命令用于查找指定的文件,语法细节:
按文件名查找: find 起始路径 -name “被查找文件名” 支持通配符
按文件大小查找: find 起始路径 -size +|-n[KMG]
7、grep-wc-管道符(|)
grep命令从文件中通过关键字过滤文件行,语法细节:grep [-n] 关键字 文件路径
选项-n:可选,表示在结果中显示匹配的行号
参数,关键字:必填,表示过滤的关键字,建议使用“将关键字”包围起来。
参数,文件路径:必填,表示要过滤内容的文件路径,可作为管道符的输入。
wc命令统计文件的行数、单词数量、字节数、字符数等,语法细节:wc [-c -m -l -w] 文件路径
不带选项默认统计:行数、单词数、字节数。
选项-c:字节数,-m:字符数,-l行数、-w单词数
参数,被统计的文件路径,可作为管道符的输入
管道符|:将管道符左边命令的结果作为右边命令的输入
8、echo-tail-重定向符
echo命令在命令行内输出指定内容,语法细节:echo 输出的内容
无需选项,只有一个参数表示要输出的内容,复杂内容可以用“ ”包围起来。
反引号符 `
被`包围的内容,会被作为命令执行,而非普通字符
重定向符
·>,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
·>>,将左侧命令的结果,追加写入到符号右侧指定的文件中
tail命令查看文件尾部的内容,并可以持续追踪,语法细节:tail [-f -num] linux路径
选项-f:持续跟踪查看; 选项-num(如-15):运行命令时指定查看多少行,默认10行
9、vi\vim编辑器
命令模式:命令模式下所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能,此模式下,不能自由进行文本编辑。
i | 在当前光标位置进入输入模式 |
a | 在当前光标位置之后进入输入模式 |
I | 在当前行的开头进入输入模式 |
A | 在当前行的结尾进入输入模式 |
o | 在当前光标的下一行进入输入模式 |
O | 在当前光标的上一行进入输入模式 |
esc | 任何情况下输入esc都能回到命令模式 |
键盘上、键盘k | 向上移动光标 |
键盘下、键盘j | 向下移动光标 |
键盘左、键盘h | 向 左移动光标 |
键盘右、键盘l | 向后移动光标 |
0 | 移动光标到当前行的开头 |
$ | 移动光标到当前行的结尾 |
/ | 进入搜索模式 |
n | 向下继续搜索 |
N | 向上继续搜索 |
dd | 删除光标所在行的内容 |
ndd | n是数字,表示删除当前光标向下n行 |
yy | 复制当前行 |
nyy | n是数字,复制当前行和下面的n行 |
p | 粘贴复制的内容 |
u | 撤销修改 |
ctrl+r | 反向撤销修改 |
gg | 跳到首行 |
G | 跳到行尾 |
dG | 从当前行开始,向下全部删除 |
dgg | 从当前行开始,向上全部删除 |
d$ | 从当前光标开始,删除到本行结尾 |
d0 | 从当前光标开始,删除到本行开头 |
输入模式:也就是编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑。
底线命令模式:以“:”开始,通常用于文件的保存、退出。
:wq | 保存并退出 |
:q | 仅退出 |
:q! | 强制退出 |
:w | 仅保存 |
:set nu | 显示行号 |
:set paste | 设置粘贴模式 |
三、linux的root用户
su命令可以切换用户,详细语法:su [-] [用户名]
[-]表示切换后加载环境变量,建议带上
用户名可以省略,默认切换到root用户
sudo命令可以让一条普通命令带有root权限,语法细节:sudo 其他命令
1、用户和用户组
linux可以支持多用户、多用户组、用户加入多个组
linux权限管控的单元是用户级别和用户组级别
用户用户组管理相关命令:
groupadd添加组;groupdel删除组
useradd添加用户;userdel删除用户
usermod修改用户组;id命令查看用户信息
getent passwd 查看系统全部用户信息
getent group 查看系统全部组信息
2、chmod命令
可以使用chmod命令,修改文件、文件夹的权限信息。
注意,只有文件、文件夹的所属用户或root用户可以修改
语法细节:chmod [-R] 权限 文件或文件夹
·选项:-R,对文件夹内的全部内容应用相同的操作
示例:chmod u=rwx,g=rx,o=x hello.txt 将文件权限修改为:rwxr-x--x
·其中:u表示user所属用户权限,g表示group组权限,o表示other其他用户权限
权限的数字序号:权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其他用户权限。数字的细节如下:r记为4,w记为2,x记为1,可以有:
·0:无任何权限,即 ---
·1:仅有x权限,即--x
·2:仅有w权限,即-w-
·3:有w和x权限,即-wx
·4:仅有r权限,即r--
·5:有r和x权限,即r-x
·6:有r和w权限,即rw-
·7·:有全部权限,即rwx
3、chown命令
使用chown命令可以修改文件、文件夹的所属用户和用户组
普通用户无法修改所属为其他用户或组,所以此命令只适用于root用户执行。
语法细节:chown [-R] [用户][:][用户组] 文件或文件夹
·选项-R,同chmod,表示对文件夹内的全部内容应用相同的规则
·选项,用户,修改所属用户
·选项,用户组,修改所属用户组
· “:”符号用于分隔用户和用户组
示例:chown root:user hello.txt,将hello.txt所属用户修改为root,用户组修改为user
四、linux使用知识
1、各类小技巧快捷键
ctrl+c 强制停止
·linux某些程序的运行,如果想要强制停止它,可以使用快捷键ctrl+c
·命令输入错误,也可以通过快捷键ctrl+c,退出当前输入,重新输入
ctrl+d 退出或登出
·可以通过快捷键:ctrl+d,退出账户的登录
·或者退出某些特定程序的专属页面(如python编辑) ps:不能用于退出vi/vim
history 历史命令搜索
·可以通过:!命令前缀,自动执行上一次匹配前缀的命令,如!py执行之前的python命令(找到第一个匹配命令)
·可以通过快捷键:ctrl+r,输入内容去匹配历史命令,如果搜索到的内容是你需要的,那么:1、回车键可以直接执行。2、键盘左右键,可以得到此命令(不执行)。
光标移动快捷键
·ctrl+a,跳到命令开头
·ctrl+e,跳到命令结尾
·ctrl+键盘左键,向左跳一个单词
·ctrl+键盘右键,向右跳一个单词
清屏
·通过快捷键ctrl+l,可以清空终端内容
·或通过命令clear得到同样的效果
2、软件安装
yum命令(centos):
RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题
语法细节:yum [-y] [install | remove | search] 软件名称
·选项:-y,自动确认,无需手动确认安装或卸载的过程
·install:安装
·remove:卸载
·search:搜索
yum命令需要root权限哦,可以su切换到root,或使用sudo提权
yum命令需要联网
apt命令(ubuntu):
ubuntu使用apt管理器
语法细节:apt [-y] [install | remove | search] 软件名称,用法和yum一致,同样需要root权限
·apt install wget,安装wget
·apt remove wget,移除wget
·apt search ,搜索wget
3、systemctl命令
linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动,停止,开机自启
能够被systemctl管理的软件,一般也称之为:服务
语法细节:systemctl start | stop | status | enable | disable 服务名
start启动,stop关闭,status查看状态,enable开启开机自启,disable关闭开机自启
系统的内置服务比较多,比如:
·NetworkManager,主网络服务
·network,副网络服务
·firewalld,防火墙服务
·sshd,ssh服务
4、软链接
ln命令创建软链接,在系统中创建软链接,可以将文件、文件夹链接到其他位置。
语法细节:ln -s 参数1 参数2
·-s选项,创建软链接
·参数1:被链接的文件夹或文件
·参数2:要链接去的地方
实例:
·ln -s /etc/yum.conf ~/yum.conf
·ln -s /etc/yum ~yum
5、日期和时区
date命令:
可以在命令行中查看系统的时间
语法细节:date [-d] [+格式化字符串]
·-d 按照给定的字符串显示日期,一般用于日期计算
如:date -d “ +1 day” +%Y%m%d #显示后一天的日期
其中支持的时间标记为:
year年,month月,day天,hour小时,minute分钟,second秒
·格式化字符串:通过特定的字符串标记,来控制显示的日期格式
·%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到现在的秒数
修改Linux时区:
如用root权限,执行如下命令,修改时区为东八区时区
rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可。
ntp程序自动时间校准
安装ntp:yum -y install ntp
启动并设置开机自启:
·systemctl start ntpd
·systemctl enable ntpd
当ntp启动后会定期帮助我们联网校准系统的时间
·也可以手动校准(需root权限):ntpdate -u ntp.aliyun.com
6、IP地址和主机名
IP地址:是联网计算机的网络地址,用于在网络中进行定位
格式是:a.b.c.d,其中abcd是0~255的数字
特殊IP有:127.0.0.1,本地回环IP,表示本机
0.0.0.0:也可以表示本机,也可以在一些白名单中表示任意IP
主机名:就是主机的名称,用于标识一个计算机
域名解析:可以通过主机名找到对应计算机的IP地址,这就是主机名映射(域名解析)
先通过系统本地的记录去查找,如果找不到就联网去公开DNS服务器查找
7、配置LINUX固定IP地址
8、网络请求和下载
ping命令 :可以通过ping命令,检查指定的网络服务器是否可连通状态。
语法细节:ping [-c num] ip或主机名
·选项:-c,检查的次数,不使用-c选项,将无限次数持续检查
·参数:ip或主机名,被检查的服务器的ip地址或主机名地址
wget命令:非交互式的文件下载器,可以在命令行内下载网络文件。
语法细节:wget [-b] url
·选项:-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件。
·参数:url,下载链接
curl命令:可以发送http网络请求,可用于:下载文件、获取信息等。
语法细节:curl [-O] url
·选项:-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件。
·参数:url,要发起请求的网络地址
9、端口
端口是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类。
·物理端口:又可称之为接口,是可见的端口,如USB端口,RJ45网口,HDMI端口等。
·虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的。
Linux中可以支持65535个端口,这6万多个端口分为3类使用:
·公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口。非特殊需要,不要占用这个端口范围。
·注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务
·动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。
查看端口占用情况:
·使用nmap命令,安装nmap:yum -y install nmap \ apt-get install nmap
语法:nmap 被查看的ip地址
·使用netstat命令,查看制定端口的占用情况
语法:netstat -anp | grep 端口号
10、进程管理
进程:程序运行在操作系统中,是被操作系统所管理的。为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程。
并为每一个进程都分配有一个独有的:进程ID(进程号)。
查看进程:可以通过ps命令查看Linux系统中的进程信息。
语法:ps [-e -f]
选项:-e,显示出全部的进程。
选项:-f,以完全格式化的形式展示信息(展示全部的信息)
一般来说,固定的用法就是:ps -ef 列出全部进程的全部信息。
关闭进程:通过kill命令关闭进程。
语法:kill [-9] 进程ID
选项:-9,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。
11、主机状态监控
查看系统资源占用:可以通过top命令查看CPU、内存使用情况,类似Windows的任务管理器。默认每5秒刷新一次。
语法:直接输入top即可,按q或ctrl+c退出。
top命令也支持选项:
·-p:只现实某个进程
·-d:设置刷新时间,默认5s
·-c:显示产生进程的完整命令,默认是进程名
·-n:指定刷新次数,比如top -n 3,刷新输出3次后退出
·-b:以非交互全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指定文件,比如top -b -n 3 > /tmp/top.tmp
·-i:不显示任何闲置(idle)或无用的(zombie)进程
·-u:查找特定用户启动的进程
top交互式选项:
·h键:显示帮助画面
·c键:显示产生进程的完整命令
·f键:可以选择需要展示的项目
·M键:根据驻留内存大小排序
·P键:根据CPU使用百分比大小进行排序
·T键:根据时间/累计时间进行排序
·E键:切换顶部内存显示单位
·e键:切换进程内存显示单位
·l键:切换显示平均负载和启动时间信息
·i键:不显示闲置或无用的进程
·t键:切换显示cpu状态信息
·m键:切换显示内存信息
磁盘信息监控:使用df命令,可以查看磁盘的使用情况
语法:df [-h]
选项:-h,以更加人性化的单位显示
可以使用iostat查看CPU、磁盘的相关信息
语法:iostat [-x] [num1] [num2]
·选项:-x,显示更多信息
·num1:数字,刷新间隔;num2:数字,刷新几次。
网络状态监控:可以使用sar命令查看网络的相关统计。
·语法:sar -n DEV num1 num2
·选项:-n,查看网络,DEV表示查看网络接口
num1:刷新间隔(不填查看一次就结束);num2:查看次数(不填无限次数)
12、环境变量
环境变量:是操作系统(Windows,Linux,Mac)在运行的时候,记录的一些关键信息,用以辅助系统运行。
在Linux系统中执行:env命令即可查看当前系统中记录的环境变量。
环境变量是一种KeyValue型结构,即名称和值。
可以通过env命令查看当前系统配置的环境变量信息。
通过$符号,可以取出环境变量的值。
PATH:环境变量PATH会记录一组目录,目录之间隔用“:”隔开。这里记录的是命令的搜索路径,当执行命令会从记录中记录的目录中挨个搜索要执行的命令并执行。
可以通过修改这个项目的值,加入自定义的命令搜索路径。
如export PATH=$PATH:自定义路径。
修改环境变量:
·临时修改:export 名称=值
·永久生效:
·针对用户:~/.bashrc文件中配置(home目录下)
·针对全部用户:/etc/profile文件中配置
·配置完成,可以通过source命令立刻生效
13、Linux文件的上传和下载
上传、下载:可以通过finalshall工具,方便的和虚拟机进行数据交换。
rz,sz命令:进行文件传输
·rz命令,进行上传,语法:直接输入rz即可。
·sz命令,进行下载,语法:sz 要下载的文件
文件会自动下载到桌面的:fsdownload文件夹中。
14、压缩和解压
压缩格式:如zip,7zip,rar,tar,gzip。
在linux中主要使用:tar,gzip,zip三种压缩格式完成文件的压缩解压操作。
tar命令:Linux和Mac系统常用的有2种压缩格式,后缀名分别是:
·.tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装。
·.gz,也常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件夹内,可以极大的减少压缩后的体积。
针对这两种命令格式,使用tar命令均可以进行压缩和解压缩操作。
语法:tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N
·-c:创建压缩文件,用于压缩模式
·-v:显示压缩、解压过程,用于查看进度
·-x:解压模式
·-f:要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个。
·-z:gzip模式,不适用-z就是普通的tarball格式
·-C:选择解压的目的地,用于解压模式
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选项必须在选项位最后一个。
tar解压,常用的解压组合有:
·tar -xvf test.tar
解压test.tar,将文件解压至当前目录。
·tar -xvf test.tar -C /home/xx
解压test.tar ,将文件解压至指定目录(/home/xx)
·tar -zxvf test.tar.gz -C /home/xx
以gzip模式解压test.tar.gz,将文件解压至指定目录(/home/xx)
注意:-f选项必须在选项组合体的最后一位
-z选项建议在开头位置
-C选项单独使用,和解压所需的其他参数分开
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 xx a.txt
将test、xx两个文件夹和a.txt文件,压缩到test.zip文件内
unzip命令解压文件:使用unzip命令,可以方便的解压zip压缩包
语法:unzip [-d] 参数
·-d:指定要解压去的位置,同tar的-C选项
·参数:被解压的zip压缩包文件
示例:
·unzip test.zip 将test.zip解压到当前目录
·unzip test.zip -d /home/xx,将test.zip解压到指定文件夹内(/home/xx)