说明:本笔记是学习狂神说linux时创建
个人博客 : Dexter
1、什么是linux?
基本概述
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
发行版本
Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
2、 为什么使用linux?
作为后端程序员,linux是必备技能。
特点:
完全免费
完全兼容POSIX1.0标准
多用户、多任务
良好的界面
-
支持多种平台
3、linux的安装
你也可以选择购买服务器,这里作者选择虚拟机安装linux。
说明:作者系统是Mac bigsur 。
1、虚拟机安装linux系统
准备:
centos 7镜像
虚拟机软件(VMware等)
1、将下载好的镜像拖入虚拟机中。
2、取消勾选快捷安装,密码这里不输入也是可以的。
3、引导选择传统bios即可。
4、点击自定义设置定义系统保存位置、在根据需要设置处理的核数、内存大小以及硬盘大小(作者 1核心,2g内存,30g硬盘)。
5、点击完成,再点击虚拟机屏幕的暂停按钮,在选择install centos 7即可安装系统。
6、等待一会,出现这个页面选择自己看的懂的语言。
7、点击软件选择,根据自己需要打勾,选好后点击完成。
8、点击安装位置,作者选用自动配置分区,你可以根据自己进行选择,选好后点完成。
9、点击开始安装,等待安装完成即可。
10、先设置root密码,才能点击完成配置,等待一会,点击重启按钮。
11、点击,同意协议,完成配置。
12、根据自己需求设置。
13 、安装完成。
注意:此时的系统网络与外界网络 以及宿主机的网络是无法联通的,需要进行网络设置。
14、使用ifconfig命令可以看到系统是没有ip的
15、生成可用的ip 。
su root #切换到root模式
dhclient #分配可用ip
使用ifconfig命令查看分配的ip。
使用命令打开网卡配置。
vim /etc/sysconfig/network-scripts/ifcfg-ens33
按i进入编辑模式,添加以下代码。
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 设置为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUTD=9d50e10e-1a01-45b9-a84b-933211b1bc31
DEVICE=ens33
ONBOOT=yes
IPADDR=172.16.16.3 #此ip是分配的可用ip
NETMASK=255.255.255.0
GATEWAY=172.16.16.1 #根据自己的ip设置
DNS1=119.29.29.29
按esc退出编辑模式,输入:wq保存退出。终端ping www.baidu.com实验网络可用性。
到这里系统算是弄好了。
4、了解linux
文件夹解析
登入linux系统之后,使用ls /命令,可以看到下面界面,有很多文件夹。
- /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
- /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
- /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
- /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
- /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
- /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
- /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
- /root:该目录为系统管理员,也称作超级权限者的用户主目录。
- /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /srv:该目录存放一些服务启动之后需要提取的数据。
- /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
- /tmp:这个目录是用来存放一些临时文件的。
- /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /usr/bin: 系统用户使用的应用程序。
- /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
- /usr/src: 内核源代码默认的放置目录。
- /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
- /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
5、基本命令
目录操作
ls 显示目录
- ls -a 显示出当前文件夹的全部目录
- ls -l 显示出当前文件夹的算有文件属性及权限
cd 切换文件夹
- cd 【相对路径或绝对路径】
- cd /home 进入home文件夹
- cd .. 退到上一级文件夹
- cd / 回到根目录
- cd ~ 回到root目录
mkdir 创建文件夹
-
递归创建文件夹 (创建多级目录): -p
mkdir -p t01/t02/t03
pwd 显示当前文件夹名称
rmdir 删除文件夹
-
删除多级文件夹只需要加 -p就可以了
rmdir -p t01/t02/t03
cp 复制文件夹
-
cp 【文件名】【目标文件夹】
如果该文件夹已经存在该文件名的文件 可以输入 y进行覆盖或者输入n不复制
rm 移除文件或目录
- -f 强制删除,不会有警告
- -r 递归删除
- -i 执行前会询问
mv 移动文件、目录或者修改名称
- -f :如果目标文件存在,不会询问直接覆盖;
- -i :目标文件 (destination) 存在时,询问是否覆盖!
- -u :目标文件已经存在,且 source 比较新,才会升级 (update)
文件属性
linux系统对不同的用户对同一文件的操作有不同的权限。
看实例:
第一字母的含义:
- d 表示是一个目录
- l 表示是一个链接
- -表示示一哦个文件
- b 表示为装置文件里面的可供储存的接口设备
- c 表示为装置文件里面的串行端口设备,例如键盘、鼠标
接下来9个字母,三个为一组,都是rwx组合。
r:可读
w:可写
x:可执行
三个权限的位置不会改变,如果没有权限,-代替
- 属主权限:文件所有者的权限。
- 属组权限:所有者的同组用户对该文件权限。
- 其他用户的权限:其他用户对该文件的权限。
修改文件属性
可以看到,文件都有属组,属主。
chgrp:更改文件属组
-
chgrp [-R] 新组名 文件名
前提是该组名存在
-R递归修改文件夹属组
chown:更改文件属主,也可以同时更改文件属组
-
chown 【-R】新主名 文件名
新主名必须存在
chown 【-R】 属主名:属组名 文件名
chmod:更改文件的9个属性
有两种方法:
1、使用字符
2、使用数字 r:4,w:2,x:1
[root@localhost home]# ls -ll
总用量 4
drwxrwxrwx. 2 root root 6 4月 25 21:05 chao
drwx------. 16 dexter dexter 4096 4月 23 04:57 dexter
[root@localhost home]# chmod 755 chao
[root@localhost home]# ls -ll
总用量 4
drwxr-xr-x. 2 root root 6 4月 25 21:05 chao
drwx------. 16 dexter dexter 4096 4月 23 04:57 dexter
[root@localhost home]#
== chmod 777 是文件的最高权限 ==
文件内容的查看
文件查看的基本命令:
- cat 从文件的前面显示文件内容
- tac 从文件的最后内容开始显示内容
- nl 显示内容时显示行号
- more 显示内容时一分页的形式
- head 只看前几行内容 -n 【数字】 这里代表显示几行
- tail 只看后几行内容 -n与head一样
- less 与 more 类似,但可以往上翻页 /需要查找的字符 向下查找 ,?向上查找字符
软链接与硬链接
硬链接:A-->B A,B指向同文件,其中一个文件删除的话不会影响另一个文件。更新A内容的话B也会更新。
软连接:A-->B B相当于A的快捷方式,如果A被删除B也不能被访问了。更新A内容的话B也会更新。
[root@localhost /]# cd home
[root@localhost home]# touch f1 #创建普通文件f1
[root@localhost home]# ls
chao dexter f1
[root@localhost home]# ln f1 f2 #创建硬链接f2
[root@localhost home]# ls
chao dexter f1 f2
[root@localhost home]# ln -s f1 f3 #创建软链接f3
[root@localhost home]# ls
chao dexter f1 f2 f3
[root@localhost home]# echo "Hello,Linux" >>f1 #往f1里面输出内容
[root@localhost home]# cat f1 #查看f1内容
Hello,Linux
[root@localhost home]# cat f2 #查看f2内容
Hello,Linux
[root@localhost home]# cat f3 #查看f3内容
Hello,Linux
[root@localhost home]# rm f1 #删除f1
rm:是否删除普通文件 "f1"?y
[root@localhost home]# cat f2 #f2 还是可以看的
Hello,Linux
[root@localhost home]# cat f3 #f3 不可以了
cat: f3: 没有那个文件或目录
6、vim编辑器
vim 是一个程序开发工具而不是文字处理软件。
vim有三种模式 命令模式,输入模式,底线命令名模式。
命令模式:
- i 切换到输入模式。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,在最后一行输入命令
输入模式:
- 回车键换行
- end/home 光标移动到尾部和头部
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
底线命令模式:
- q退出程序
- w保存文件
- qw 保存退出
vim编辑器操作步骤
- vim 【文件名】 如果文件存在进入文件的命令模式,如果文件不存在vim会先创建文件
- 进入文件的命令模式之后,若想进入输入模式按i键。
- 输入完成后按esc键退出输入模式,进入命令模式。
- 这时输入:进入底线命令模式,输入wq保存退出。
7、用户管理
linux是一个多用户操作系统,不同的用户有不同的权限。
用户输入自己账号号密码,进入系统和自己的主文件夹。
添加账户
命令:useradd 选项 用户名
选项:
- -c comment 添加一段描述。
- -d 目录 指定用户主目录。如果同时使用-m,目录不存再可以创建主目录。
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -s Shell文件 用户的登录Shell。
- -u 用户号 用户的用户号,如果有-o,可以重复使用其他用户的标识号。
切换用户
su username 【用户名】
普通用户切换root sudo su
输入exit或logout或快捷方式ctrl+d,退回原来账户
-
超级用户 $普通用户
删除用户
命令:userdel 选项 用户名
选项-r 是在删除用户时删除用户在系统文件夹对应的目录
修改用户
命令:usermod 选项 用户名
选项与添加用户一样
用户口令
命令:passwd 选项 用户名
选项:
- -l 锁定账号,不能登入了。
- -u 解锁账号。
- -d 使账号无口令,为用户指定空口令,下次登入时不能登入。
- -f 强迫用户下次登录时修改口令。
8、用户组管理
每一个用户对应一个用户组,在实际开发中会有很多组比如:开发组,运维组,root等。
添加用户组
命令:groupadd 选项 用户组
选项:
- -g GID 指定新用户组的组标识号。
- -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
删除用户组
命令:groupdel 用户组
修改用户组
命令:groupmod -g 【新的GID】-n【新用户组】 用户组
切换用户组
如果用户拥有多个用户组时。
命令:$ newgrp 【用户组】
8、磁盘管理
查看linux磁盘
命令:df 和du
==不同的地方是du是查看文件和目录磁盘的使用空间==
选项与参数:
- -a :列出所有的文件系统;
- -k :以 KBytes 单位显示各文件系统;
- -m :以 MBytes 单位显示各文件系统;
- -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
- -H : M=1024K 变成 M=1000K 的进位;
- -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
- -i :不用硬盘容量,而以 inode 的数量来显示
9、进程管理
linux和Mac、windows一样也有很多进程。
每个程序都有自己的进程,每个进程都有自己的进程id。
每个进程都有一个父进程。
查看进程
命令: ps 选项
选项:
- -a 查看当前正在运行的进程
- -u 查看用户相关的进程
- -x 显示后台运行进程参数
ps -aux 代表显示所以进程
过滤进程
命令 :ps -aux|grep mysql 展示所有与mysql相关的进程
查看父进程
命令:pstree -pu
- -p 显示进程i父d
- -u 显示用户组
以树的形式展示进程信息。
结束进程
命令 :kill -9 [进程id]
==到这里linux简单使用就结束了,谢谢观看==