Linux学习笔记

      • 2.1.1,列出目录(ls)
      • 2.1.2,切换目录(cd)
      • 2.1.3,创建目录(mkdir)
      • 2.1.4,删除目录(rmdir)
      • 2.1.5,复制文件或目录(cp)
      • 2.1.6,移除文件或目录(rm)
      • 2.1.7,移动、重命名文件或目录(mv)
    • 2.2,文件属性查看和修改
      • 2.2.2,修改文件属组(chgrp)
      • 2.2.2,修改文件属主(chown)
      • 2.2.3,更改文件的九个属性(chmod)
      • 2.3.1,可用于读取文件内容
    • 5.1,添加用户(useradd)
    • 5.2,删除用户(userdel)
    • 5.3,修改用户(usermod)
    • 5.5,用户的密码设置问题(passwd)
    • 6.1,增加用户组(groupadd)
    • 6.2,删除用户组(groupdel)
    • 6.3,修改用户组(groupmod)
    • 8.1,查看当前系统中正在执行的进程信息(ps)
    • 8.2,查看父进程信息(pstree)
    • 8.3,结束进程(kill)

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命令不能删除不为空的文件夹。

,如下图:

2.1.5,复制文件或目录(cp)

格式:cp 原来的地方 新的地方

  • -i 参数:覆盖已有文件前,提示用户确认,是否进行覆盖。
  • –r 参数:递归复制目录,即复制目录下所有层级的子目录及文件。

复制文件:

复制之后如果再次复制会询问是否覆盖,如下图:

复制目录:

-r 表示递归的意思。此处为递归复制。

2.1.6,移除文件或目录(rm)

  • -f参数:忽略不存在的文件(强制删除,不出现警告)。f表示force
  • -r参数:递归删除目录
  • -i参数:互动,询问是否删除。i表示interaction

