学习笔记-Liunx

2022/2/1 23:40:02

本文主要是介绍学习笔记-Liunx,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

简介

Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds )在赫尔辛基大学上学时出于个人爱好而编写的。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX(可移植操作系统接口)和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。

Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

image

开机

开机会启动许多程序。它们在Windows叫做"服务" ( service ),在Linux就叫做""守护进程" ( daemon ) 。

登陆方式:

  • 命令行登录
  • ssh登录
  • 图形界面登录

最高权限账户为root,可以操作一切

关机

sync  #将数据同步到硬盘中,防止关机后数据丢失

shutdown

shutdown -h  10 # 十分钟后关机
shutdown -h  now # 立刻关机
shutdown -h  20:56 # 指定时间关机

reboot # 重启

halt # 关闭系统  等价于 shutdown -h  now   、  poweroff

系统目录结构

1、一切皆文件

2、根目录 “ / ” ,所有的文件都挂载在这个节点下

以下是对这些目录的解释:

  • /bin
    bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

  • /boot:勿动
    这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • /dev :
    dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

  • /etc:
    etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  • /home
    用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的

  • /lib:(勿动
    lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

  • /lost+found
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • /media
    linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

  • /mnt
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

  • /opt
    opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • /proc
    proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    
  • /root
    该目录为系统管理员,也称作超级权限者的用户主目录。

  • /sbin
    s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

  • /selinux
    这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

  • /srv
    该目录存放一些服务启动之后需要提取的数据。

  • /sys

    这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

    sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

    该文件系统是内核设备树的一个直观反映。

    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

  • /tmp
    tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。

  • /usr
    usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

  • /usr/bin:
    系统用户使用的应用程序。

  • /usr/sbin:
    超级用户使用的比较高级的管理程序和系统守护程序。

  • /usr/src:
    内核源代码默认的放置目录。

  • /var
    var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

  • /run
    是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

  • /www : 存放服务器网站相关资源,环境,项目(宝塔创建的?)

命令

快捷:

Tab 快速补充当前页存在的目录、文件的名称

Ctrl+C 强制退出当前命令

Ctrl+Z 撤回命令

clear # 清除
tar -zxvf xxx.tar  # j

目录管理

mkdir 目录名  # 创建目录
mkdir -p test1/test2/test3  # 创建层级目录

rmdir xx # 移除目录(只能是空的文件夹) 
rmdir -p test1/test2  #  强制删除

cp  文件   目标地址   # 复制拷贝  重复会询问覆盖/放弃

rm 移除文件或目录

rm -f   #  忽略不存在的文件,不出现警告,强制删除
rm -r	#	递归删除目录
rm -i	#	互动询问是否删除

mv 移动文件/重命名

 -f #强制
 -u # 只替换已经更新过的文件
mv 文件  地址  # 移动
mv 文件名1  文件名2  #重命名

切换 cd

绝对路劲以 / 开头,相对路径 ../路径

在A,去D:

cd D

cd ./D

cd /A/D

cd ../A/D
image

cd     # 切换目录命名
cd ..  # 返回上一级 
./     # 当前目录
cd ~   # 回到当前用户目录

列出目录: ls

ls
ls -a		#查看全部文件,包括隐藏文件
ls -l		#列出所有文件,包括文件属性和权限,没有隐藏文件
ls -al		# 组合

显示当前路径 pwd

pwd

基本属性

image

第一个字符:

  • 【d】 :目录
  • 【-】 : 文件
  • 【l】 : 链接文档
  • 【b】 : 装置文件里面的可供储存的接口设备(可随机存取装置)
  • 【c】 : 装置文件里面的可供储存的接口设备(可随机存取装置)

接下来以3个字符为一组,均为【rwx】组合:【r】可读,【w】可写,【x】可执行,没有会以【-】代替

image

  • 属主:谁创建的

  • 属组:归于那个用户组

修改基本属性

1、chgrp:更改文件属组

chgrp -R 属组名  文件名

-R∶递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

2、chown: 更改文件属主,也可同时更改属组

chown -R 属主名 文件名
chown -R 属主名 : 属组名 文件名

3、chmod :更改文件9个属性

chmod -R xyz 文件或目录
r:4		w:2		x:1
可读可写不可执行: rw- 	6
可读可写可执行:	 rwx     7

chmod 777 文件名

文件内容查看

  • cat :由第一行开始显示文件内容

  • tac : 从最后一行开始显示

    image

  • nl :显示时顺道输出行号

    image

  • more :一页页显示文件内容 空格翻页,回车向下看一行、:f 显示当前行号

    image

  • less :于more相似,可以往前翻页 空格翻页、上下键翻页,回车下一行、【q】结束、【/】 向下查找、【?】向上查找、【n/N】结合查找上下跳转

  • head :只看头几行

    image

  • tail : 只看尾巴几行

ifconfig:查看网络配置

链接

硬链接:类似拷贝,源文件删除,硬链接还能访问,可用于重要文件的安全保护

软连接:类似Window快捷方式,

创链接:

ln 源文件  链接  # 硬链接
ln -s 源文件  链接  # 软链接

touch 创建文件命令

echo 向文件中输入字符串

[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls
redis  www
[root@iZf8z25xnm9ajwj0x1efp9Z home]# touch test1   
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls
redis  test1  www
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ln test1 t2
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls
redis  t2  test1  www
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ln -s test1 t3
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls
redis  t2  t3  test1  www
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls -l
total 8
drwx------ 2 redis redis 4096 Jan 27 17:22 redis
-rw-r--r-- 2 root  root     0 Jan 29 13:58 t2
lrwxrwxrwx 1 root  root     5 Jan 29 13:59 t3 -> test1
-rw-r--r-- 2 root  root     0 Jan 29 13:58 test1
drwx------ 3 www   www   4096 Jan 27 17:21 www
[root@iZf8z25xnm9ajwj0x1efp9Z home]# echo "hello world" >>test1
[root@iZf8z25xnm9ajwj0x1efp9Z home]# cat test1 
hello world
[root@iZf8z25xnm9ajwj0x1efp9Z home]# cat t2
hello world
[root@iZf8z25xnm9ajwj0x1efp9Z home]# cat t3
hello world
[root@iZf8z25xnm9ajwj0x1efp9Z home]# 

删除测试:

[root@iZf8z25xnm9ajwj0x1efp9Z home]# rm -rf test1
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls
redis  t2  t3  www
[root@iZf8z25xnm9ajwj0x1efp9Z home]# cat t2
hello world
[root@iZf8z25xnm9ajwj0x1efp9Z home]# cat t3
cat: t3: No such file or directory
[root@iZf8z25xnm9ajwj0x1efp9Z home]# 

Vim 编辑器

基本上viwvim共分为三种模式,分别是命令模式(Command mode),输入模式(lnsert mode )和底线命令模式(Lastline mode )。这三种模式的作用分别是∶

vim 文件 # 如果存在则打开编辑,如果不存在则新建

命令模式

输入 vim test.txt 刚进入时处于命令模式:

  • 输入【i、a、o】进入输入模式
  • 输入【x】删除光标所处的字符
  • 输入【:】切换到底线命令模式

image

输入模式

  • 【esc】退出输入模式,切换到命令模式
  • 正常输入

image

底线命令模式

  • 【q】退出程序
  • 【w】保存
  • 【wq】
  • 【set nu】 显示行号

image

命令模式-光标移动

h 或 向左箭头键(←) 光标向左移动一个字符
j 或 向下箭头键(↓) 光标向下移动一个字符
k 或 向上箭头键(↑) 光标向上移动一个字符
l 或 向右箭头键(→) 光标向右移动一个字符
[Ctrl] + [f] 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b] 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
[Ctrl] + [d] 屏幕『向下』移动半页
[Ctrl] + [u] 屏幕『向上』移动半页
+ 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行
n< space> 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。
0 或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End] 移动到这一行的最后面字符处(常用)
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中央那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
G 移动到这个档案的最后一行(常用)
nG n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
gg 移动到这个档案的第一行,相当于 1G 啊!(常用)
n< Enter> n 为数字。光标向下移动 n 行(常用)

