1,简单说明
Linux操作系统下:
- 一切皆文件
- 根目录“ / ” ,所有的文件都挂载在这个节点下
服务器中一些目录的说明:
-
/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:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。 -
/www:存放服务器网站相关的资源,如环境、网站项目
2,Linux基本常用命令
2.1,目录管理
2.1.1,列出目录(ls)
-
-a参数:查看全部文件,包括隐藏文件。a表示all -
-l参数:列出除隐藏文件之外的所有文件,包含文件的属性和权限 -
-al参数:想查看所有文件(包括隐藏文件)的属性和权限,就可以考虑组合使用。
2.1.2,切换目录(cd)
格式:cd 目录名。(目录名可以是绝对路径或相对路径)
-
绝对路径以 “/” 开头 -
相对路径表示相对于当前目录 -
cd / :回到根路径下 -
cd ~:直接进入当前用户目录
2.1.3,创建目录(mkdir)
mkdir 目录名:创建目录
mkdir -p xx/yy/zz:递归地创建层级目录,如下图:
2.1.4,删除目录(rmdir)
注意:rmdir命令不能删除不为空的文件夹 如果一定要删除则需要通过指定参数(rmdir -p xx/yy/zz),递归删除多个目录。 如下图:
2.1.5,复制文件或目录(cp)
格式:cp 原来的地方 新的地方
- -i 参数:覆盖已有文件前,提示用户确认,是否进行覆盖。
- -r 参数:递归复制目录,即复制目录下所有层级的子目录及文件。
①复制文件:
复制之后如果再次复制会询问是否覆盖,如下图:
②复制目录: -r 表示递归的意思。 此处为递归复制。
2.1.6,移除文件或目录(rm)
- -f参数:忽略不存在的文件(强制删除,不出现警告)。f表示force
- -r参数:递归删除目录
- -i参数:互动,询问是否删除。i表示interaction
删除文件时经常把rf结合起来使用,如下图:
rm -rf /*:r、f两参数结合表示删除系统根目录下的所有内容。即删库跑路!!!不建议使用。
2.1.7,移动、重命名文件或目录(mv)
- -f参数:表示强制移动,不出现警告
- -u参数:复制过去如果重复,则只替换已经更新过的文件
移动disk.pl文件到server目录下,如下图:
移动回去,如下图:
mv命令还可以重命名文件。 如下图:
2.2,文件属性查看和修改
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
2.2.1,文件属性介绍
文件详细属性查看,以下两种方式都可以:
我们在上面已经介绍了ls-l命令查看文件属性,如下图:
上面最左侧第一列是十个字符。
其中第一个字符代表这个文件是目录还是文件或是链接文件等等:
- 第一个字符为 d 说明是文件目录(directory)
- 第一个字符为 l 说明是一个链接文档(link)
- 第一个字符为 - 则说明是文件
- 第一个字符为 b 则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 )
- 第一个字符为 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )
接下来的9个字符中,以三个为一组分为三组,且均为 rwx 的三个参数的组合:
- 其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)
- 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 -
文件类型 | 属主权限 | 属组权限 | 其他用户权限 |
---|
0 | 1 2 3 | 4 5 6 | 7 8 9 | d | r w x | r-x | r-x | 目录文件 | 读 写 执行 | 读 - 执行 | 读 - 执行 |
如上表示的意思是:
- 属主权限:root用户权限可读可写可执行
- 属组权限:游客组,管理组可读可执行
- 其他用户权限可读可执行
2.2.2,修改文件属组(chgrp)
修改文件属组格式:chgrp -R 属组名 文件名(chgrp即change gooup)
递归修改www目录属组为root:chgrp -R root www,如下图: 其中-R:递归更改文件属组,在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2.2.2,修改文件属主(chown)
修改文件属组格式:chown -R 属主名 文件名(chown即change owner)
递归修改www文件夹的属主为root:chown -R root www,如下图:
如何把属组和属主改回来:
chown可以同时修改属主和属组!!!:chown -R 属主名:属组名 文件名
使用命令:chown -R www:www www
2.2.3,更改文件的九个属性(chmod)
使用chmod修改文件的后9个属性(后三组属性) 此时如果想要更改属性,也是可以的,使用的就是chmod。
Linux文件属性有两种设置方法,一种是数字,一种是符号。
①使用数字更改属性(常用)
如果想要设置所有用户均为可读可写可操作(rwxrwxrwx),即使用chmod 777 文件名
其中每一个7都代表rwx三个的值相加。如数字6则代表可读可写不可执行(rw-)。
每种身份(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 filename
演示:
2.3,文件查看命令
扩展:
- CentOS 7的网络配置目录为:etc/sysconfig/network-scripts
- Linux下使用ifconfig命令查看网络配置
2.3.1,可用于读取文件内容
①cat:从第一行开始显示文件内容。如下图:
②tac:(可以看出tac是cat倒着写得来的),表示从最后一行开始显示文件内容,如下图:
③nl:显示的文件内容,并顺道输出行号(如看代码的时候希望显示行号,可以使用此命令) ,如下图:
④more:分页的显示文件内容
- 空格键代表翻页
- 回车代表向下走一行
- :f 命令代表显示当前行号
- q 代表立刻退出more,不再显示文件内容
- b表示往回翻页(只对文件有效)
⑤less:与more类似,但是比more更好的是,它可以往前翻页(建议使用)
- 空格向下翻页
- 上下键代表翻动页面
- 使用q退出less
- /字符串:向下搜索字符串(使用n键向下寻找一个;使用N键向上寻找一个)
- ?字符串:向上搜索字符串(使用n键向下寻找一个;使用N键向上寻找一个)
⑥head:只看头几行。(语法:head -n number 文件) 通过 -n参数来控制显示几行。 如下图:
⑦tail:只看尾几行(语法:tail -n number 文件),与head类似。如下图:
3,硬链接和软链接
Linux链接又分为两种:
- 硬链接(Hard Link):假设B是A的硬链接,则它们两个指向同一个文件!允许一个文件拥有多个路径。如A文件比较重要,怕被误删;可以设置一个硬链接,则A即使被删除了还有B存在。这样用户就可以建立硬连接到重要文件,以防止“误删”。
- 软链接(Symbolic Link):也叫符号链接。类似于Windows下的快捷方式。删除了源文件,软链接也无法访问。
创建硬链接(ln 命令): 注意:touch命令可以用于创建文件
创建软链接(ln -s):
echo命令:向文件里输入字符串:
往源文件f1中写入,字符串“i love woniu”后,链接过去的文件f2,f3内容都发生了改变,如下图:
删除f1文件:
删除后源文件f1之后发现,f2(硬链接还可以继续访问);f3(软链接会失效,软链接类似windows中的快捷方式),如下图:
4,Vim编辑器
- Vim是从 vi 发展出来的一个文本编辑器
- Vim中代码补完、编译及错误跳转等方便编程的功能特别丰富,在Linux在程序员中被广泛使用
- Vim中查看内容、编辑内容和保存内容十分重要
vim 文件名:如果此文件存在,就进入修改此文件;如果文件不存在,就会新建此文件
通过vim linuxstudy.txt 创建一个linuxstudy.txt文件
基本上 vi/vim 共分为三种模式,分别是命令模式,输入模式和底线命令模式。
通过例子理解三种模式:
①用户刚进入Vim即进入了命令模式,如下图:
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
-
使用i 键表示切换到输入模式,以输入字符 -
: 表示切换到底线命令模式,以在最底一行输入命令 -
x键 表示 删除当前光标所在处的字符 -
…
②在命令模式中使用 i 键进入输入模式(insert),如下图:
③命令模式下使用 :进入底线命令模式,如下图:
使用esc键:从输入模式切换回命令模式
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
使用wq组合可以表示存档并退出。
按ESC键可随时退出底线命令模式。
以上的一个完整流程可以叙述为: ①先新建或编辑文件(vim),按 i 进入编辑模式 ②编写内容,编写完成后退出编辑模式(esc) ③退出编辑模式之后进入底线命令模式 ④输入:wq表示保存并退出
一些比较重要的vim命令:
- :set nu:设置行号,代码中常用
- :set nonu:于set nu相反,为取消行号
- :数字加空格:快速切换光标位置
- /word :向光标之下寻找一个名为word的字符串
- n:向下寻找一个(和/word搭配)
- N:向上寻找一个(和/word搭配)
- :u:撤销上一步操作
- ctrl + r:恢复上一步被撤销的操作
- …
5,Linux账号管理
公司中,一般员工用的应该都不是root用户。
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
5.1,添加用户(useradd)
useradd -选项 用户名:添加用户
其中选项有很多,如:
Linux中一切皆为文件,这里的添加用户说白了就是往某一个文件(/etc/passwd)中写入了用户的信息!如下图:
每条信息显式的格式为:
用户名 : 口令(登陆密码不可见): 用户标识号 : 组标识号 : 注释性描述 : 主目录 : 登录shell
5.2,删除用户(userdel)
删除用户的时候一般将他的目录也一并删除(通过 -r 参数指定)
删除之后,配置文件/etc/passwd中的hzbhzb记录也被删除。
5.3,修改用户(usermod)
修改账户常见参数(和useradd的一样):
通过useradd添加一个hpu用户后,对其进行如下修改(通过-d指定用户主目录),如下图: 注意:此操作需要提前在home目录中创建233文件夹
5.4,切换用户(su)
su hpu :切换搭到hpu用户,如下图:
还可以通过exit退回root用户,如下图:
注意: 在阿里云买完服务器连接之后主机名为一串无规则字符,如下图: 此主机名可以进行查看和临时修改(彻底修改需要去文件里改):
- hostname:查看主机名
- hostname 新主机名:把主机名临时修改为新主机名
5.5,用户的密码设置问题(passwd)
我们一般通过root创建用户的时候,需要配置密码!
①root权限给用户设置密码(passwd 用户名),如下图:
这时,再新建连接时,使用hpu就需要刚才设置的密码才能连接。
②在hpu用户权限下,修改密码(passwd),如下图:
5.6,锁定账户
锁定用户场景:root权限下,比如张三辞职了!需要冻结此账号,一旦冻结张三就不能再登录系统了。
通过命令:passwd -l hpu (其中l代表lock)
锁定之后,相应用户就无法登陆此服务器。
公司中一般员工拿不到root权限
6,Linux用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(运维,测试,开发,root)。
6.1,增加用户组(groupadd)
创建名为hhh的用户组,如下图:
查看用户组在 /etc/group,如下图:
其中,groupadd可以指定选项:
6.2,删除用户组(groupdel)
删除hhh2,删除之后查看 /etc/group 就没有hhh2的记录了
6.3,修改用户组(groupmod)
组id改为666,组名字改为newhhh,如下图:
7,Linux磁盘管理
7.1,df命令
df命令:(列出文件系统整体的磁盘使用量),可以结合以下一些选项使用:
df命令常见选项:
- -h:以易于阅读的MB、GB、KB等为容量单位进行查看
- -k :以 KB 的容量显示各文件系统
- -m :以 MB 的容量显示各文件系统
- -a :列出所有的文件系统,包括系统隐藏的
- -H :以 M=1000K 取代 M=1024K 的进位方式
- -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出
7.2,du命令
du命令(检查磁盘空间使用量),可以结合以下一些选项使用:
- -a:显示全部,包括隐藏的
- -s :列出总量而已,而不列出每个各别的目录占用容量
- -S :不包括子目录下的总计,与 -s 有点差别
- -m :以 MB 列出容量显示;
- -k :以 KB 列出容量显示;
- -h :以人们较易读的容量格式 (G/M) 显示;
7.3,磁盘的挂载(mount)和卸除(umount)
挂载使用mount命令:
- mkdir /mnt/kuang:表示创建目录kuang
- mount /dev/hhh /mnt/kuang:表示把/dev/hhh挂载到/mnt/kuang下
卸除使用umount命令:(可用通过-f表示强制卸除)
8,Linux进程管理
- Linux中每一个程序都有一个进程,每一个进程都有一个id。
- 每一个进程都有一个父进程
- 进程可以有两种存在方式:前台、后台
- 一般服务都是后台运行的,基本的程序都是前台运行的!
8.1,查看当前系统中正在执行的进程信息(ps)
①可用通过ps -help 或 man ps查看此命令的帮助信息
②在Linux中 “|” 被称为管道符,A|B表示A命令的结果作为输出操作B命令
ps命令,参数选项如下:
- -a :显示当前终端运行的所有进程信息
- -u :以用户的信息显示进程
- -x :显示后台运行进程的参数
ps -aux:查看所有的进程
grep表示查找文件中符合条件的字符串。 ps -aux|grep mysql:只查看MySQL相关的进程。表示把所有的进程都查出来,然后过滤其他的。 (此类命令需要经常使用)
8.2,查看父进程信息(pstree)
查看父进程信息(pstree),常用参数如下:
pstree -pu :就可以清楚的查看父进程信息(树状显示)
8.3,结束进程(kill)
如果平时写的Java代码死循环了,就可以结束进程!
kill -9 进程id:表示强制停止相应的进程
|