rm -rf /*:r、f两参数结合表示删除系统根目录下的所有内容。即删库跑路!!!不建议使用。

2.1.7,移动、重命名文件或目录(mv)

  • -f参数:表示强制移动,不出现警告

  • -u参数:复制过去如果重复,则只替换已经更新过的文件

  • 移动回去:

mv命令还可以重命名文件。

2.2,文件属性查看和修改

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

2.2.1,文件属性介绍

文件详细属性查看,以下两种方式都可以:

  • ll
  • ls -l

我们在上面已经介绍了 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 )

chgrp -R root www

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

2.2.2,修改文件属主(chown)

修改文件属组格式:chown -R 属主名 文件名( chown即change owner )

chown -R root www

把属组和属主改回来:

chown可以同时修改属主和属组!!!:chown -R 属主名:属组名 文件名

chown -R www:www www

2.2.3,更改文件的九个属性(chmod)

此时如果想要 更改属性 ,也是可以的,使用的就是 chmod 。

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

①使用数字更改属性(常用)

  • r:4
  • w:2
  • x:1

如果想要设置所有用户均为可读可写可操作(rwxrwxrwx),即使用 chmod 777 文件名

其中每一个7都代表rwx三个的值相加。如数字6则代表可读可写不可执行。

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx—] 分数则是:

owner = rwx = 4+2+1 = 7group = rwx = 4+2+1 = 7others= --- = 0+0+0 = 0

使用命令: chmod 770 filename

演示:

2.3,文件查看命令

注意:CentOS 7的网络配置目录:etc/sysconfig/network-scripts下

(注意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(软链接会失效,类似快捷方式),如下图:

4,Vim编辑器

  • Vim是从 vi 发展出来的一个文本编辑器
  • Vim中代码补完、编译及错误跳转等方便编程的功能特别丰富,在Linux在程序员中被广泛使用
  • Vim中查看内容、编辑内容和保存内容十分重要

vim 文件名:如果此文件存在,就进入修改此文件;如果文件不存在,就会新建此文件

通过 vim linuxstudy.txt 创建一个linuxstudy.txt文件

基本上 vi/vim 共分为三种模式,分别是 命令模式 , 输入模式 和 底线命令模式 。

通过例子理解三种模式:

①用户刚进入Vim即进入了 命令模式 ,如下图:

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

  • i 表示切换到输入模式,以输入字符

  • x 表示 删除当前光标所在处的字符

  • : 表示切换到底线命令模式,以在最底一行输入命令

②在命令模式中 使用 i 键进入输入模式 (insert),如下图:

③命令模式下 使用 :进入底线命令模式 ,如下图:

使用esc键:把输入模式切换回命令模式

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

  • q 退出程序

  • w 保存文件

使用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 -选项 用户名:添加用户

其中选项有很多,如:

  • -m:自动创建这个用户的主目录。如创建用户名hzbhzb,就会在home目录下创建此目录

  • -c: comment ,指定一段注释性描述

  • -g: group用户组 ,指定用户所属的用户组

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

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

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

Linux中一切皆为文件,这里的添加用户说白了就是往某一个文件(/etc/passwd)中写入用户的信息!如下图:

每条信息显式的格式为:

用户名 : 口令(登陆密码,不可见): 用户标识号 : 组标识号 : 注释性描述 : 主目录 : 登录shell

5.2,删除用户(userdel)

删除用户的时候一般将他的目录也一并删除(通过 -r 参数指定)

删除之后,配置文件/etc/passwd中的hzbhzb记录也被删除。

5.3,修改用户(usermod)

修改账户常见参数(和useradd的一样):

  • -m:自动创建这个用户的主目录。如:创建用户名hzbhzb,就会在home目录下创建此目录

  • -c: comment ,指定一段注释性描述

  • -g: group用户组 ,指定用户所属的用户组

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

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

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

通过useradd添加一个hpu用户,然后对其进行修改(通过-d指定用户主目录),如下图:

5.4,切换用户(su)

su hpu :切换搭到hpu用户,如下图:

还可以通过exit退回root用户,如下图:

注意:

在阿里云买完服务器连接之后主机名为一串无规则字符,如下图:

此主机名可以进行查看和临时修改:

  • hostname:查看主机名
  • hostname 新主机名,临时修改为新主机名

5.5,用户的密码设置问题(passwd)

我们一般通过root创建用户的时候,需要配置密码!

①root权限给用户hpu设置密码(passwd 用户名),如下图:

这时,再新建连接使用hpu连就需要刚才设置的密码才能连接

②在hpu用户权限下,修改密码(passwd),如下图:

5.6,锁定账户

root权限下,比如张三辞职了!冻结此账号,一旦冻结张三就不能登录系统了。

通过命令:passwd -l hpu (其中l代表lock)

锁定之后,相应用户就无法登陆此服务器。

公司中一般员工拿不到root权限

6,Linux用户组管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(运维,测试,开发,root)。

6.1,增加用户组(groupadd)

创建名为hhh的用户组

查看用户组在 /etc/group

其中,groupadd可以指定选项:

  • -g GID 添加用户的时候,指定新用户组的组标识号(组id)

    注意:如果组id不指定,默认是自增1

  • -G:添加用户的时候,给用户分配组

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

6.2,删除用户组(groupdel)

删除hhh2,删除之后查看 /etc/group 就没有hhh2的记录了

6.3,修改用户组(groupmod)

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

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

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

组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表示强制卸除)

  • umount -f /dev/hhh

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),常用参数如下:

  • -p 显示id
  • -u 显示用户组

pstree -pu :就可以清楚的查看父进程信息(树状显示)

8.3,结束进程(kill)

如果平时写的Java代码死循环了,就可以结束进程!

kill -9 进程id:表示强制停止进程

Java常用的Linux命令相关推荐

  1. Java程序员最常用的Linux命令

    大家都知道,Linux系统提供了非常多非常多的命令或工具,这些命令都各有所长,都是系统需要的.但我们精力有限,要掌握全部的命令不太现实,所以只需要掌握其中部分常用的命令即可.这里,我就从一个Java程 ...

  2. 作为一个java程序员,常用的linux命令(越攒越多)

    本篇记录我在工作中不断遇到的常用的linux命令,并进行总结,时常更新! 1. 升级服务时先停止服务,然后进行替换 linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 netstat ...

  3. java jcsh执行linux命令,java jcsh执行linux命令

    java jcsh执行linux命令 [2021-02-03 01:26:29]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&q ...

  4. java如何调用linux命令_java程序中如何调用linux命令

    java程序中如何调用linux命令 作为一个Java开发人员,有些常用的Linux命令必须掌握.即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令.因为很多服 ...

  5. 测试常用的Linux命令

    测试常用的Linux命令 背景: 无论哪种测试, 在项目测试阶段, 都需要去检查服务端各类微服务运行和日志情况. 服务端基本都以linux为主, 中小企业服务端基本已经云端化. 由此可见,与服务端打交 ...

  6. 工作中整理的常用的Linux命令

    工作中常用的linux命令整理 文章目录 1.单引号和双引号的区别: 2.关机:shutdown -h now | init 0 | poweroff 3.重启:shutdown -r now | r ...

  7. 每天一个linux命令(61):vi命令 /企业常用的linux命令清单

    vi/vim 的使用 基本上 vi/vim 共分为三种模式,分别是一般模式.编辑模式与指令列命令模式. 这三种模式的作用分别是: 一般模式: 以 vi 打开一个档案就直接进入一般模式了(这是默认的模式 ...

  8. IC设计Linux设置文件夹颜色,IC设计中常用的Linux命令

    一个合格ICer,必需要熟练掌握常用的Linux命令.今天来介绍一下IC设计中常用的Linux命令.(管理员相关的命令后面另写一篇文章.) Linux常见命令一览 文件及目录操作 cd  pwd  l ...

  9. gitlab ci 自动化部署_前端gitLab加jenkins自动化构建和部署,以及服务器常用的linux命令行操作,免密登录...

    常用的linux命令行操作 将项目部署到服务器后,需要查看文件是否已经部署成功,已经对文件进行增删改查操作,就需要用到命令行操作,常用操作如下: ll 罗列出当前文件或目录的详细信息,含有时间.读写权 ...

最新文章

  1. CTF web题总结--http header 修改、cookie注入
  2. 如何保存文件为c语言格式,急求如何将下列C语言程序数据存储到文件中?
  3. 初学者不建议月python吗_9.python入门
  4. Xshell操控kali-linux虚拟机
  5. Spring Boot 2 实践记录之 条件装配
  6. Vue封装下拉框组件时,为document绑定原生事件addEventlistener(click“),切换页面之后事件还未被摧毁...
  7. UI实用素材|购物车界面不同设计,可临摹的好模板
  8. 支持“***Context”上下文的模型已在数据库创建后发生更改
  9. Linux中源码的安装
  10. Verilog实现千兆以太网传输
  11. termux自动启动ssh
  12. 一不小心画了 24 张图剖析计网应用层协议!
  13. 2019年保研夏令营时间经验汇总
  14. ubuntu14.04 desktop 32-bit kvm装windows xp
  15. Linux内核部件分析 设备驱动模型之driver ---mark 详细
  16. SrpingCloud系统学习 - 熔断机制
  17. 基于cobra的go语言命令行解析器
  18. 【STM32】5分钟了解STM32的串口通信
  19. 跟着鸟哥学linux【一】
  20. 韩钰带你走进电商世界之淘宝网店卖家快捷短语大全!

热门文章

  1. 党旗飘飘平台正确打开方法 | JS定时点击按钮
  2. 计算机网络管理员中级操作技能考核试卷,OSTA计算机网络管理员中级操作技能考核试卷正文Z1...
  3. 超人总动员挺好看的 推荐各位去看看
  4. PVE 安装群晖img文件 non-existent or non-regular file故障解决办法
  5. 彻底弄懂LSH之simHash算法
  6. [转发]Android视频技术探索之旅:美团外卖商家端的实践
  7. 监狱长关押囚犯问题.
  8. 关于微信公众平台服务器配置Token
  9. Android NFC
  10. 中欧应携手合作制定5G标准