命令模式-搜索

搜索替换
/word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用)
?word 向光标之上寻找一个字符串名称为 word 的字符串。
n 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
N 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。

命令模式-复制贴贴

删除、复制与粘贴
x, X 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
nx n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
dd 删除游标所在的那一整行(常用)
ndd n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
d1G 删除光标所在到第一行的所有数据
dG 删除光标所在到最后一行的所有数据
d$ 删除游标所在处,到该行的最后一个字符
d0 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
yy 复制游标所在的那一行(常用)
nyy n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
y1G 复制游标所在行到第一行的所有数据
yG 复制游标所在行到最后一行的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
p, P p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?那么原本的第 20 行会被推到变成 30 行。(常用)
J 将光标所在行与下一行的数据结合成同一行
c 重复删除多个数据,例如向下删除 10 行,[ 10cj ]
u 复原前一个动作。(常用)
[Ctrl]+r 重做上一个动作。(常用)

账户管理

useradd

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

userdel

userdel -选项 用户名
  • -r 删除用户时将他的目录页也一并删除

usermod 修改用户

usermod  -d   用户组(/home/www) 用户名  # 修改用户的所属组

su 切换用户

[root@iZf8z25xnm9ajwj0x1efp9Z home]# useradd -m yzxtest
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls
redis  test.txt  www  yzxtest
[root@iZf8z25xnm9ajwj0x1efp9Z home]# su yzxtest
[yzxtest@iZf8z25xnm9ajwj0x1efp9Z home]$ 
[yzxtest@hostname0yang root]$ exit
exit
[root@hostname0yang ~]#

