作为一名后端开发必须掌握的Linux基础。分为
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口) 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
目前,市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。
目前 Linux 不仅在家庭与企业中使用,并且在政府中也很受欢迎。
在Linux的理念里面,一切皆文件。Linux文件系统从根目录开始,分为很多子目录:
LinuxC/C++服务器开发/架构师 系统性学习公开课
面试题、学习资料、教学视频和学习路线图(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享有需要的可以自行添加学习交流群960994558
cmd [options] [arguments]
命令 选项 参数
Linux的通配符如下:
ls -al
绝对路径都是以/ 开头,相对路径,对于当前目录该如何寻找 …/ 或./
mkdir -p : 递归创建文件夹
mkdir -p test1/test2
rmdir -p :删除层级目录
rmdir -p test1/test2/test3
[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory
[root@www ~]# mv [-fiu] source destination
[root@www ~]# mv [options] source1 source2 source3 .... directory
移动过程可以重命名:
[root@kuangshen home]# mv test mvtest
[root@kuangshen home]# ls
mvtest
cat /dev/null >nohup.out
# cat nohup.out
Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。我们可以通过ls -l 的命令来查看
a、在Linux中的第一个字符代表这个文件是目录、文件或链接文件等等。
b、在接下来的字符中,三个为一组,且均为【rwx】的三个参数的组合。这三个的位置不会改变,如果没有权限,就会出现减号【-】
对于Linux来说,用户是按组分类的,一个用户属于一个或多个组。
chgrp:更改文件属组
chown:更改文件属主,也可以同时更改文件属组。常用!
语法:
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
chmod: 更改文件的9个属性。常用!
文件属性的设置方法分两种:一种是符号,一种是数字。
权限符号参照表:
上面的每三种权限是可以对分数累加的,例如rwx=4+2+1 ;— = 0,因此,可以赋予权限chmod -R 770
对应字符:Linux用user,group,others代表三组权限,a代表所有。缩写表示u、g、o、a。分别修改权限:
[root@lei ~]# chmod u=rwx,g=rx,o=r test
[root@lei ~]# ls -al test
-rwxr-xr--. 1 root root 0 6月 12 14:08 test
Linux的链接分为两种:硬链接、软链接。
vim是操作Linux的必备技能,是从vi发展出来的一个文本编辑器。具备代码补完、编译及错误跳转等方便编程的功能,被广泛应用。
分为三种模式:
vim 进入编辑文件,
. 命令模式下,输入:/字符串
比如搜索user, 输入/user:
输入模式就是我们开始编辑文件的模式,一些快捷键如下:
进入底线命令模式,基本命令有:
Linux 系统是一个多用户任务的分时操作系统,任何一个要使用系统资源的用户,就必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号可以分配不同的权限,保证系统的安全。
用户账号的管理工作主要涉及到用户的添加、修改与删除
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户名,用户组,主目录和登录Shell等资源
useradd 选项 用户名
userdel 选项 用户名
删除用户就是从/etc/passwd 等系统文件中的该用户记录删除,必要时还删除用户的主目录
常用的命令就是-r。它的作用就是把用户的主目录一起删除。
修改用户,更改用户属性,如用户名、主目录、用户组、登录shell等
usermod 选项 用户名
passwd 用户名
每个用户都有一个用户组,系统可以对一个用户的所有用户进行集中管理(开发、运维、测试、root)。不同Linux系统对用户组的规定有所不同,如linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
组的增加、删除和修改实际上就是对/etc/group文件的更新
通过groupadd 组名 完成组的创建,创建完用户组就可以得到一个id。
cat /etc/group
groupadd -g 数字:若不指定就是自增1
groupmod 选项 用户组
df(列出文件系统整体的磁盘使用量)
du(检查磁盘空间使用量)
文件,权限。系统
对于我们开发人员来说,其实Linux更多偏向于使用而已。
在Linux中,每个程序都是有自己的进程,每个进程都有一个id号。
每一个进程,都会有一个父进程。
一般的服务都是后台进行的,基本的程序都是前台运行的。
ps 查看系统中正在执行的各种进程信息
ps -xx:
ps -aux 查看所有的进程
ps -aux |grep mysql
ps -aux |grep redis
ps -aux |grep java
# 在linux中这个叫做管道符 A|B
grep:查找文件中符合条件的字符串
复制代码
ps -ef |grep mysql #看父进程一般通过目录树查看
pstree
-p:显示id
-u:显示用户组
结束进程: kill -9 进程的id (死循环才会杀进程)
1、jdk
2、node.js
3、Nginx
4、redis6
5、mysql8方式一
6、mysql8方式二
1、将文件的部分内容复制到另一个文件
head -n 100000 data.txt > sample.txt
2、清空文件
方法1、在非编辑状态下使用快捷键gg跳至首行头部,再使用dG即可。
方法2、cat /dev/null > /var/log/yum.log(替换为需要清空内容文件名)
方法3、> /var/log/yum.log(替换为需要清空内容文件名)
3、查看文件大小
du -h --max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,子目录大小等等,这个比较实用。