走近Linux系统

开机

windows开机会启动许多程序。它们在Windows叫做’服务" ( service ) , 在Linux就叫做"守护进程" ( daemon)
一般来说,用户的登录方式有三种:
 ●命令行登录 账号密码
 ●SSH登录(远程) 我们使用的是Xshell
 ●图形界面登录 本地的虚拟机
 最高权限账户为root,可以操作一切!

关机

在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
 关机指令为shutdown,这个指令不建议在服务器上操作,可以在本机上尝试。

sync #将数据由内存同步到硬盘中。
shutdown #关机指令,你可以man shutdown 来看一下 帮助文档。例如你可以运行如下命令关机:
shutdown -h 10 #这个命令告诉大家,计算机将在10分钟后关机
shutdown -h now#立马关机
shutdown -h 20:25 #系统会在今天20:25关机
shutdown -h +10 #十分钟后关机
shutdown -r now #系统立马重启
shutdown -r +10 #系统十分钟后重启
reboot #就是重启,等同于shutdown -r now
halt #关闭系统,等同于shutdown -h now和poweroff

最后总结:不管是重启还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中,执行命令之后没有返回消息(没有错误就代表操作成功)则表明运行成功

系统目录

1、一切皆文件
2、根目录/ ,所有的文件都挂载在这个节点下

ls / #查看当前下的目录

在这里插入图片描述

目录解释

/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。比如ls命令 /boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。不要动 /dev : dev是Device(设备)的缩写,
存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home :用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。administrator 可以在这个目录下及建立自己的目录。 /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。 不要动
/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。 /sbin:s就是Super
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。(后面可以把本地的的一些文件挂载在这个目录下)

/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

/tmp:这个目录是用来存放一些临时文件的。 用完即丢的文件可以放在这个目录下。比如安装包用完就删除 /usr/bin: 系统用户使用的应用程序。 /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。 /usr/src:
内核源代码默认的放置目录。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
/www:存放服务器网站相关的资源,环境,网站的项目(里面会安装一些环境) 环境基本配置:LNMP( Linux Nginx Mysql Php ) 或者LAMP(Linux Apache Mysql Php)
默认的网络配置文件ifcfg-eth0

ifconfig 查看网络的配置

ipconfig winows 网络配置

网络配置目录:

cd /etc/ sysconfig/network-scripts
ping *#用来查看网络是否连通
* ifconfig *#查看网络 和Windows的ipconfig是一样的*

常用的基本命令

windosw和linus通用的内容

参数合并 指令格式
在这里插入图片描述

在这里插入图片描述

路径: Linux根路径是/,Linux区分大小写windows不区分

  • 绝对路径:以/开头

  • 相对路径 :非/开头

    • 特殊的相对路径 :
 ..  上一级  
     . 当前这一级
     ~ 进入当前登录的用户目录

在这里插入图片描述

目录文件操作指令

ls(列出目录!)

在Linux中Is可能是最常常被使用的!

直接使用ls 就会列出当前路径下的所有文件
-a:#参数: all ,查看全部的文件,包括隐藏文件
-l:#参数列出所有的文件,包含文件的属性和权限,没有隐藏文件 
-R # 列出所有子目录下的文件

在这里插入图片描述

在这里插入图片描述

所有Linux可以组合使用!

ls -al 查看全部的文件包括隐藏文件的属性和权限

属主和属组具体后面解释
在这里插入图片描述

ll不是命令,是ls -l的别名 可以通过 alias 指令查看别名
在这里插入图片描述
tips : tab键可以做到自动补全

cd:切换目录 change dir

cd:#切换目录命令!
cd .. : #返回上一级目录
cd ~: #进入用户家目 回到当前的用户目录
cd -:返回最近访问目录
cd ./:#当前目录
pwd :#显示当前用户所在的目录

如果以root的身份进行登录,进入的目录就是root的家目录,
在这里插入图片描述

对一般用户,~表示/home/(用户名)
对于root用户,~表示/root

pwd :显示用户当前所在的目录

比如当前在usr目录下 如果以相对路径 进入home目录
cd …/home 如果以绝对路径就是 cd /home

mkdir 创建一个目录

mkdir test # 创建目录
mkdir -p test2/test3 # 用-p递归创建层级目录

如果目录存在,重复创建,会报错
在这里插入图片描述

rmdir 删除目录

rmdir test # 删除空的目录
rmdir -p test2/test3/test4 #递归删除文件

rmdir仅能删除空的目录,如果下面存在文件,需要先删除文件,递归删除多个目录-p参数即可

touch 创建文件

创建文件可以使用绝对路径,也可以使用相对路径,如果文件已经存在,那么就修改文件创建的时间。

