0
点赞
收藏
分享

微信扫一扫

【CentOS 7 64位】linux文件系统&命令行操作

alanwhy 2022-01-20 阅读 64

【CentOS 7 64位】linux文件系统&命令行操作

本文图片来源网络或学术论文,文字部分来源网络与学术论文,仅供学习使用。

目录

一、linux的系统架构

二、文件命令行操作

1、网络连接命令

-ifconfig命令

-route命令

-ping命令

-traceroute命令

2、文件处理命令

常见文件处理命令:

-ls命令:

-cd命令:

-pwd命令:

-mkdir命令参数:

-rmdir命令:

-cp命令:

-rm命令:

-mv命令:

-touch命令:

-查看文件内容命令:

-cat命令:

-nl命令:

-more命令:

-head&tail命令:

3、权限管理命令

chgrp(change group):更改文件属组

chown (change owner) : 修改所属用户与组。

chmod (change mode) : 修改用户的权限。 (文件的9个属性)

4、文件搜索命令

-find命令

-which命令

-whereis命令

-locate命令

5、用户管理命令

用户账号的添加

用户账号的删除

用户账号的修改

用户密码管理passwd命令

用户组管理

6、压缩解压命令

-tar命令:

-gzip命令:

7、关机重启命令

三、VM/VIM操作

命令模式:

插入模式:

底线命令模式:

四、其他命令

-yum命令

-apt命令


一、linux的系统架构

目前市面上较知名的发行版有:UbuntuRedHatCentOSDebianFedoraSuSEOpenSUSEArch LinuxSolusOS 等。

 ls /     #查看树状根目录,/表示根目录

.         #访问当前目录或者用./访问

..        #访问当前目录的上一级目录或者用../访问

系统启动必须的,不能随意修改:

  1. /boot:存放启动 Linux 时使用的一些核心文件,包括连接文件以及镜像文件。
  2. /etc:Etcetera(等等),存放所有的系统管理所需要的配置文件和子目录。
  3. /lib:Library(库)的缩写,存放系统最基本的动态连接共享库,作用类似于 Windows的DLL文件。几乎所有的应用程序都需要用到这些共享库。
  4. /sys:是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统sysfs 。sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
  5. /bin:Binaries (二进制文件),存放最经常使用的命令。
  6. /sbin:Superuser Binaries超级用户的二进制文件,存放系统管理员使用的系统管理程序。
  7. /srv:存放一些服务启动之后需要提取的数据。

外部文件管理目录:

  1. /dev :Device(设备),存放Linux 的外部设备,Linux访问设备和访问文件的方式是相同的。
  2. /media:linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
  3. /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

系统用户目录:

  1. /root:该目录为系统管理员,也称作超级权限者的用户主目录。
  2. /home:用户的主目录,每个用户都有一个自己的目录,如alice、bob 和eve是三个用户的主目录。
  3. /usr:unix shared resources(共享资源),用户的很多应用程序和文件都放在这个目录下,类似于windows的program files目录。
  4. /usr/bin:系统用户使用的应用程序。
  5. /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
  6. /usr/src:内核源代码默认的放置目录。

临时文件存放的目录:

  1. /tmp:temporary(临时),用来存放一些临时文件的。
  2. /var:var 是 variable(变量),存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
  3. /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件会被删掉或清除。如果你的系统上有/var/run 目录,应该让它指向 run。