普通用户是 $ 符号,# 是超级用户、

passwd 密码配置

注意Liunx输入密码时不会显示

root用户:

[root@hostname0yang home]# passwd yzxtest  # 修改 yzxtest 用户的面码
Changing password for user yzxtest.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@hostname0yang home]# 

普通用户:

[yzxtest@hostname0yang ~]$ passwd   # 修改密码
Changing password for user yzxtest.
Changing password for yzxtest.
(current) UNIX password: # 这里输入现在的秘密
New password: #输入新密码
BAD PASSWORD: The password is the same as the old one  # 新密码与原密码一样。驳回
New password: #输入新密码
Retype new password: #再次输入新密码 
passwd: all authentication tokens updated successfully.  # 成功
[yzxtest@hostname0yang ~]$

锁定账户

锁定之后账户被冻结,不能登入系统

passwd -l 用户名
passwd -d 用户名  # 冻结的同时清除密码

拓展:文件 /etc/passwd

用户名:口令(密码,不可见):用户标识号:组标识号:注释性描述:主目录:登录shell

登录口令:真正的密码加密后放在 /etc/shadow 文件中,保证安全性

image

修改主机名称

hostname 名称  # 重启后即可更新

用户组管理

​ 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(开发、测试、运维、root)。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

​ 用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

创建一个用户组

[root@hostname0yang home]# groupadd group1  # 创建
[root@hostname0yang home]# cat /etc/group	#查看
root:x:0:
bin:x:1:
daemon:x:2:
... #这里省略
yzxtest:x:1003:
group1:x:1004:
[root@hostname0yang home]# 

groupadd -g 5200 group1   # 指定id ,不指定时自增1

删除用户组

groupdel 组名

修改用户组的权限信息

groupmod -g 新id -n 新名字 组名

切换用户组

$ newgrp 组名

磁盘管理

df (列出文件系统整体的磁盘使用量) du(检测磁盘空间使用量)

  • 【-h】 大小使用K、M、G简写

image

检测根目录下每个目录所占大小

image

Mac 或者想使用Linux挂载我们的一些本地磁盘或者文件!

挂载:mount

image

卸载:umount

umount -f 挂载位置  # -f强制卸载

进程管理

ps 查看当前系统中正在执行的各种进程的信息

  • 【-a】 显示当前终端运行的所有的进程信息
  • 【-u】以用户的信息显示进程
  • 【-x】 显示后台运行进程的参数
ps -aux|grep mysql # 查询关于mysql相关的进程

# |  在Liunx中是管道符,A|B 是指A执行的结果作为B的参数
# grep  查找响应字符串

image

  • 【-ef】查询父进程的信息
ps -ef|grep mysql

pstree -pu
    -p  显示父id
    -u  显示用户组

image

kill 杀死进程

kill -9 进程的id  #

环境安装

安装有3钟方式:rpm、解压缩、yum在线安装

JDK安装

找到jdk的rpm ,没有的下载后用Xftp传输过来

rpm -ivh xxx.rpm  #安装

rpm -qa|grep jdk # 查询信息 

rpm -e --nodeps 上面的信息  # 卸载环境

image

配置环境变量 /etc/profile

export JAVA_HOME=/opt/module/jdk1.8.0_301
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile # 刷新使配置生效

检测

[root@hostname0yang /]# java -version
java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)
[root@hostname0yang /]#

发布

#开启防火墙端口
firewall -cmd --zone=public --add-port=xxx/tcp --permanent
#重启防火墙
systemctl restart firewalld.service
#查看开放的端口
firewall-cmd --list-ports

image

Tomcat

Docker

yum 在线安装

yum -y install yum源


这篇关于学习笔记-Liunx的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程