LINUX_常用命令讲解

Linux大纲版本:CentOS7.0

下载路径:

第一节 Linux简介和安装

1.1 基础简介

Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机

1.2 发行版说明

Linux的发行版说简单点就是将Linux内核与应用软件做一个打包。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、TurboLinux、BluePoint、RedFlag、Xterm、SlackWare等

1.3 应用领域

今天各种场合都有使用各种Linux发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用LAMJ(Linux + Apache + MySQL + java)或LNMJ(Linux + Nginx+ MySQL + java)组合。
目前Linux不仅在家庭与企业中使用,并且在政府中也很受欢迎
巴西联邦政府由于支持Linux而世界闻名。
有新闻报道俄罗斯军队自己制造的Linux发布版的,做为G.H.ost项目已经取得成果.
印度的Kerala联邦计划在向全联邦的高中推广使用Linux。
中华人民共和国为取得技术独立,在龙芯过程中排他性地使用Linux。
在西班牙的一些地区开发了自己的Linux发布版,并且在政府与教育领域广泛使用,如Extremadura地区的gnuLinEx和Andalusia地区的Guadalinex。
葡萄牙同样使用自己的Linux发布版Caixa Mágica,用于Magalh?es笔记本电脑和e-escola政府软件。
法国和德国同样开始逐步采用Linux。

1.4 Linux和Windows的区别

比较 Windows Linux
界面 界面统一,外壳程序固定所有Windows程序菜单几乎一致,快捷键也几乎相同 图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux的终端机是从UNIX传承下来,基本命令和操作方法也几乎一致。
驱动程序 驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时很难支持。另外,有时硬件厂商未提供所需版本的Windows下的驱动,也会比较头痛。 由志愿者开发,由Linux核心开发小组发布,很多硬件厂商基于版权考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题(是否存在和安装方法)会一筹莫展。但是在开源开发模式下,许多老硬件尽管在Windows下很难支持的也容易找到驱动。HP、Intel、AMD等硬件厂商逐步不同程度支持开源驱动,问题正在得到缓解。
使用 使用比较简单,容易入门。图形化界面对没有计算机背景知识的用户使用十分有利。 图形界面使用简单,容易入门。文字界面,需要学习才能掌握。
学习 系统构造复杂、变化频繁,且知识、技能淘汰快,深入学习困难。 系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易。
软件 每一种特定功能可能都需要商业软件的支持,需要购买相应的授权。 大部分软件都可以自由获取,同样功能的软件选择较少。

1.5 Linux的安装

请参考Linux安装文档

1.6 远程登录

默认root用户没有密码,可以修改密码,切换用户,输入用户名:root,点击登录,打开终端(xshell,SecureCRT等)命令,输入:
password 
接着输入新密码,再确认输入即可。
如果需要进行远程登录,需要设置防火墙过滤22端口,当然也可以关闭防火墙

还有远程连接被拒绝,需要检查sshd是否开启
命令:
service sshd status   查看sshd的状态
service sshd start    启动sshd
service sshd stop     关闭
chkconfig | grep sshd   查看sshd的开启状态
chkconfig sshd on		开机自启

再进行远程连接的时候,需要启动sshd

第二节 Linux常用命令

2.1 文件管理

2.1.1 ls

Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

语法

 ls [-alrtAFR] [name...]

参数 :

  • -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
  • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  • -r 将文件以相反次序显示(原定依英文字母次序)
  • -t 将文件依建立时间之先后次序列出
  • -A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
  • -F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
  • -R 若目录下有文件,则以下之文件亦皆依序列出

常用实例

列出根目录()下的所有目录:

# ls /
bin               dev   lib         media  net   root     srv  upload  www
boot              etc   lib64       misc   opt   sbin     sys  usr
home  lost+found  mnt    proc  selinux  tmp  var

列出目前工作目录下所有名称是 s 开头的文件:

ls s*

列出目前工作目录下所有文本扩展名为*.txt 的文件:

ls *.txt

列出当前目录所有文件及目录,包含隐藏文件和目录

ls -a

2.1.2 ll

首先给出一张典型的显示结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bqLVp6DH-1579231852357)(media/20180904163912690-1556505736998.jpg)]

下面对其中的每一列进行详细的分析:

一、文件类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bnFDjNop-1579231852357)(media/20180904164007922.jpg)]

表示该文件的类型:

“-”表示普通文件;
“d”表示目录;
“l”表示链接文件;
“p”表示管理文件;
“b”表示块设备文件;
“c”表示字符设备文件;
“s”表示套接字文件;