其他目录:

  1. /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  2. /opt:optional(可选),是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下,默认是空的。
  3. /proc:Processes(进程),是一种伪文件系统(即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  4. /selinux:是Redhat/CentOS所特有的目录,Selinux 是一个安全机制,类似于windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

二、文件命令行操作

Linux的命令格式:命令 [-选项] [参数]

1、网络连接命令

-ifconfig命令

查看当前服务器的网络连接情况,ip地址,网关和掩码等。

需要以root身份登录或使用sudo

常用参数:

up 启动指定网络设备/网卡。

down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。

arp 设置指定网卡是否支持ARP协议。-

promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包

-allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包

-a 显示全部接口信息

-s 显示摘要信息(类似于 netstat -i)

add 给指定网卡配置IPv6地址

del 删除指定网卡的IPv6地址

mtu<字节数> 设置网卡的最大传输单元 (bytes)

netmask<子网掩码> 设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。

tunel 建立隧道

dstaddr 设定一个远端地址,建立点对点通信

-broadcast<地址> 为指定网卡设置广播协议

-pointtopoint<地址> 为网卡设置点对点通讯协议

multicast 为网卡设置组播标志address 为网卡设置IPv4地址

txqueuelen<长度> 为网卡设置传输列队的长

启动关闭指定网卡:

ssh登陆linux服务器操作要小心,关闭了就不能开启了,除非有多网卡。

ifconfig eth0 up

ifconfig eth0 down

配置网卡的ip地址、网关、子网掩码:

ifconfig eth0 192.168.1.56

ifconfig eth0 192.168.1.56 netmask 255.255.255.0

ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255

启用和关闭ARP协议:

ifconfig eth0 arp

ifconfig eth0 -arp

设置最大传输单元:

ifconfig eth0 mtu 1500   设置能通过的最大数据包大小为 1500 bytes

-route命令

route命令用于显示和操作IP路由表(show / manipulate the IP routing table)。

要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。

显示当前路由:

route

route -n

添加网关/设置网关:

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0     

增加一条 到达244.0.0.0的路由

屏蔽一条路由:

route add -net 224.0.0.0 netmask 240.0.0.0 reject

删除路由记录:

route del -net 224.0.0.0 netmask 240.0.0.0

route del -net 224.0.0.0 netmask 240.0.0.0 reject

-ping命令

Linux下ping不会自动终止,需要按ctrl+c终止或者用参数-c指定要求完成的回应次数。

格式:ping [参数] [主机名或IP地址]

-d 使用Socket的SO_DEBUG功能。

-f  极限检测。大量且快速地送网络封包给一台机器,看它的回应。

-n 只输出数值。

-q 不显示任何传送封包的信息,只显示最后的结果。

-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。

-R 记录路由过程。

-v 详细显示指令的执行过程。

-c 数目:在发送指定数目的包后停止。

-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。

-I 网络界面:使用指定的网络界面送出数据包。-l 前置载入:设置在送出要求信息之前,先行发出的数据包。

-p 范本样式:设置填满数据包的范本样式。

-s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。

-t 存活数值:设置存活数值TTL的大小。

ping -c 10 -i 0.5 www.baidu.com  每隔 0.5 秒的时间间隔,ping网址,到达 10 次数后退出。

-traceroute命令

traceroute可以知道信息从计算机到互联网另一端的主机数据经过什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。Linux系统中,我们称之为traceroute,在Windows中为tracert。

traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。

格式:traceroute[参数][主机]

traceroute hostname  (相当于windows真的tracert hostname)

traceroute www.baidu.com      traceroute 用法简单、最常用的用法

 (用法参见https://www.yiibai.com/linux/traceroute.html)

2、文件处理命令

常见文件处理命令:

  • ls(英文全拼:list files): 列出目录及文件名
  • cd(英文全拼:change directory):切换目录
  • pwd(英文全拼:print work directory):显示目前的目录
  • mkdir(英文全拼:make directory):创建一个新的目录
  • rmdir(英文全拼:remove directory):删除一个空的目录
  • cp(英文全拼:copy file): 复制文件或目录
  • rm(英文全拼:remove): 删除文件或目录
  • mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
  • man [命令] :来查看各个命令的使用文档,如 :man cp。

-ls命令:

-a :全部的文件,连同隐藏文件( 即为开头为 . 的文件) 一起列出来

-d :-ld,仅列出目录本身,而不是列出目录内的文件数据

-l :长数据串列出,包含文件的属性与权限等等数据

-al:将目录下的所有文件列出来(含属性与隐藏档)

/:查看系统所有的目录

-lh    显示文件大小

ls | sed  "s:^:`pwd`/:"       查看文件的绝对路径。

ls -l * |grep "^-"|wc -l      计算当前目录下的文件个数

ls -l * |grep "^d"|wc -l      计算当前目录下的目录个数

ls -ltr s*      列出目前工作目录下所有名称是以s开头的档案,越新的排越后面。

ls -l  /usr/local/ | grep "^d"      列出 /usr/local/ 文件下面的子目录详细情况

ls -F /usr/local/ | grep /$      列出 /usr/local/ 文件下面的子目录

在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

  •  d 则是目录
  •  - 则是文件;
  •  l 则表示为链接文档(link file);
  •  b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  •  c 则表示为装置文件里面的串行端口设备,如键盘鼠标(一次性读取装置)。

rwx 的三个参数的组合中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 。

 

 Linux文件属主和属组:一个文件有其所有者和对该文件具有所有权的用户。在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。Linux系统按文件所有者user文件所有者同组用户group其他用户other来规定了不同的文件访问权限。

 

-cd命令:

cd  ..   去到目前的上一级目录

cd ~    回到自己的home目录

cd  ./root/Documents 切换到Documents目录下

-pwd命令:

pwd查看当前工作目录的完整路径。一般情况下不带任何参数,但如果目录是链接时:格式:pwd -P  显示出实际路径,而非使用连接(link)路径。

-mkdir命令参数:

格式:rmdir [选项] 目录…

-m :配置文件的权限,直接配置。

-p, --parents  可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。

-rmdir命令:

-p :从该目录起,一次删除多级空目录

rmdir -p f1/f2/f3/f4  同时删除一系列目录

rmdir 仅能删除空的目录,你可以使用 rm 命令来删除非空目录。

-cp命令:

cp [选项]... 源... 目录

-a  为每个已存在的目标文件创建备份

-b  类似 --backup 但不接受参数 --copy-contents 在递归处理是复制特殊文件内容

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

-f 为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次(当 -n 选项 存在时则不需再选此项)

-i 覆盖前询问(使前面的 -n 选项失效)

-H 跟随源文件中的命令行符号链接

-l 链接文件而不复制

-L 总是跟随符号链接

-n 不要覆盖已存在的文件(使前面的 -i 选项失效)

-P 不跟随源文件中的符号链接

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

-rm命令:

-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;

-i :互动模式,在删除前会询问使用者是否动作

-r :指示rm将参数中列出的全部目录和子目录均递归地删除。

-mv命令:

mv [选项] 源文件或目录 目标文件或目录

-b:若需覆盖文件,则覆盖前先行备份。

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

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

-u :若目标文件已经存在,且 source 比较新,才会更新(update)

-t :即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

mv test.log new-test.log  文件改名将文件text.log重命名为new-text.log

mv f3 f33 将目录f3重命名为f33

mv test.txt testdir   将文件test.txt移动(剪切)到testdir目录中。

mv * ../    移动当前文件夹下的所有文件到上一级目录。

-touch命令:

touch [选项]… 文件…

-a,--time=atime,--time=access或--time=use 只更改存取时间。

-c 或--no-create不建立任何文档。

-d 使用指定的日期时间,而非现在的时间。

-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

-m 或--time=mtime或--time=modify  只更改变动时间。

-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。-t 使用指定的日期时间,而非现在的时间。

touch /root/Doucuments/f1/1.txt   给定绝对路径创建文件

-查看文件内容命令:

-cat命令:

cat  由第一行开始显示文件内容  

tac  从最后一行开始显示,可以看出 tac 是 cat 的倒着写!

格式:cat [选项] [文件]…

-n  对输出的所有行编号,由1开始对所有输出的行数编号

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

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

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

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

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

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

cat -n mylog1.log mylog2.log   把 mylog1.log 的文件内容加上行号后输入 mylog2.log 这个文件里。

cat -b mylog1.log mylog2.log log.log   把 mylog1.log 和 mylog2.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。

-nl命令:

nl   可以将输出的文件内容自动的加上行号。其默认的结果与 cat -n不同,nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。

格式:nl [选项]… [文件]…

-b  :指定行号指定的方式,主要有两种:

-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);

-b t :如果有空行,空的那一行不要列出行号(默认值);

-n  :列出行号表示的方法,主要有三种:

-n ln :行号在萤幕的最左方显示;

-n rn :行号在自己栏位的最右方显示,且不加 0 ;

-n rz :行号在自己栏位的最右方显示,且加 0 ;

-w :行号栏位的占用的位数。

-p 在逻辑定界符处不重新开始计算。

nl -b a log.log   用 nl 列出 log.log 的内容,空本行也加上行号。

-more命令:

功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。more会以一页一页的显示方便使用者逐页阅读。

more /etc/ori.list 

less 与 more 类似,但是比 more 更好的是,他可以往前翻页!

less /etc/ori.list 

-head&tail命令:

head 只看头几行  head [-n number] 文件

tail 只看尾巴几行  tail [-n number] 文件

3、权限管理命令

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

chgrp(change group):更改文件属组

chgrp [-R] 属组名 文件名

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

-c 当发生改变时输出调试信息

-f 不显示错误信息

-v 运行时显示详细的处理信息

chgrp -v bin run.py    将run.py文件改为bin群组

chown (change owner) : 修改所属用户与组。

chown [–R] 属主名 文件名

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

chown user1 install.log   将install.log的拥有者改为user1这个账号

chown root:root install.log    将install.log的拥有者与群组改回为root

chmod (change mode) : 修改用户的权限。 (文件的9个属性)

Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。

(1)数字方法变更属性

文件的权限字符为: -rwxrwxrwx ,三个三个一组,可以使用数字来代表各个权限,各权限的分数对照表为:(r:4, w:2, x:1, -:0)。

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

owner = rwx = 4+2+1 = 7  

group = rwx = 4+2+1 = 7

others= --- = 0+0+0 = 0

所以设定权限的变更时,该文件的权限数字就是 770。

变更权限的指令 chmod 的语法是这样的:

chmod [-R] xyz 文件或目录

.bashrc 文件权限变更命令为:chmod 770 .bashrc  

(2)字符方法变更属性

使用 u, g, o 来代表三种身份的权限。user:用户,group:组,others:其他,a 则代表 all。

要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 。

4、文件搜索命令

-find命令

find - 实际搜寻硬盘查询文件名称。

用来在指定目录下查找文件。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。

格式:find   pathname   -options [-print -exec -ok ...]

  • pathname 表示所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。,~表示home目录。
  • print 将匹配的文件输出到标准输出。
  • exec 对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ {  } \;     注意{   }和\;之间的空格。
  • ok 和exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

常用参数option

-name   按照文件名查找文件。

-perm   按照文件权限来查找文件。

-user   按照文件属主来查找文件。

-group  按照文件所属的组来查找文件。

-nogroup  查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。-nouser   查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。

-newer file1 ! file2  查找更改时间比文件file1新但比文件file2旧的文件。

-type  查找某一类型的文件,诸如:b - 块设备文件。d - 目录。c - 字符设备文件。p - 管道文件。l - 符号链接文件。f - 普通文件。

-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。

find . -name "*.cfg"                      .表示当前目录,*表示通配符

find . -name "*.cfg"   -print

find /etc -name "host*"                查找文件名以host开头的文件

find . -name "[A-Z]*" -print 前目录及子目录中文件名以一个大写字母开头的文件

find . -type f -name "*.cfg"          查找当目录,以.cfg结尾的普通文件

find . -type d | sort                        查找当前所有目录并排序

find . -size +1000c -print    查找当前目录大于1K的文件

find . -size 1000c -print           查找当前目录等于1K的文件

find . -size +1000000c -print    查找当前目录大于1M的文件

find / -name "CON.FILE" -depth -print      从文件系统的根目录开始,查找一个名为CON.FILE的文件。

查找某个修改时间文件的命令:

-amin n   查找系统中最后n分钟访问的文件

-atime n  查找系统中最后n*24小时访问的文件

-cmin n   查找系统中最后n分钟被改变文件状态的文件

-ctime n  查找系统中最后n*24小时被改变文件状态的文件

-mmin n   查找系统中最后N分钟被改变文件数据的文件

-mtime n  查找系统中最后n*24小时被改变文件数据的文件

find -atime  2     找48小时内修改过的文件

exec参数:

find命令查找出结果后如需进一步操作就要用到exec参数。在使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,exec选项后面跟随着所要执行的命令或脚本,然后是一对{ },一个空格和一个\,最后是一个分号。

格式:find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;

find . -type f -exec ls -l {} \;     匹配当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。

find . -name "*.log" -mtime +5 -ok rm {} \;   在当前目录中查找所有文件名以.log结尾、更改时间在5日以上的文件,并删除它们,在删除之前先给出提示。 按y键删除文件,按n键不删除。

find . -name "*.log" -exec mv {} .. \;     查找文件移动到上级目录

xargs参数:

在使用 find 命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

find . -type f -print | xargs file    查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件。

 

-which命令

which - 查看可执行文件的位置。

-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

-p  与-n参数相同,但此处的包括了文件的路径。

-w  指定输出时栏位的宽度。

-V  显示版本信息

which f1               查找文件、显示命令路径

which adduser      找出 adduser 命令  adduser 是 bash 内建的命令,which 默认是找 PATH 内所规范的目录。

 

-whereis命令

whereis - 查看文件的位置。

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)。

