Linux的基本知识和基础操作

Linux的基本知识和基础操作

一、基本知识

Linux是基于Unix的
Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机在这里插入图片描述
诞生于1991 年10 月5 日。是由芬兰赫尔辛基大学学生Linus Torvalds和后来加入的众多爱好者共同开发完成
在这里插入图片描述
通俗一点的解释:

/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:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。

二、基本操作(man [命令]来查看各个命令的使用文档)

1. 切换目录命令cd:
cd app	切换到app目录
cd ..   切换到上一层目录
cd /	切换到系统根目录
cd ~	切换到用户主目录
cd -	切换到上一个所在目录

(使用tab键来补全文件路径)

2. 列出文件列表:ls ll

ls(list)是一个非常有用的命令,用来显示当前目录下的内容。配合参数的使用,能以不同的方式显示目录内容。
格式:ls[参数] [路径或文件名]
常用:
在linux中以 . 开头的文件都是隐藏的文件

  • ls
  • ls -a 显示所有文件或目录(包含隐藏的文件)
  • ls -l 缩写成ll
3. 创建目录和移除目录:mkdir rmdir

-m :配置文件的权限喔!直接配置
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

mkdir(make directory) 命令可创建目录
mkdir app       在当前目录下创建app目录
mkdir –p app2/test  创建aap2以及test目录
rmdir(remove directory)命令可用来删除“空”的子目录
rmdir app    删除app目录
4. 浏览文件

【cat、more、less、nl、tac、head、tail】
【cat】

-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;

-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!

-E :将结尾的断行字节 $ 显示出来;

-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;

-T :将 [tab] 按键以 ^I 显示出来;

-v :列出一些看不出来的特殊字符

cat用于显示文件的内容。格式:cat[参数]<文件名>
【nl]

-b :指定行号指定的方式,主要有两种:-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:-n ln :行号在荧幕的最左方显示;-n rn :行号在自己栏位的最右方显示,且不加 0 ;-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。

【more】

空白键 (space):代表向下翻一页;
Enter     :代表向下翻『一行』;
/字串     :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f      :立刻显示出档名以及目前显示的行数;
q       :代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。

【less】

空白键  :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字串   :向下搜寻『字串』的功能;
?字串   :向上搜寻『字串』的功能;
n     :重复前一个搜寻 (与 / 或 ? 有关!)
N     :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q     :离开 less 这个程序;

【head】

选项与参数:-n 后面接数字,代表显示几行的意思!

【tail】

选项与参数:-n 后面接数字,代表显示几行的意思!
* cat yum.conf

more一般用于要显示的内容会超过一个画面长度的情况。按空格键显示下一个画面。
回车显示下一行内容。
按 q 键退出查看。

  • more yum.conf 空格显示下一页数据 回车显示下一行的数据
  • less用法和more类似,不同的是less可以通过PgUp、PgDn键来控制
  • less yum.conf PgUp 和 PgDn 进行上下翻页
  • nl 显示的时候,顺道输出行号!
  • head 只看头几行
  • tail 只看尾巴几行

【tail】
tail命令是在实际使用过程中使用非常多的一个命令,它的功能是:用于显示文件后几行的内容。

 tail -10 /etc/passwd   查看后10行数据
 tail -f catalina.log    动态查看日志(*****)
 ctrl+c 结束查看
5. 文件操作:

【rm】

 rm             删除文件
 rm [选项]... 文件...
 rm a.txt       删除a.txt文件 删除需要用户确认,y/nrm 删除不询问
 rm -f a.txt    不询问,直接删除rm 删除目录
 rm -r a.txt    递归删除询问递归删除(慎用)
 rm -rf  a.txt   不询问递归删除
 rm -rf *     删除所有文件
 rm -rf /*    删库跑路

【cp、mv】
cp(copy)命令可以将文件从一处复制到另一处。一般在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录(cp也可以重命名)。
【cp】

-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)

-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);

-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;

-r:递归持续复制,用於目录的复制行为;(常用)

-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;

-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)

-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身。

-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;

-u:若 destination 比 source 旧才升级 destination !

【mv】

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
 cp a.txt    b.txt     将a.txt复制为b.txt文件
 cp a.txt ../       将a.txt文件复制到上一层目录中
 cp [源目录[源文件]  [新目录][新文件]
 mv   移动或者重命名
 mv a.txt ../       将a.txt文件移动到上一层目录中
 mv a.txt b.txt     将a.txt文件重命名为b.txt
 mv [源目录[源文件]  [新目录][新文件]

【tar】命令:(打包或解压)
tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。常用参数:

 -c:创建一个新tar文件
 -v:显示运行过程的信息
 -f:指定文件名
 -z:调用gzip压缩命令进行压缩
 -t:查看压缩文件的内容
 -x:解开tar文件

打包:

 tar –cvf xxx.tar ./

打包并且压缩:

 tar –zcvf xxx.tar.gz ./

解压

 tar –xvf xxx.tar
 tar –xvf xxx.tar -C  /usr/aaa 解压到指定目录
 tar -zxvf xxx.tar.gz -C /usr/aaa 解压到指定目录

【find】命令
find指令用于查找符合条件的文件
示例:

 find / -name “ins*” 查找文件名称是以ins开头的文件
 find / -name “ins*” –ls 
 find / –user cjz –ls 查找用户cjz的文件
 find / –user cjz –type d –ls 查找用户cjz的目录
 find /-perm -777 –type d-ls 查找权限是777的文件
 find / -name “ins*” 查找文件名称是以ins开头的文件
 find / -name “ins*” –ls 
 find / –user cjz–ls 查找用户cjz的文件
 find / –user cjz –type d –ls 查找用户cjz的目录
 find /-perm -777 –type d-ls 查找权限是777的文件

【grep】命令
查找文件里符合条件的字符串。
用法: grep [选项]… PATTERN [FILE]…

 grep lang anaconda-ks.cfg  在文件中查找lang
 grep lang anaconda-ks.cfg –color 高亮显示
6. 其他常用命令
【pwd】
显示当前所在目录
【pwd -P】显示出确实的路径,而非使用连接(link) 路径。
【touch】
创建一个空文件
* touch a.txt

【clear/ crtl + L】清屏
hostname 查看主机名
hostname xxx 修改主机名 重启后无效
如果想要永久生效,可以修改/etc/sysconfig/network文件
7. Vi和Vim编辑器

在Linux下一般使用vi编辑器来编辑文件。vi既可以查看文件也可以编辑文件。三种模式:命令行、插入、底行模式。

切换到命令行模式:按Esc键;
切换到插入模式:按 i 、o、a键;
i 在当前位置前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
切换到底行模式:按 :(冒号)
打开文件:vim file
退出:esc   :q
修改文件:输入i进入插入模式
保存并退出:esc :wq
不保存退出:esc :q!
三种进入插入模式:
i:在当前的光标所在处插入
o:在当前光标所在的行的下一行插入
a:在光标所在的下一个字符插入

输入模式:

字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式

快捷键:

dd – 快速删除一行
yy - 复制当前行
nyy - 从当前行向后复制几行
R – 替换

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8. 重定向输出>和>>

重定向输出,覆盖原有内容;>> 重定向输出,又追加功能;

cat /etc/passwd > a.txt  将输出定向到a.txt中
cat /etc/passwd >> a.txt  输出并且追加
echo "hello" >a.txt 将hello写入a.txt/替换里面内容为hello
ifconfig > ifconfig.txt
9. 系统管理命令
ps 正在运行的某个进程的状态
ps –ef  查看所有进程
ps –ef | grep ssh 查找某一进程
kill 2868  杀掉2868编号的进程
kill -9 2868  强制杀死进程
curl  域名/ip地址  访问
ip addr 查看IP和网卡
netstat -nap|grep 8080 查看占用该端口号的进程
10.管道 |

管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。

ls --help | more  分页查询帮助信息
ps –ef | grep java  查询名称中包含java的进程
ifconfig | more
cat index.html | more
ps –ef | grep mysql
11.磁盘管理

Linux磁盘管理常用命令为 df、du。

df :列出文件系统的整体磁盘使用量
du:检查磁盘空间使用量
df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法:

df [-ahikHTm] [目录或文件名]
选项与参数:

-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;

-k :以 KBytes 的容量显示各文件系统;

-m :以 MBytes 的容量显示各文件系统;

-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

-H :以 M=1000K 取代 M=1024K 的进位方式;

-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;

-i :不用硬盘容量,而以 inode 的数量来显示

Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。

语法:

du [-ahskm] 文件或目录名称
选项与参数:

-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。

-h :以人们较易读的容量格式 (G/M) 显示;

-s :列出总量而已,而不列出每个各别的目录占用容量;

-S :不包括子目录下的总计,与 -s 有点差别。

-k :以 KBytes 列出容量显示;

-m :以 MBytes 列出容量显示;

根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载”

Linux 的磁盘挂载使用mount命令,卸载使用umount命令。

磁盘挂载语法:

mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点

磁盘卸载命令 umount 语法:

umount [-fn] 装置文件名或挂载点

选项与参数:

-f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;

-n :不升级 /etc/mtab 情况下卸除。
12.账号管理

与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。
(1)用户账号

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。

添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。

添加账号 useradd

useradd 选项 用户名
参数说明:

选项 :

-c comment 指定一段注释性描述。

-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

-g 用户组 指定用户所属的用户组。

-G 用户组,用户组 指定用户所属的附加组。

-m 使用者目录如不存在则自动建立。

-s Shell文件 指定用户的登录Shell。

-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

用户名 :

指定新账号的登录名。

Linux下如何切换用户

1.切换用户的命令为:su username 【username是你的用户名哦】

2.从普通用户切换到root用户,还可以使用命令:sudo su

3.在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令

4.在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】

$表示普通用户

#表示超级用户,也就是root用户

删除帐号

如果一个用户的账号不再使用,可以从系统中删除。

删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。

删除一个已有的用户账号使用userdel命令,其格式如下:

userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除

修改帐号

修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

修改已有用户的信息使用usermod命令,其格式如下:

usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

用户口令的管理

用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。

命令的格式为:

passwd 选项 用户名
可使用的选项:

-l 锁定口令,即禁用账号。

-u 口令解锁。

-d 使账号无口令。

-f 强迫用户下次登录时修改口令。

如果默认用户名,则修改当前用户的口令。
为用户指定空口令时,执行下列形式的命令:

passwd -d cjz

此命令将用户 cjz口令删除,这样用户 cjz下一次登录时,系统就不再允许该用户登录了。
passwd 命令还可以用 -l(lock) 选项锁定某一用户,使其不能登录,例如:

passwd -l cjz

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

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

增加一个新的用户组使用groupadd命令

groupadd 选项 用户组
可以使用的选项有:

-g GID 指定新用户组的组标识号(GID)。

-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

如果要删除一个已有的用户组,使用groupdel命令

groupdel 用户组

修改用户组的属性使用groupmod命令

groupmod 选项 用户组
常用的选项有:

-g GID 为用户组指定新的组标识号。

-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。

-n新用户组 将用户组的名字改为新名字

切换组

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。

用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。

用户组的所有信息都存放在/etc/group文件中。

将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段。

每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。

当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。

用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。

用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有:

组名:口令:组标识号:组内用户列表
"组名"是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。

"口令"字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。

"组标识号"与用户标识号类似,也是一个整数,被系统内部用来标识组。

"组内用户列表"是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

三、 Linux的权限命令

在这里插入图片描述

在这里插入图片描述

r:对文件是指可读取内容 对目录是可以ls

w:对文件是指可修改文件内容,对目录 是指可以在其中创建或删除子节点(目录或文件)

x:对文件是指是否可以运行这个文件,对目录是指是否可以cd进入这个目录

普通文件: 包括文本文件、数据文件、可执行的二进制程序文件等。
目录文件: Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
设备文件: Linux系统把每一个设备都看成是一个文件

当为[ d ]则是目录

当为[ - ]则是文件;

若是[ l ]则表示为链接文档 ( link file );

若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );

若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。

修改文件属性

1、chgrp:更改文件属组

chgrp [-R] 属组名 文件名

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

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

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

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

chmod [-R] xyz 文件或目录

Linux文件属性有两种设置方法,一种是数字,一种是符号。

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
r:4 w:2 x:1

chmod 变更文件或目录的权限
chmod 755 a.txt 
chmod u=rwx,g=rx,o=rx a.txt

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值