二、文件属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-88LE2fQN-1579231852357)(media/20180904164026399.jpg)]

以back_init文件为例,其属性可分为三段:[rwx][rwx][r-x],其中:

第一段表示文件创建者/所有者对该文件所具有的权限,第二段表示创建者/所有者所在的组的其他用户所具有的权限,第三段表示其他组的其他用户所具有的权限。

r(Read,读取权限):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。

w(Write,写入权限):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
x(eXecute,执行权限):对文件而言,具有执行文件的权限;对目录来说,该用户具有进入目录的权限。
另外,这里还有2个很特殊的属性,平时不怎么常见,这里也顺带解释一下:

s或S(SUID,Set UID):可执行的文件搭配这个权限,便能得到特权,任意存取该文件的所有者能使用的全部系统资源。请注意具备SUID权限的文件,黑客经常利用这种权限,以SUID配上root帐号拥有者,无声无息地在系统中开扇后门,供日后进出使用。

t或T(Sticky):/tmp和 /var/tmp目录供所有用户暂时存取文件,亦即每位用户皆拥有完整的权限进入该目录,去浏览、删除和移动文件。

综合起来可得,对于back_init文件,其创建者/所有者具有可读可写可执行的权限,其创建者/所有者所在的组的其他用户具有可读可写可执行的权限,其他组的其他用户则具有可读可执行但不可写的权限。

三、目录/链接个数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nc4Uv0wk-1579231852358)(media/20180904164050206.jpg)]

对于目录文件,表示它的第一级子目录的个数。注意此处看到的值要减2才等于该目录下的子目录的实际个数。

比如这里的include目录下,其实是没有子目录的,所以应该是0,但是它这里却显示2,这是因为要加上.目录和…目录。在linux下,.目录表示当前目录,…目录表示上一级目录。

这也可以解释上图中第一行的.目录下的3和第二行…目录下的26。因为当前目录下有一个include目录,所以加上.目录和…目录这2个目录就等于3,所以第一行会显示3。而上一级目录共有24个目录,加上上一级目录的.目录和…目录这2个目录,所以这里的第二行显示的是26。

对于其他文件,表示指向它的链接文件的个数。

四、所有者及组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R24PtEFp-1579231852358)(media/20180904164106760.jpg)]

表示该文件的所有者/创建者(owner)及其所在的组(group)。

五、文件大小

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VVmzWz2L-1579231852359)(media/2018090416420591.jpg)]

如果是文件,则表示该文件的大小,单位为字节。
如果是目录,则表示该目录符所占的大小,并不表示该目录下所有文件的大小。

六、修改日期

该文件最后修改的日期时间。

七、文件名称

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EW51gBcr-1579231852359)(media/20180904164225429.jpg)]

文件名,无需多说。

八、字体颜色

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lv3ZuxAF-1579231852360)(media/20180904164240337.jpg)]

在大多数的linux shell窗口中,还能用颜色来区分不同文件的属性:
灰白色表示普通文件;
亮绿色表示可执行文件;
亮红色表示压缩文件;
灰蓝色表示目录;
亮蓝色表示链接文件;
亮黄色表示设备文件;

2.1.3 cd

Linux cd命令用于切换当前工作目录至 dirName(目录参数)。

其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。

另外,"~" 也表示为 home 目录 的意思,"." 则是表示目前所在的目录,"…" 则表示目前目录位置的上一层目录。

语法

cd [dirName]

dirName:要切换的目标目录。

实例

cd切换目录
	cd /usr	 切换到usr目录
	cd ..	 切换到上一层目录
	cd ../.. 跳到目前目录的上上两层
	cd /	 切换到系统根目录
	cd ~	 切换到用户主目录
	cd -	 切换到上一个所在目

2.1.4 pwd

Linux pwd命令用于显示工作目录。
执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qzdl5pFl-1579231852361)(media/pwd.png)]

2.1.5 cp

Linux cp命令主要用于复制文件或目录。

语法

cp [options] source dest

cp [options] source... directory

参数说明

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件。

实例

使用指令“cp”将某个文件从一个目录复制到另一个目录

$ cp –r a.txt ../newtest/ 

使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newtest"下,输入如下命令:

$ cp –r test/ newtest          

注意:用户使用该指令复制目录时,必须使用参数"-r"或者"-R"。

2.1.6 scp

Linux scp命令用于Linux之间复制文件和目录。

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

语法

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2

简易写法:

scp [可选参数] file_source file_target 