格式:whereis [-bmsu] [BMS 目录名 -f ] 文件名

参数:

-b - 定位可执行文件。

-m - 定位帮助文件。

-s - 定位源代码文件。

-u - 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

-B - 指定搜索可执行文件的路径。

-M - 指定搜索帮助文件的路径。

-S - 指定搜索源代码文件的路径。

whereis python                 将和Python文件相关的文件都查找出来

whereis -b python            只将二进制文件查找出来

-locate命令

locate - 配合数据库查看文件位置。

locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。

格式:locate [选择参数] [样式]

locate pwd                         查找和pwd相关的所有文件

locate /etc/sh                     搜索etc目录下所有以sh开头的文件

5、用户管理命令

用户账号的添加

格式 :useradd  选项  用户名

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

-d 目录 指定用户主目录,如果此目录不存在,则同时使用

-m选项,可以创建主目录。

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

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

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

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

useradd –d  /home/user1 -m user1

创建了一个用户user1,其中-d和-m选项用来为登录名user1产生一个主目录 /home/user1(/home为默认的用户主目录所在的父目录)。

用户账号的删除

userdel  选项  用户名

-r,把用户的主目录一起删除。

userdel -r user1

用户账号的修改

usermod  选项  用户名

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

-d 目录 指定用户主目录,如果此目录不存在,则同时使用