touch text.tx

在这里插入图片描述

cp复制文件或者目录

cp [选项] 源文件或目录 目标文件或目录 #
要么把文件复制到目录下,要么把文件或者目录复制到目录下

-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在。不存在的话创建文件
-i 或 --interactive 覆盖文件之前先询问用
-r / -R 递归处理 这里大小写都是可以的


cp t.txt t1.txt  #将当前t.txt 复制 到t1.txt
# 如果文件重复就选择覆盖或者放弃
# y 代表覆盖  n 代表放弃

在这里插入图片描述

模糊匹配也支持复制操作 所以支持多个文件或者文件夹的复制
在这里插入图片描述

解决不能复制文件夹问题 cp -r test xqr 把home 下的test文件 复制到home下的xqr文件

rm 移除文件或者目录

-f #忽略不存在的文件,不会出现警告,强制删除!  即使文件属性为只读(即写保护),亦直接删除
-r #递归删除目录其下所有文件!
-i #互动,删除询问是否删除
rm -rf / # 系统中的所有文件都删除 删库跑路!!这个命令别用
rm -rf install.sh/#删除系统中的install.sh

rm test 的时候默认会询问是否删除
也可以使用 * 代表进行模糊匹配。 * 代表任意数量的任意字符

rm -rf * # 删除的时候需要看当前的路径是什么!如果当前路径是/ 那等同于 rm -rf /
rm - f   *.txt   #删除当前目录下的 txt的文件
rm - rf   a*   #删除以a开头的任意的文件或者文件夹啊、

mv 移动文件或者目录|重命名文件

mv [选项] 源文件或目录 目标文件或目录 注意不能把文件移动到文件夹下

-f #强制
-u #只替换已经更新过的文件
mv test xqr #移动文件
mv test test2 #重命名文件夹名

可以将移动和重命名的操作结合起来使用
在这里插入图片描述
可以同时移动目录和文件,也支持模糊匹配
在这里插入图片描述

man 查看帮助文档

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。: man [选项] 命令

man  + 指令的名字

g切换到整个文本的首部(vi 中是gg),shift+g (大写G)切换额文档的尾部
n切换的
:q 回车退出

文件内容操作指令

vi命令 查看文件

vi是linux上默认的文本编辑器
支持的模式

查看模式
进入编辑模式i(编辑的位置是在光标的位置)
进入编辑模式o(编辑的位置是光标的下一行新行插入)
上下行切换j /k 和上下键一样
搜索/搜索内容 回车后进入搜索
切换文档的首位部gg 首部 shift+g 文档尾部
删除光标所在行dd
:w写(修改内容)
:q退出
:wq修改并退出
:q!不修改并退出
编辑模式
回退到查看模式esc

如果输入vi 查看不存在的文件,就会创建,离开的时候如果保存,那么这个文件就可以正常保存了。

vim 提供高亮的文件查看

基本的指令格式和vi 是相同的用法。

cat 显示文件内容 打印输出

cat [选项] [ 文件名称 ]
功能: 查看目标文件的内容
常用选项:

-n 对输出的所有行编号
cat test.txt

在这里插入图片描述

less指令 查看文件内容

为什么要有和学习less指令

  • 上面的cat和vim指令都是加载出来所有的文件内容,但是less指令可以做到不用加载文件的所有内容,也可以进行查找的操作。
  • 公司的生产上,使用tomcat的时候,如果出现后台报错,没有类似IDEA的图形化界面可以排查,但是可以查看tomcat的日志内容,而如果日志内容很多,占用空间比较大,全部加载性能不好,所以不使用。

在这里插入图片描述

head指令 显示文件开头到指定行 打印内容

不指定指令的时候,默认打印十行
在这里插入图片描述
与cat的对比
在这里插入图片描述

tail 指令 显示从文件尾部开始往前指定的行数

-n 行数 显示的是最后的n行 也就是倒数的n行(从文件尾部 -n 到文件尾部)打印输出
在这里插入图片描述

和重定向结合使用

可以和漏斗结合进行理解 大开口的那一段接受数据 小开口的那一端输出

  1. 标准输入(System.in) <

  2. 标准输出重定向(System.out) >
    在这里插入图片描述

在这里插入图片描述
3. 标准错误输出 (System.err) 2 >

在这里插入图片描述

管道

把前面输入的内容作为一个输出,输出到后面的文件里面去。
类似数据库的分页操作的底层实现 limit offset,len
取 (x 到 y)行的内容

  • 可以先取出前y行 ( head -ny 文件名)
  • 然后再取后 ( tail -n y-x+1)行
  • 类似就可以扩展的取出第几行的数据
    在这里插入图片描述
    也可以和 > 操作结合起来
    在这里插入图片描述

