Linux 快速入门:基础命令集合
Linux 快速入门:基础命令集合
前言:
本篇,不是面向运维级别的 liunx系统学习, 而是针对Java——大数据学习, 所需要的基本功能~
Linux 总而言之,根本也就是一个 操作系统! 操作系统, 作为一个程序员 现代人每天都会有很多接触: 常见的操作系统有↓↓↓
PC: Windows,OSX,Linux.. 服务器: Unix/Linux,Windows Server,OSX... 嵌入式设备(智能手机): Linux,Android,VxWorks,iOS....
Linux简介:
企鹅 logo: 企鹅是属于极地生物, 而南极北极, 这种极地 不属于任何国家!! 内涵, 技术共享开源学习!!
Linux,全称
GNU
/Linux ,是一套免费使用和自由传播的类Unix操作系统
,常用于服务器端使用; Linux历史: 20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系统主要有: Unix、DOS和MacOS这几种。 Unix价格昂贵不能运行于PC;DOS显得简陋, 且源代码被软件厂商严格保密;MacOS是一种专门用于苹果计算机的操作系统。
这时一位大学生 林纳斯·托瓦茨想要了解Intel的新CPU386。他认为较好的学习方法就是自己编写的一个操作系统的内核。 于是:1991年,林纳斯·托瓦茨为了学习就模仿 Unix开发出了, Linux 并且遵循当时的一个GNU(自由软件基金会) 技术无偿共享原则, 所以大佬慷慨的:免费,开源 的共享了出来!!😭大佬牛皮! 正是因为开源, 后来的
大佬
可以看到其内部的代码结构, 并不断的对其优化 维护~ , 使其渐渐的: 安全 高效!支持高并发...集合大佬们的力量的产品!
如今: Linux得到了来自全世界软件爱好者、组织、公司的支持。 它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。
Linux 分类:
Linux的版本分为两种:内核版本
和发行版本
。 内核版本 : 是指在Linus领导下的内核小组开发维护的系统内核的版本号。 发行版本 : 是一些组织和公司根据自己发行版的不同而自定的。 目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE等。
Linux操作系统 学习安装方式:
这个是比较头疼的, 市面上滴发行版非常多,也有收费的.. 本人学习的是 CentOS7 (其实, 这方面并无太大影响, 毕竟内核是一样的不会相差太多的!); `` 而且, 大部分人目前市面上常见的操作系统是: Windows(图形界面更好, 面向非程序员用户很多...) 想要学习Linux 但是目前系统是 Windows... 这是很多人面临的一个大问题.. 关于笔记本操作系统的问题:(解决方法)
整机安装(llinux操作系统) 双系统并存安装 虚拟机安装 (本人使用的方式, 这里不做VM的配置安装讲解, 如果想要效仿本人可以借鉴:Linux环境 常用软件安装 ) 最后奉上:
CentOS官网
https://www.centos.org//
走近Linux系统
开机登录:
开机会启动许多程序。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。
开机成功后,它会显示一个文本登录界面, 这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名/密码。 一般来说,用户的登录方式有三种: 命令行登录 ssh登录 图形界面登录 最高权限账户为 root,可以操作一切! 密码:123123 本人的密码...
关机:
在linux领域内大多用在服务器上,很少遇到关机的操作。 毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。 关机指令为: shutdown
sync #将数据由内存同步到硬盘中。
在Linux系统中,为了加快数据读取速度,默认的情况中,某些已经加载内存中的数据不会直接被写回硬盘,而是先缓存在内存当中。
万一你的系统因为某些特殊情况造成不正常关机,由于数据尚未被写入硬盘当中,哇!所以就会造成数据的升级不正常啦!
直接在文字接口下输入sync,那么在内存中尚未被升级的数据,就会被写入硬盘中!
这个命令在系统关机或重新启动之前, 很重要喔!最好多运行几次(2-4次)!
shutdown #关机指令
shutdown –h 10 #这个命令告诉大家,计算机将在10分钟后关机
shutdown –h now #立马关机
shutdown –h 20:25 #系统会在今天20:25关机
shutdown –r now #系统立马重启
shutdown –r +10 #系统十分钟后重启
reboot #就是重启,等同于 shutdown –r now
halt #关闭系统,等同于shutdown –h now 和 poweroff
最后总结一下,不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。
系统目录结构
登录系统后,在当前命令窗口下输入命令: ls/
树状目录结构:(Linux的一切资源都挂载在这个 / 根节点下)
以下是对这些目录的解释:
目录名称 | 说明 |
---|---|
/ | Linux系统根目录 |
/bin | bin是Binary的缩写, 这个目录存放着最经常使用的命令。 |
/dev | dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 |
/etc | 这个目录用来存放所有的系统管理所需要的配置文件和子目录。etc/profile:Linux系统环境 |
/home | 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 |
/lib | 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。 |
/usr | 一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 (本人,也喜欢在把工具都安装在这里 /usr/local ) |
/opt | 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 |
/root | 该目录为系统管理员,也称作超级权限者的用户主目录。 |
/var | 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件 |
/run | 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除 |
更多... |
Linux目录管理
我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 / 绝对路径: 由根目录 / 写起,例如:/usr/share/doc 这个目录。 相对路径 : 路径的写法,不是由 / 写起例如: /usr/share/doc 要到 /usr/share/man 底下时,可以写成:cd ../man 这就是相对路径的写法啦! .. 返回上一级 /main 到main 路径下~
处理目录的常用命令
pwd [-p] #查看当前所在目录,加-p:pwd -p 显示出确实的路径,而非使用连接(link) 路径。
cd 相对/绝对路径 #打开目录
ls –a #查看目录下文件,连同隐藏文件(开头为.的文件),一起列出来(常用)
ls -l 或 ll #查看目录下文件,包含文件的属性与权限等等数据;(不包含隐藏文件,常用)
ls -al #查看目录下文件,包含文件的属性与权限等等数据,连同隐藏文件;
mkdir [-mp] 目录名称 #创建文件目录;
#-m :配置文件的权限喔!直接配置,不需要看默认权限
mkdir -m 777 文件名; #777:最高权限;
#-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!(创建多级目录结构)
mkdir -p test1/test2/test3 #Linux没办法直接创建此目录啊!-p可以,创建多层目录;
rm –rf 目录或者文件 #删除文件或目录;
#rm [-fir] 文件或目录
#-f:就是 force 的意思,忽略不存在的文件,不会出现警告信息;
#-i:互动模式,在删除前会询问使用者是否动作
#-r:递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!(包含子目录)
mv [-fiu] [文件/目录][文件/目录] #移动文件或修改文件名;
#将文件夹1名称更改问文件2:mv [文件1][ 文件2]
#将目录1的文件移动到目录2:mv [目录1][ 目录2]
#将文件移动到目录下 :mv [文件] [目录]
#-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
#-i :若目标文件 (在destination目录) 已经存在时,就会询问是否覆盖!
#-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
cp #复制文件或目录
#cp [-adfilprsu] 来源档(source) 目标档(destination)
#-r:递归持续复制,用於目录的复制行为;(常用)
#-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
#-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
#-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
#-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
#递归复制目录1的所有的文件和文件夹到目录2:cp –r [目录1][目录2]
#执行复制操作时覆盖原有目录前询问用户:cp –ri [目录1][目录2]
Linux文件属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。 为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
在Linux中我们可以使用ll
或者ls –l
命令来显示一个文件的属性以及文件所属的用户和组: 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等: 当为[ d ]则是目录 当为[ - ]则是文件; 若是[ l ]则表示为链接文档 ( link file ); 若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 ); 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。
接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。 其中: r
代表可读(read) w
代表可写(write) x
代表可执行(execute)。 要注意的是: 这三个权限的位置不会改变,如果没有权限,就会出现减号 -
而已。 三个一组每一组表示一种权限: 这九个字符是三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4 w:2 x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:
[-rwxrwx---] 分数则是: owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others= - - - = 0+0+0 = 0
chmod 770 文件名
设值文件的权限: 拥有者/同组用户 具有:读写操作(权限)
chgrp: 修改文件属性
chmod [-R] u+权限,g+权限,o+权限 文件/目录
chmod [-R] 权限值 文件或目录
#-R: 递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
Linux 文件内容查看
cat 由第一行开始显示文件内容
语法:
cat [-AbEnTv] 文件名
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同
-T :将 [tab] 按键以 ^I 显示出来
-v :列出一些看不出来的特殊字符
tac 从最后一行开始显示,可以看出tac 是cat 的倒着写!
语法:
tac [-AbEnTv] 文件名
nl 显示的时候,顺道输出行号!
语法:
nl [-bnw] 文件名
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在荧幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
more 一页一页的显示文件内容,在 more 这个程序的运行过程中,你有几个按键可以按的:
语法:
more 文件名
在 more 这个程序的运行过程中,你有几个按键可以按的:
空白键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
less 与more 类似,但是比 more 更好的是,他可以往前翻页!
语法:
less 文件名
空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字串 :向下搜寻『字串』的功能;
?字串 :向上搜寻『字串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序;
head 取出文件前面几行
语法:
head [-n number] 文件
选项与参数:-n 后面接数字,代表显示几行的意思!默认的情况中,显示前面 10 行!若要显示前 20 行,就得要这样:
head -n 20 文件
tail 取出文件后面几行
语法:
tail [-n number] 文件
默认的情况中,显示最后 10 行! tail 文件 显示文件后十行!
Linux 文件编辑命令Vi
vi:Linux一款功能强大的全屏幕文本编辑器: vi命令
打开文件: vi [文件名] 如果文件名不存在,创建文件编写~
进入编辑模式: i,a
退出编辑模式: 按下 Esc 键
进入命令模式: “:”
保存并退出: wq或x
退出但不保存: q!
保存 w
Linux用户/用户组
用户是指操作系统的实际操作者 用户组是具有相同特征的用户的集合体 Linux中每一个用户,都属于一个用户组:root用户:Linux系统权限最高的用户
**id**:查看当前用户UID和GID
**whoami**:查看当前登录用户
**groups**:查看当前用户所属分组
**useradd [用户名]** :添加用户
**useradd –u [UID] 用户名**:添加用户并指定UID 切换到指定用户:
**`su [用户名]`**
**passwd [用户名]** :修改用户密码
**userdel [用户名]** :删除用户
**usermod –l [新用户名](#)**:修改用户登录名
**usermod –g [新组名称](#)**:修改用户所属分组
**groupadd [组名]** :添加分组
**groupadd –g [组GID](#)**:添加分组并指定GID
对应Linux 中用户和用户组的概念, 本人并没有太多了解, 但是我指定: root用户最牛批!
拓展:Linux 链接概念
Linux 链接分两种 : 一种被称为硬链接
(Hard Link) 另一种被称为符号链接软连接
(Symbolic Link)。
clear Linux清屏幕
Linux进程和程序
什么是进程? 进程是程序运行的动态描述,进程程序生命周期 (对于一个标准程序员进程是啥不用解释了吧..)
这儿简单介绍一下,毕竟本人不是专业滴~ Linux查看进程:ps -ef|grep [进程标识] 停止进程:Kill -9 [PID] 指定进程 pid 杀死进程! 实例:
ps –ef 查看所有进程: 在ifconfig的输出里寻找192.168字符串 ifconfig | grep 192.168 查找和java相关的进程 ps -ef | grep java 查找和3306相关的信息 ps -ef | grep 3306
kill 2868 杀掉2868编号的进程 kill -9 2868 强制杀死进程
转载自:https://juejin.cn/post/7058266197657124871