-m选项,可以创建主目录。

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

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

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

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

用户密码管理passwd命令

用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

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

格式:passwd  选项  用户名

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

-u 口令解锁。

-d 使账号无口令。

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

root修改user的密码:

passwd user

new password:*******

re-enter new password:*******

user修改自己的密码

-passwd

old password:******

new password:*******

re-enter new password:*******

用户组管理

groupadd  选项  用户组      增加一个新的用户组

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

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

groupdel 用户组              删除一个已有的用户组

groupmod 选项 用户组         修改用户组的属性

cat /etc/passwd     Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。

6、压缩解压命令

-tar命令:

用来压缩和解压文件。tar本身不具有压缩功能,它是调用压缩功能实现的。

格式:tar[必要参数][选择参数][文件]

必要参数有如下:

-A 新增压缩文件到已存在的压缩

-B 设置区块大小

-c 建立新的压缩文件

-d 记录文件的差别

-r 添加文件到已经压缩的文件

-u 添加改变了和现有的文件到已经存在的压缩文件

-x 从压缩的文件中提取文件

-t 显示压缩文件的内容

-z 支持gzip解压文件

-j 支持bzip2解压文件

-Z 支持compress解压文件

-v 显示操作过程

-l 文件系统边界设置

-k 保留原有文件不覆盖