在这里插入图片描述

date指令

可以使用 man指令查看帮助文档

man date 

直接输入

date

获取当前的时间
在这里插入图片描述

其他常用的指令

进程操作指令

根据端口号查找pid netstat-anp

展示所有的端口号
第一个命令是错的
在这里插入图片描述

根据前面的内容查找(grep)端口号
在这里插入图片描述
在这里插入图片描述
注:
window下根据端口号查找pid的指令是

netstat -ano | findstr 端口号

根据进程的名称查找pid ps -ef

但是如果不知道端口号,该怎么查找pid
可以通过程序的名字查找pid

ps -ef # 显示所有的进程名称和pid
ps aux

在这里插入图片描述

在这里插入图片描述

grep 进行搜索id

ps -ef | grep mysql
ps aux | grep mysql

在这里插入图片描述
和java的jps相似 只是jps 是显示所有java进程的名称和pid

杀死进程的指令 kill 、killall、pkill、xkill

这个指令面试被问到了
1.用kill来杀死某一个进程
kill的应用是和ps 或pgrep 命令结合在一起使用的;
kill 的用法:
kill [信号代码] 进程ID
注:信号代码能省略;我们常用的信号代码是 -9 ,表示强制终止;
找到对应的pid之后

 kil pid即可杀死进程

2.用killall杀死一类进程
killall 通过程式的名字,直接杀死所有进程
用法:killall 正在运行的程式名
killall 也和ps或pgrep 结合使用,比较方便;通过ps或pgrep 来查看哪些程式在运行;
举例:

pgrep -l  httpd
		1742 httpd
		1744 httpd
		23055 httpd
		23087 httpd
		10607 httpd
killall httpd

3. 用pkill踢出某个终端
pkill 和killall 应用方法差不多,也是直接杀死运行中的程式
对比killall
killall和pkill是相似的,不过如果给出的进程名不完整,killall会报错。pkill或者pgrep只要给出进程名的一部分就可以终止进程。
对比kill
kill 命令杀死指定进程 PID,需要配合 ps 使用,而 pkill 直接对进程对名字进行操作,更加方便。

4. xkill 是在桌面用的杀死图像界面的程式
比如当firefox 出现崩溃不能退出时,点鼠标就能杀死firefox

文件解压指令

使用 tar 解压命令

  • tar/tar.gz 安装包使用命令
tar xvf 文件名

使用 unzip 解压命令

unzip  + 文件名 # 比如 unzip apache-tomcat-8.5.47.zip

软件操作指令

yum安装 list/remove/install

yum 在线安装:远程有一个软件包的安装仓库,发起网络请求获取软件包,直接安装。

yum list | grep [软件包关键字] # 注意, 最好要加上 grep, 否则罗列的内容会非常多, 导致机器很卡.

安装软件包(需要管理员权限)

yum install [软件包名字]
yum install -y [软件包名字] # 不询问直接安装

卸载软件包

yum remove [软件包名字]

搜索本机中已经通过yum安装的软件

yum list installed |grep 软件名

rpm安装 -ivh/-qa/-e/:

已经有一个本地的rpm文件,(rpm文件是Linux 上的可安装文件,类似windows上exe文件

rpm -ivh +软件文件的路径

搜索在本机中已经通过rpm安装的软件

rpm -qa | grep 软件名 

卸载

rpm -e 软件名

注意这里的软件名字,要先通过rpm -qa 查询有哪些软件名字,卸载的名字要和软件名字一致。

环境变量配置

全局的环境配置变量 vi etc/profile

vi /etc/profile# 或者下面的命令
vim /etc/profile

修改后刷新 source/etc/profile

对etc/profile操作完成之后按esc 从编辑模式进入查看模式,输入:wq 保存退出
之后进行刷新

source /etc/profile

系统统计 top指令

可以进行系统统计的指令
常用的下面的四个必须知道
在这里插入图片描述

磁盘统计df

命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。

在这里插入图片描述

用户

Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$

  • 超级用户
    在这里插入图片描述
  • 普通用户
    在这里插入图片描述

用户账号的管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录ShelI等资源。
 理解一下本质: Linux中一切皆文件,这里的添加用户说白了就是往某-个文件中写入用户的信息了!
而这个文件就是用户账户文件 /etc/passwd

useradd 命令 添加用户


useradd -选项 用户名
-m:自动创建这个用户的主目录/home/cqh
-G:给用户分配组

passwd用户 给用户配置密码

在这里插入图片描述

userdel 删除用户

userdel -r 123 #删除用户的时候把它的目录也删除掉

切换用户 su

su [用户名]
功能:切换用户。 例如,要从root用户切换到普通用户user,则使用 su user。
要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。

权限

文件类型和访问权限

  • 文件类型
    d:文件夹
    -:普通文件
    l:软链接(类似Windows的快捷方式

  • 基本权限
    i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
    ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
    iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
    iv.“-” 表示不具有该项权限

对不具有权限的文件操作
演示用户123 对只读文件的操作
在这里插入图片描述

在这里插入图片描述

chomd 修改权限

属主 属组(用户组)

访问一个文件的人可能分成三种类别.
文件和文件目录的所有者:u—User
文件和文件目录的所有者所在的组的用户:g—Group
其它用户:o—Others

可以通过 ll查看

比如:-rw-r–r-- 1 root root 0 Jan 7 21:29 testfile
表示testfile文件的属主有可读可写,属组可读,其他人可读。
testfile的属主是root,属组是root。

通过以下这个指令也很重要!

cat /etc/passwd

在这里插入图片描述

在这里插入图片描述
Linux文件属性有两种设置方法,一种是数字(常用的是数字), 一种是符号。

设置权限方式1

u:拥有者 user
g:拥有者同组用 group
o:其它用户 other
a:所有用户 all
和以下的符号搭配使用

  • +:向权限范围增加权限代号所表示的权限
    -:向权限范围取消权限代号所表示的权限
    =:向权限范围赋予权限代号所表示的权限

赋予权限
只用将前面的

# chmod u+w /home/abc.txt
# chmod o-x /home/abc.txt
# chmod a=x /home/abc.txt

在这里插入图片描述

取消权限
在这里插入图片描述

设置权限方式二

使用数字的方式

读 对应数字 4
写 对应数字 2
可执行 对应数字 1

在这里插入图片描述

chown 修改拥有者

chown 用户 文件/文件夹

在这里插入图片描述

chgrp 修改用户组

在这里插入图片描述

硬链接和软链接

Linux链接分为两种:硬链接、软链接(了解即可)
硬链接:A—B,假设B是A的硬链接,那么他们两个指向了同一个文件!允许一个文件拥有多个路径,用户可以通过这种机制硬链接到一个重要文件上,防止误删
软链接:类似Windows下的快捷方式,删除源文件,快捷方式也就访问不
操作步骤:
创建链接

 ln f1 f2! # 创建硬链接 f2
 ln -s f1 f3  # 创建一个软连接(符号链接)f3

touch命令创建文件!
echo输入字符串,也可以输入到文件

[root@iZ2zefgqs5qgnl9r5se6xgZ etc]# cd /home
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
test  xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# touch f1   # 创建一个f1文件
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f1  test  xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ln f1 f2  # 创建一个硬链接f2
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f1  f2  test  xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ln -s f1 f3  # 创建一个软连接(符号链接)f3
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f1  f2  f3  test  xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ll
total 8
-rw-r--r-- 2 root root    0 Jan 29 17:04 f1
-rw-r--r-- 2 root root    0 Jan 29 17:04 f2
lrwxrwxrwx 1 root root    2 Jan 29 17:05 f3 -> f1
drwxr-xr-x 2 root root 4096 Jan 29 16:14 test
drwxr-xr-x 4 root root 4096 Jan 29 15:55 xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# echo "i love you" >>f1  # 给f1中写入字符串
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f1  f2  f3  test  xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ll
total 16
-rw-r--r-- 2 root root   11 Jan 29 17:07 f1
-rw-r--r-- 2 root root   11 Jan 29 17:07 f2
lrwxrwxrwx 1 root root    2 Jan 29 17:05 f3 -> f1
drwxr-xr-x 2 root root 4096 Jan 29 16:14 test
drwxr-xr-x 4 root root 4096 Jan 29 15:55 xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f1  # 查看f1
i love you
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f2  # 查看f2
i love you
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f3 # 查看f3
i love you


删除操作执行后,硬链接和软连接不一样了
硬链接还在,软连接不在
(硬链接相当于是深拷贝,软连接相当于是浅拷贝可以这么理解)

[root@iZ2zefgqs5qgnl9r5se6xgZ home]# rm -rf f1  # 删除f1
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f2  f3  test  xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f1
cat: f1: No such file or directory
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f2 # f2 硬链接还在
i love you
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f3 #f3 软连接不在
cat: f3: No such file or directory
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# 
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# rm -rf f1  # 删除f1
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# ls
f2  f3  test  xqr
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f1
cat: f1: No such file or directory
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f2 # f2 硬链接还在
i love you
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# cat f3 #f3 软连接不在
cat: f3: No such file or directory
[root@iZ2zefgqs5qgnl9r5se6xgZ home]# 

在这里插入图片描述

Logo

更多推荐