常用参数说明:

  • -r: 递归复制整个目录。
  • -P port:注意是大写的P, port是指定数据传输用到的端口号

实例

1、从本地复制到远程

命令格式:

scp local_file remote_username@remote_ip:remote_folder 
或者 
scp local_file remote_username@remote_ip:remote_file 
  • 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;

应用实例:

scp /home/space/music/1.mp3 [email protected]:/home/root/others/music 
scp /home/space/music/1.mp3 [email protected]:/home/root/others/music/001.mp3 

应用实例,用同一个服务器模拟,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wfJn9FRe-1579231852361)(media/scp-1556510872175.png)]

复制目录命令格式:

scp -r local_folder remote_username@remote_ip:remote_folder 
  • 第1个指定了用户名,命令执行后需要再输入密码;

应用实例:

scp -r /home/space/music/ [email protected]:/home/root/others/ 

上面命令将本地 music 目录复制到远程 others 目录下。

2、从远程复制到本地

从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例

应用实例:

scp [email protected]:/home/root/others/music /home/space/music/1.mp3 
scp -r 192.168.157.131:/home/root/others/ /home/space/music/

说明

1.如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:

#scp 命令使用端口号 4588
scp -P 4588 [email protected]:/usr/local/sin.sh /home/administrator

2.使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。

2.1.7 mkdir

mkdir命令用于建立名称为 dirName 之子目录。

语法

mkdir [-p] dirName

参数说明

  • -p 确保目录名称存在,不存在的就建一个。

实例

在工作目录下,建立一个名为 AAA 的子目录 :

mkdir AAA

在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。)

mkdir -p BBB/Test

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N3ZlLM11-1579231852361)(mdpic\p6.PNG)]

2.1.8 rm

Linux rm命令用于删除一个文件或者目录。

语法

rm [options] name...

参数

  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  • -r 将目录及以下之档案亦逐一删除。

实例