-m 保留文件不被覆盖

-W 确认压缩文件的正确性

可选参数如下:

-b 设置区块数目

-C 切换到指定目录

-f 指定压缩文件

--help 显示帮助信息

--version 显示版本信息。

tar文件格式

解包:tar xvf FileName.tar

打包:tar cvf FileName.tar DirName

(注:tar是打包,不是压缩!)

.gz文件格式

解压1:gunzip FileName.gz

解压2:gzip -d FileName.gz

压缩:gzip FileName

打包后,以 gzip 压缩

.tar.gz 和 .tgz

解压:tar zxvf FileName.tar.gz

压缩:tar zcvf FileName.tar.gz DirName

.bz2文件格式

解压1:bzip2 -d FileName.bz2

解压2:bunzip2 FileName.bz2

压缩: bzip2 -z FileName

打包后,以 bzip2 压缩

.tar.bz2文件格式

解压:tar jxvf FileName.tar.bz2

压缩:tar jcvf FileName.tar.bz2 DirName

.bz文件格式

解压1:bzip2 -d FileName.bz

解压2:bunzip2 FileName.bz

压缩:未知

.tar.bz文件格式

解压:tar jxvf FileName.tar.bz

压缩:未知

.Z文件格式

解压:uncompress FileName.Z

压缩:compress FileName

.tar.Z文件格式

解压:tar Zxvf FileName.tar.Z

压缩:tar Zcvf FileName.tar.Z DirName

.zip文件格式

解压:unzip FileName.zip

压缩:zip FileName.zip DirName

.rar文件格式

解压:rar x FileName.rar

压缩:rar a FileName.rar DirName

tar  -cvf  log1.tar  log1.log       将log1.log文件打包成log1.tar包

tar -ztvf log2.tar.gz                  查阅上述 tar包内有哪些文件

tar -zxvf /home/Documents/log2.tar.gz     将 tar 包解压

tar -zxvf  /home/Document/mylog.tar.gz   log2020.log      只将 /tar 内的 部分文件解压出来

-gzip命令:

gzip命令对文本文件有60%~70%的压缩率。

格式:gzip[参数][文件或者目录]

参数:

-a或--ascii  使用ASCII文字模式。

-c把压缩后的文件输出到标准输出设备,不去更动原始文件。

-d解开压缩文件。

-f强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。

-h在线帮助。

-l列出压缩文件的相关信息。

-L显示版本与版权信息。

-n压缩文件时,不保存原来的文件名称及时间戳记。

-N压缩文件时,保存原来的文件名称及时间戳记。

-q或不显示警告信息。

-r递归处理,将指定目录下的所有文件及子目录一并处理。

-S更改压缩字尾字符串。

-t测试压缩文件是否正确无误。

-v显示指令执行过程。

-V显示版本信息。

-num 用指定的数字num调整压缩的速度,

-1表示最快压缩方法(低压缩比)。

gzip *   把当前目录下的每个文件变为.gz压缩文件。

gzip -l * 显示前目录下的每个压缩文件的详细信息。并不解压。

gzip -dv *   把当前目录下的每个文件解压,并列出详细的信息

7、关机重启命令