rm删除文件,用法:rm [选项]... 文件...	
rm a.txt 		删除a.txt文件,删除需要用户确认
rm -f a.txt		不询问,直接删除rm 删除目录		
rm -r a    		递归删除不询问递归删除(慎用)		
rm -rf  a    	不询问递归删除		
rm -rf *      	删除所有文件	
rm *.txt        删除以.txt为扩展名的文件
rm ww*          删除以ww开头的文件
rm -rf /*       自杀

2.1.9 rmdir

Linux rmdir命令删除空的目录。

语法

rmdir [-p] dirName

参数:

  • -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。

实例

在工作目录下,建立一个名为 AAA 的子目录 :

mkdir AAA

在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。)

mkdir -p BBB/Test

2.1.10 cat

cat 命令用于连接文件并打印到标准输出设备上。

使用权限

所有使用者

语法格式

cat [-AbeEnstTuv] [--help] [--version] fileName

常用参数说明:

-n 或 --number:由 1 开始对所有输出的行数编号。

-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

实例:

显示textfile1文档的全部内容

cat textfile1

把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:

cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:

cat -b textfile1 textfile2 >> textfile3

2.1.11 tail

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容,一般用来观察正在运行中的程序日志。

命令格式:

tail [参数] [文件]  

参数:

  • -f 循环读取
  • -n<行数> 显示文件的尾部 n 行内容

实例

要跟踪名为 notes.log 的文件后200行的增长情况,请输入以下命令:

tail -200f notes.log

要显示 notes.log 文件的最后 20 行,请输入以下命令:

tail -n20 notes.log

要跟踪名为 notes.log 的文件的增长情况,请输入以下命令:

tail -f notes.log

2.1.12 less

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

语法

less [参数] 文件 

常用参数说明

  • 空格键 滚动一页
  • 回车键 滚动一行
  • [pagedown]: 向下翻动一页
  • [pageup]: 向上翻动一页
  • /字符串:向下搜索"字符串"的功能
  • ?字符串:向上搜索"字符串"的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)

实例

1、查看文件

less log2013.log

2、ps查看进程信息并通过less分页显示

ps -ef |less

3、查看命令历史使用记录并通过less分页显示

[root@localhost test]# history | less

4、浏览多个文件

less log2013.log log2014.log

说明:
输入“ :n”后,切换到 log2014.log
输入 ":p"后,切换到log2013.log

2.1.13 more&less&cat区别

inux中命令cat、more、less均可用来查看文件内容,主要区别有:
cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况;
more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能。more比cat强大,提供分页显示的功能,less比more更强大,提供翻页,跳转,查找等命令。而且more和less都支持:用空格显示下一页,按键b显示上一页。

2.1.14 mv

Linux mv命令用来为文件或目录改名、或将文件或目录移入其它位置。

语法

mv [options] source dest
mv [options] source... directory

参数说明

  • -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
  • -f: 在mv操作要覆盖某已有的目标文件时不给任何指示;

mv参数设置与运行结果

命令格式 运行结果
mv 文件名 文件名 将源文件名改为目标文件名
mv 文件名 目录名 将文件移动到目标目录
mv 目录名 目录名 目标目录已存在,将源目录 移动到目标目录;目标 目录不存在则改名
mv 目录名 文件名 出错

实例

将文件 aaa 更名为 bbb :

mv aaa bbb

将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。

mv info/ logs 

再如将/usr/student下的所有文件和目录移到当前目录下,命令行为:

$ mv /usr/student/*  . 

2.1.15 tar

tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

语法

tar [选项] 文件或目录
使用该命令时,主选项必须有,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。

常用参数说明:

-c:创建一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar文件
-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。

实例

tar -cvf test1.tar ./* 			 将当前目录下的所有文件打包为test1.tar
tar -xvf  test1.tar              解压到当前目录
tar -zcvf test3.tar.gz  ./*      将当前目录下的所有文件打包并且压缩到test3.tar.gz
tar -xzvf  test3.tar.gz          解压在当前目录
tar -xzvf  test3.tar.gz -C aaa   将文件解压到 aaa目录

2.1.16 grep

Linux grep命令用于查找文件里符合条件的字符串。

grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。

语法

命令格式:grep [option] pattern file

参数

-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
-v 或 --revert-match : 显示不包含匹配文本的所有行。
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。

实例

查到日志文件 rootstdout.log中包含test字符串的行

grep test rootstdout.log

在当前目录中,查找后缀有 .log 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:

grep test *.log

以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:

grep -r update /etc/acpi 

2.1.17 zgrep

服务器端常有很多压缩过的日志文件,当需要查找日志中某些特定信息的时候,为了避免解压文件,可以使用zgrep.

用法和grep命令一样,只不过操作的对象是压缩文件.见如下示例:

zgrep select *.zip|more

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aiGNGxaw-1579231852361)(media/zgrep.png)]

2.1.19 find

2.1.18 管道"|"

我们在终端只能执行一条命令,然后按下回车执行,那么如何执行多条命令呢?

Shell可以将两个或多个程序连接到一起,以使一个程序的输出变成另一个程序的输入,这种方式连接的两个或者多个程序就形成了管道。管道通常用于执行一些复杂的数据处理操作。这些命令之间使用控制操作符(管道符)"|"连接。

语法格式:

command1 | command2
command1 | command2 [ commandN... ]

实例:

查找文件test.log中包含 “2019-05-05”字符串同时包含test 字符串的行。此时,可以使用如下命令:

grep '2019-05-05 ' test.log|grep 'test'

“ps -ef”是显示所有进程 信息,后面是从进程中查找java进程是否存在:

ps -ef |grep java

ps aux|grep java

2.1.19 统计wc

利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

语法

wc [-clw][--help][--version][文件...]

参数

  • -c或–bytes或–chars 只显示Bytes数。
  • -l或–lines 只显示行数。
  • -w或–words 只显示字数。

实例

在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。使用的命令为:

统计ttt.txt文件中包含"vi"字符串的行数:

grep 'vi' ttt.txt |wc -l

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nkvTk4rl-1579231852362)(media/wc2.png)]

统计text.txt文件的行数:

cat test.txt |wc -l

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ghOJnBiT-1579231852363)(media/wc3.png)]

在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。使用的命令为:

$ wc testfile           # testfile文件的统计信息  
3 92 598 testfile       # testfile文件的行数为3、单词数92、字节数598 

其中,3 个数字分别表示testfile文件的行数、单词数,以及该文件的字节数。

2.1.20 文件上传下载(rz/sz)

对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能

运行命令rz、sz要比FTP容易很多,而且服务器不需要另开FTP服务即可完成。
sz:将选定的文件发送(send)到本地机器
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)
rz,sz是便是Linux/Unix同Windows进行ZModem文件传输的命令行工具,windows端需要支持ZModem的telnet/ssh客户端(比如SecureCRT)。注意:该方法的传输速度比较慢,推荐使用中小文件的传输。

yum安装
root 账号登陆后执行以下命令:

yum install -y lrzsz

语法:

rz                        #上传
sz filename               #下载 

rz使用参数

-b binary 用binary的方式上传下载,不解释字符为ascii 
-e 强制escape 所有控制字符,比如Ctrl+x,DEL等。

rz的用法

设置上传下载的目录 :
以SecureCRT为例,点击菜单栏–Options–Session Options在弹出的对话框选择Terminal–X/Y/Zmodem
查看并修改Directories下的Upload与Download参数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DLey8jti-1579231852363)(media/20161228142523765.png)]

在命令终端输入rz回车

[root@vdedu vastedu]# rz

就会出现文件选择对话框,选择需要上传文件,一次可以指定多个文件,上传到服务器的路径为当前执行rz命令的目录。
如图;选择要上传的文件–Add–OK
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eIh2glNV-1579231852363)(media/20161228143343719.png)]
查看一下上传的文件

[root@vdedu vastedu]# ls 
oracle11g DG.txt oracle11g RAC.txt oracle11 install.txt 

**注意:**注意:单独用rz会有两个问题:上传中断、上传文件变化(md5不同),解决办法是上传是用rz -be,并且去掉弹出的对话框中“Upload files as ASCII”前的勾选,如下图所示。
-a, –ascii
-b, –binary 用binary的方式上传下载,不解释字符为ascii
-e, –escape 强制escape 所有控制字符,比如Ctrl+x,DEL等
rar,gif等文件文件采用 -b 用binary的方式上传。
文件比较大而上传出错的话,采用参数 -e
如果用不带参数的rz命令上传大文件时,常常上传一半就断掉了,很可能是rz以为上传的流中包含某些特殊控制字符,造成rz提前退出。
综上,请使用 rz -be

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nuKh7tuo-1579231852364)(media/rz.png)]

sz的用法

z命令可以单下载一个文件,也可以多个文件同时下载,如下图所示:

下载一个文件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wzhpukuD-1579231852364)(media/sz.png)]

同时下载两个文件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JcjE7YDy-1579231852365)(media/sz2.png)]

2.1.21 LINUX操作小技巧

一、Tab键自动补全
使用Tab键自动补全是基本的技巧。它能节省你很多时间,而且当你不确定一个文件名或者命令怎么拼写时,它也及其有用。

举个例子,比如在当前目录你有一个文件,文件名是“jdk-8u161-linux-x64.tar.gz”,你想删除这个文件。你可以输入整个文件名,但是你得小心输错。如果你输入”rm r jdk”,然后按Tab键,会自动为你补全这个文件的名字。

当然,如果当前目录中你有很多以字母jdk开头的文件,就会不知道你指的是哪一个。比如当前目录你有另一个名字叫做“jdk-6u45-solaris-i586.tar.Z”的文件,当你按Tab键时,会补全到“jdk-”部分,因为两个文件都是以这开头的。然后,再按Tab键你会看到所有能匹配该开头的文件列表,如下图。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-07ZsWQFw-1579231852366)(media/tab1.png)]

接着输入你想要的文件名"ll jdk-8"然后按Tab键。这样,会自动补全我们想要的文件名。

ll jdk-8u161-linux-x64.tar.gz 

这种方法对于输入命令来说同样适用。当你不确定你想要的命令是什么,只记得以”group”开头时,输入“group”然后按Tab键,你就会看到所有可能的结果。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6QE9zvii-1579231852366)(media/group.png)]

还有一种常用的场景,比如我想从其它一个文件夹下面copy某个文件到当前目录下,但不记得文件名,也可以在录入文件夹后按Tab键,系统会列出所有文件,录入后继续操作,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tFcAFwMP-1579231852366)(media/tab5.png)]

二、管道命令
管道命令允许你把一个命令的输出结果转移给另一个命令。在Unix的设计哲学中,每个程序都是只有少而精的功能。举个例子,”ls”命令会显示当前目录中所有的文件列表,而”grep”命令会在制定的地方搜索输入的字符串。把这两者通过管道命令(用“|”符号表示)结合起来,你就可以在当前目录搜索某个文件了,以下命令用来搜索“really”:

ls | grep really

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IOcGHKK6-1579231852367)(media/140308075630932-1556377567425.png)]

三、通配符
星号”*”是一个可以匹配任何东西的通配符。比如,如果我们想把”really long file name“和”really very long file name“从当前目录都删了,我们可以使用如下命令:

rmreally*name
这个命令删除了所有以really开头,以name结尾的文件。如果你用”rm *”命令,将会删除该目录下的所有文件,所有需谨慎使用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4MkatHSy-1579231852368)(media/140308075630934.png)]

四、输出重定向
“〉”字符可以把一个命令的输出结果重定向到一个文件,而不需要额外使用另一个命令。比如,下图的代码使用”ls”命令来列出当前目录的所有文件,并把输出的列表输入到了一个名为”file1“的文件,而不是仅仅输出显示在终端上。

ls 〉 file1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-scJSiPWo-1579231852369)(media/140308075754042.png)]

五、命令行历史
linux系统会记得你使用过的命令的历史。你可以使用向上键和向下键来翻阅你已经使用过的命令。使用”history”命令会把历史命令都打印出来,因此你可以使用管道命令来搜索你最近使用的命令。如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3dXEAaUJ-1579231852369)(media/history1.png)]

六、~,.& …
波浪符”~”代表当前用户的主目录。所以,你可以使用”cd ~”切换到你的主目录,而不用输入”cd /home/name”。这对相对路径同样使用,比如”cd ~/Desktop”会切换到当前用户的桌面目录。

与之类似的是,”.”代表当前目录,”…”代表父级目录。所有,”cd …”会跳到父级目录。这对相对路径同样有效,比如你在Desktop目录,你想切换到与Desktop目录同级的Document目录,你可以使用”cd …/Documents”命令。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xJMVi0Uk-1579231852369)(media/140308075754043.png)]

2.1.22 学生综合练习题

程序日志分析题(10分钟完成):

1 把日志文件log.tar上传linux某个目录
2 还原log.tar
3 统计16:40到16点50之间(不包括16点50)以“MsgSendUtil”为关键字日志打印的信息条数
4 把16:40到16点50之间(不包括16点50)以“MsgSendUtil”为关键字日志信息输出到一个新的文件中(文件名为sendinfo.log)
5 把文件sendinfo.log下载到本地
6 以程序中输出的日志关键字“send message false”为关键字,分析打印此日志上下20行的上下文日志,找出程序的BUG,分析报错的大概原因

2.2 Linux 根目录(/)下各个目录的功能

/bin:是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot:存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/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的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux:是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv:存放一些服务启动之后需要提取的数据。
/sys:linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs,sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp:是用来存放一些临时文件的。
/usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin:系统用户使用的应用程序。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件

2.3 vi/vim文本编辑器

2.3.1 vi/vim简介

vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。他是我们使用Linux系统不能缺少的工具。由于对Unix及linux系统的任何版本,vi编辑器是完全相同的,学会它后,您将在Linux的世界里畅行无阻。

vim 具有程序编辑的能力,可以以字体颜色辨别语法的正确性,方便程序设计;

vim可以当作vi的升级版本,他可以用多种颜色的方式来显示一些特殊的信息。

vim会依据文件扩展名或者是文件内的开头信息, 判断该文件的内容而自动的执行该程序的语法判断式,再以颜色来显示程序代码与一般信息。

vim里面加入了很多额外的功能,例如支持正则表达式的搜索、多文件编辑、块复制等等。 这对于我们在Linux上进行一些配置文件的修改工作时是很棒的功能。

2.3.2 vi/vim使用

vi/vim功能强大,命令和快捷键也比较多,我们只需求熟练掌握下面常用的功能,就可以满足工作中绝大部分的需求。

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)。 这三种模式的作用分别是:

命令模式

用户刚刚启动 vi/vim,便进入了命令模式。

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

以下是常用的几个命令:

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

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

输入模式

在命令模式下按下“i”就进入了输入模式。

在输入模式中,可以使用以下按键:

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

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

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

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

  • q 退出程序
  • w 保存文件

按ESC键可随时退出底线命令模式。

简单的说,我们可以将这三个模式想成底下的图标来表示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hUuHEv1d-1579231852370)(media/vim-vi-workmodel-1556616140758.png)]

2.2.3 vi/vim应用实例

使用 vim 来新建立一个名为 test.txt 的文件时,输入如下指令:

vi test.txt

直接输入 vi 文件名 就能够进入 vi 的一般模式了。请注意,记得 vi 后面一定要加文件名,不管该文件存在与否!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oI5mNGP9-1579231852370)(media/vi1.png)]

按下 i 进入输入模式(也称为编辑模式),开始编辑文字

在一般模式之中,只要按下 i, o, a 等字符就可以进入输入模式了!

在编辑模式当中,你可以发现在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示。

这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6EXQ1IM4-1579231852370)(media/v2.png)]

按下 ESC 按钮回到一般模式

好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 Esc 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!

在一般模式中按下 :wq 储存后离开 vi

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8zlPGz2y-1579231852371)(media/v4.png)]

2.3.4 vi/vim常用按键说明

除了上面简易范例的 i, Esc, :wq 之外,其实 vim 还有非常多的按键可以使用。

第一部份:一般模式可用的光标移动、复制粘贴、搜索替换等

移动光标的方法
h 或 向左箭头键(←) 光标向左移动一个字符
j 或 向下箭头键(↓) 光标向下移动一个字符
k 或 向上箭头键(↑) 光标向上移动一个字符
l 或 向右箭头键(→) 光标向右移动一个字符
如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 “30j” 或 “30↓” 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!
0 或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End] 移动到这一行的最后面字符处(常用)
:n 代表跳转到第n行,如:79,就跳转到第79行。
搜索替换
/word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word 向光标之上寻找一个字符串名称为 word 的字符串。
n 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
N 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!
:n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则: 『:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g:%s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
:1,$s/word1/word2/gc:%s/word1/word2/gc 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)
删除、复制与贴上
dd 删除游标所在的那一整行(常用)
ndd n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
yy 复制游标所在的那一行(常用)
nyy n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
p, P p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
u 复原前一个动作。(常用)
[Ctrl]+r 重做上一个动作。(常用)
这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿!很快乐的啦!
. 不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)

第二部份:一般模式切换到指令行模式的可用的按钮说明

指令行的储存、离开等指令
:w 将编辑的数据写入硬盘档案中(常用)
:w! 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
:wq 储存后离开
:wq! 若为 :wq! 则为强制储存后离开 (常用)

2.3.5 学生综合练习题

2.4 文件权限管理

2.4.1 chmod

inux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。

使用权限 : 所有使用者

语法

chmod [-cfvR] [--help] [--version] mode file...

参数说明

mode : 权限设定字串,格式如下 :

[ugoa...][[+-=][rwxX]...][,...]

其中:

  • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
  • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
  • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

其他常用参数说明:

  • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

此外chmod也可以用数字来表示权限如 :

chmod 777 file

语法为:

chmod abc file

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。

常用命令实例

"User、Group、及Other"则三种用户都能读取,写入,执行文件filename

chmod 777 filename

"User、Group"能读取,写入,执行文件filename,other只有 读取,执行权限(4+1 = 5)

chmod 775 filename

给当前目录下所有扩展名为.sh的文件增加可执行权限

chmod +x *.sh

2.4.1 chown

Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。 。

一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限可以自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。

使用权限 : root

语法

chown [-cfhvR] [--help] [--version] user[:group] file...

常用参数 :

  • user : 新的文件拥有者的使用者 ID
  • group : 新的文件拥有者的使用者组(group)
  • -R : 处理指定目录以及其子目录下的所有文件

实例

将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :

chown runoob:runoobgroup file1.txt

将目前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:

chown -R runoob:runoobgroup *

2.5 用户管理

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个惟一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的添加、删除与修改。
用户口令的管理。
用户组的管理。

2.5.1 useradd

Linux useradd命令用于建立用户帐号。

useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

语法

useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]

useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>]

参数说明

  • -d<登入目录>  指定用户登入时的启始目录。
  • -D  变更预设值.
  • -g<群组>  指定用户所属的群组。
  • -m  自动建立用户的登入目录。
  • -M  不要自动建立用户的登入目录。
  • -n  取消建立以用户名称为名的群组.
  • -r  建立系统帐号。
  • -s   指定用户登入后所使用的shell。
  • -u  指定用户ID。

实例

添加一般用户

# useradd tt

为添加的用户指定相应的用户组

# useradd -g root tt

创建一个系统用户

# useradd -r tt

为新添加的用户指定home目录

# useradd -d /home/myd tt

建立用户且制定ID

# useradd caojh -u 544

2.5.2 passwd

passwd给指定的用户设置密码
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。

语法

passwd [参数] 用户名

常用参数

  • d 删除密码
  • -f 强制执行
  • -l 停止账号使用
  • -u 启用已被停止的账户

实例

修改用户密码,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LBYviglp-1579231852372)(media/passwd.png)]

2.5.3 userdel

Linux userdel命令用于删除用户帐号。

userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。

语法

userdel [-r][用户帐号]

常用参数说明

  • -r  删除用户登入目录以及目录中所有文件。

实例

删除用户账号

# userdel hnlinux

2.5.4 su

Linux su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。

使用权限:所有使用者。

语法

su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

常用参数说明

  • USER 欲变更的使用者帐号

实例

su root

如下图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eafOhFTe-1579231852372)(media/su1.png)]

2.6 磁盘管理

Linux磁盘管理好坏直接关系到整个系统的性能问题。
Linux磁盘管理常用三个命令为df、du和fdisk。

2.6.1 df

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

语法

df [参数] [目录或文件名]

常用参数

  • 文件-h, --human-readable 使用人们可读的格式(预设值是不加这个选项的…)

使用实例

df -h

如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OMYTQfUd-1579231852373)(media/df.png)]

2.6.2 du

du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看

语法

du [参数] 文件或目录名称

常用参数说明:

  • -a或-all 显示目录中个别文件的大小
  • -h :以人们较易读的容量格式 (G/M) 显示;
  • -s :列出总量而已,而不列出每个各别的目录占用容量;

常用实例

列出目录下所有文件以及文件夹的的大小:

du -sh ./*

如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d2DlXZQM-1579231852373)(media/du2.png)]

列出目录下所有文件以及文件夹和文件夹里面文件的的大小:

du -ah ./*

如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JJpMyKSy-1579231852373)(media/du3.png)]

2.7 系统管理

2.7.1 ps

Linux ps命令用于显示当前进程 (process) 的状态。

语法

ps [options] [--help]

参数

ps:将某个进程显示出来

-A  显示所有程序。 
-e  此参数的效果和指定"A"参数相同。
-f  显示UID,PPIP,C与STIME栏位。

使用实例

查找进程 信息中包含mysql的进程

ps -ef|grep mysql

如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pyKdWlkG-1579231852374)(media/784082-20171229154414476-43808408.png)]

上述内容详解:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gXJIDoHy-1579231852375)(media/784082-20171229155624585-426275705.png)]

2.7.2 jps

jps不是LINUX的命令,是java自带的命令,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rzgaEOgY-1579231852375)(media/jps1.png)]

jps 命令类似与 linux 的 ps 命令,但是它只列出系统中所有的 Java 应用程序。 通过 jps 命令可以方便地查看 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息。

如果在 linux 中想查看 java 的进程,一般我们都需要 ps -ef | grep java 来获取进程 ID。
如果只想获取 Java 程序的进程,可以直接使用 jps 命令来直接查看。

语法

jps [options] [--help]

参数

-q:只输出进程 ID
-l:输出完全的包名,应用主类名,jar的完全路径名

使用实例

查找信息中包含Bootstrap的JAVA进程

jps|grep Bootstrap

2.7.3 top

Linux top命令用于实时显示 process 的动态。

使用权限:所有使用者。

常用使用实例

一、按进程的CPU使用率排序

运行top命令后,键入大写P。

有两种途径:

a) 打开大写键盘的情况下,直接按P键

b) 未打开大写键盘的情况下,Shift+P键

效果如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ThJrXWEm-1579231852375)(media/20161008214935962.png)]

二、按进程的内存使用率排序

运行top命令后,键入大写M。

有两种途径:

a) 打开大写键盘的情况下,直接按M键

b) 未打开大写键盘的情况下,Shift+M键

三、按“c”键,可以看到命令的全路径以及命令参数
四、按“1”键,可以看到每个CPU的使用情况

2.7.4 kill

Linux kill命令用于删除执行中的程序或工作。

kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。

语法

kill -15进程的id	 #大部分程序接收到SIGTERM信号后,会先释放自己的资源,然后再停止(默认的方式)
kill -9 进程的id    #效果是立即杀死进程. 该信号不能被阻塞, 处理和忽略

实例

查找tomcat进程,杀掉进程:

查看端口是否打开:netstat -an|grep 8080
查看端口被那个应用程序使用:
netstat -apn |grep 8080
或
lsof -i:8080



ps -ef|grep tomcat
kill -9 23105

2.7.5 防火墙

Centos7
systemctl stop firewalld 关闭防火墙
systemctl start firewalld 启动防火墙
systemctl disable firewalld 禁用防火墙
systemctl enable firewalld 启用防火墙

2.7.6 关机

shutdown -r now 立刻重启
shutdown -r 10 过10分钟自动重启
shutdown -r 20:35 在时间为20:35时候重启
shutdown -c 取消重启
poweroff 立刻关机
shutdown -h now 立刻关机
shutdown -h 10 10分钟后自动关机
发布了10 篇原创文章 · 获赞 0 · 访问量 207

猜你喜欢

转载自blog.csdn.net/qq_45532201/article/details/104016650
今日推荐