shutdown     关机命令

shutdown –h now       立马关机  等于halt和poweroff

shutdown –h 20:25     系统会在20:25关机

shutdown –h +10        十分钟后关机

shutdown –r now        系统立马重启相当于reboot

reboot     重启

三、VM/VIM操作

Vim 是从 vi 发展出来的一个文本编辑器。基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)

 

命令模式:

用户刚刚启动 vi/vim即进入命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。

  • i 切换到输入模式,以输入字符。
  • x 删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。

插入模式:

在命令模式下按下i就进入了输入模式。在该模式下编辑文本内容。

  • ENTER,回车键,换行
  • ESC,退出输入模式,切换到命令模式
  • yy:复制游标所在的那一行(常用)
  • nyy:n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行
  • dd:删除游标所在的那一整行
  • ndd:n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行
  • p:p 为将已复制的数据在光标下一行贴上
  • P:P 则为贴在游标上一行
  • u:复原前一个动作。
  • x:x 为向后删除一个字符 (相当于 [del] 按键)
  • X:X 为向前删除一个字符(相当于 [backspace] 亦即是退格键)

底线命令模式:

在命令模式下按下:(英文冒号)就进入了底线命令模式。该模式下输入命令,常见的有:

  • :q       退出程序
  • :w          保存文件
  • :wq        保存文件并退出程序
  • :n1,n2s/word1/word2/g     n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2
  • :1,$s/word1/word2/g 或 :%s/word1/word2/g         从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2
  • :1,$s/word1/word2/gc 或 :%s/word1/word2/gc  从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!
  • :set nu  显示行号,设定之后,会在每一行的前缀显示该行的行号
  • :set nonu   取消行号
  • ESC,退出输入模式,切换到命令模式

四、其他命令

-yum命令

yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

格式:yum [options] [command] [package ...]

参数:options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。command:要进行的操作。package:安装的包名。

1. 列出所有可更新的软件清单命令:yum check-update

2. 更新所有软件命令:yum update

3. 仅安装指定的软件命令:yum install <package_name>

4. 仅更新指定的软件命令:yum update <package_name>

5. 列出所有可安裝的软件清单命令:yum list

6. 删除软件包命令:yum remove <package_name>

7. 查找软件包命令:yum search <keyword>

8. 清除缓存命令:

yum clean packages: 清除缓存目录下的软件包

yum clean headers: 清除缓存目录下的 headers

yum clean oldheaders: 清除缓存目录下旧的 headers

yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers

国内 yum 源:

网易(163)yum源:

首先备份/etc/yum.repos.d/CentOS-Base.repo

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

mv CentOS6-Base-163.repo CentOS-Base.repo

运行以下命令生成缓存

yum clean all

yum makecache

除了网易之外,国内还有其他不错的 yum 源,比如中科大和搜狐。

中科大的 yum 源,安装方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help/centos

sohu 的 yum 源安装方法查看: http://mirrors.sohu.com/help/centos.html

-apt命令

apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,apt 命令执行需要超级管理员权限(root)。

 格式: apt [options] [command] [package ...]

参数:options:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。command:要进行的操作。package:安装的包名。

apt 常用命令:

列出所有可更新的软件清单命令:sudo apt update

升级软件包:sudo apt upgrade

列出可更新的软件包及版本信息:apt list --upgradeable

升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade

安装指定的软件命令:sudo apt install <package_name>

安装多个软件包:sudo apt install <package_1> <package_2> <package_3>

更新指定的软件命令:sudo apt update <package_name>

显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>

删除软件包命令:sudo apt remove <package_name>

清理不再使用的依赖和库文件: sudo apt autoremove

移除软件包及配置文件: sudo apt purge <package_name>

查找软件包命令: sudo apt search <keyword>

列出所有已安装的包:apt list --installed

列出所有已安装的包的版本信息:apt list --all-versions

举报

相关推荐

0 条评论