35.Linux基本命令

一、Linux的简介

1.Linux的概述

Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于源代码的开放性,现在已经衍生出了千上百种不同的Linux系统。

Linux系统的应用非常广泛,不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,比如手机、平板电脑、路由器等。尤其在这里提及一下,我们熟知是Android程序最底层就是运行在linux系统上的。      

1.Linux的分类

(1)Linux根据市场需求不同,基本分为两个方向:

  • 图形化界面版:注重用户体验,类似window操作系统,但目前成熟度不够
  • 服务器版:没有好看的界面,是以在控制台窗口中输入命令操作系统的,类似 于DOS,是我们架设服务器的最佳选择

(2)Linux根据原生程度,又分为两种:

  • 内核版本:在Linus领导下的内核小组开发维护的系统内核的版本号
  • 发行版本:一些组织或公司在内核版基础上进行二次开发而重新发行的版本

Linux发行版本不同,又可以分为n多种:

自行安装(如虚拟机等安装Linux系统)

二、特点

开放性,多用户,多任务,优异的性能和稳定性

 

三、安装

参考文档

镜像下载https://wiki.centos.org/Download 一般是非盈利社区

 

四、目录结构

/ 最顶级目录,所有的东西都在/目录下

bin 可执行文件,可以被root和一般用户使用的指令,也就是常用命令

dev 外接设备

etc 配置文件

home 普通用户家目录 非root用户

lib 二进制文件,如支持命令的库

mnt 挂载文件系统的目录

proc 存放一些执行的进程的信息

root 超级用户的家目录 ~

sbin 超级用户使用的命令

tmp 临时文件存放目录

usr 用户程序命令

var 存放日志或数据文件

 

五、基础命令

01.ls

显示当前目录所有文件(和文件夹)简单信息

举例:ls (其后面也可以加路径,例如:ls /test/aaa)

-l 显示详细信息

-a 显示所有文件,包括隐藏文件

-alh 显示文件大小 不分先后顺序

相对路径: 根据参照物确定路径,一般为当前目录(.或./代表当前目录 ../代表上一级目录 ~代表家目录)

绝对路径: 直接从顶级目录开始,比如/

02.ll

显示所有文件(和文件夹)详细信息

举例:ll 路径名 例如:ll /test/aaa

如果ll后面不加路径就代表查看当前目录

显示出来的东西如果以-开头,说明它是文件

如果以d开头,说明它是目录,文件夹

-h 显示文件的大小

-a 显示隐藏文件

03.cd

进入到某个目录

举例 cd /

cd .. 返回上一级目录

04.pwd

显示路径(绝对路径)

05.mkdir

创建目录

举例:mkdir aaa

-p 创建多级目录

06.rmdir

删除空目录

举例rmdir aaa

07.touch

创建空文件

举例:touch aaa.txt(touch 后面也可以跟路径,如:touch /test/aaa.txt)

创建多个文件

​ touch a.txt b.txt

08.cp

复制

cp复制文件

举例:cp aaa.txt bbb.txt

cp -r 复制目录

09.mv

移动文件或目录(也是重命名)

举例:mv /test/aaa/a.txt /test/bbb (把/test/aaa/a.txt移动到/test/bbb)

mv /test/aaa/a.txt /test/aaa/b.txt(重命名)

10.rm

删除 (不提示删除 rm -rf) (rm -r 递归删除)

举例:rm -rf a.txt

​ 删除多个:rm -rf a.txt b.txt

11.vi/vim

编辑文本

例如:vim /test/a.txt

输入i进行编辑

编辑完先按Esc,取消insert

命令 说明
:w 保存
:wq 保存并退出
:x 保存并退出
:q 退出,如果有改动,需要使用强制退出
:q! 强制退出,对修改的内容不保存
:set nu 显示行号
:n 跳到第n行
:%s/o/xxxxxx/g 把文件中的o替换为xxxxxx
/xxx /xxx 查找xxx 输入n查找下一个,输入N查找上一个
G 跳到文件最后一行
gg 跳到文件第一行
$ 跳到本行末尾
^ 跳到本行行首
yy 复制,5yy复制5行
P 粘贴
dd 删除1行,10dd删除10行
U 撤销
w 光标每个单词跳动

 

vim是vi的加强版

12.>和>>

输出重定向

覆盖输出

追加输出

13.cat

查看文件内容

举例:cat /test/aaa.txt

查看多个文件 cat a.txt b.txt

14.head

查看文件前n行内容

举例:head -10 /test/test01/bbb.txt

-10代表前10行

15.less

​ 分页查看

​ 空格显示下一行

可以使用【pageup】和【pagedown】键进行前翻页和后翻页

16.more

分页显示

按空格键显示下一页,ctrl+b返回上一页

v 调用vi编辑器

q 退出

17.tail

查看文件的后几行

举例:tail -10 /test/aaa.txt

tail -f 是动态查看(例子:tail -f /test/aaa.txt)

 

18.echo

打印

举例:echo “hello world”

echo “hello java”> /test/a.txt (覆盖)

echo “hello java”>> /test/a.txt (追加)

echo -e “hellon”

19.clear

清空屏幕

Ctrl l

20.which

显示命令路径

举例:which ls

 

六、进阶命令

01.du

查看目录大小

du -sh /etc/

02.df

查看磁盘大小

一般使用df -h

03.free

显示内存大小

-m 以MB显示

-g 以GB显示

04.wc

统计

wc 有四个参数可选,分别是l,c,m,w

wc -l filename 报告行数

wc -c filename 报告字节数

wc -m filename 报告字符数

wc -w filename 报告单词数 根据换行和空格统计单词数

 

05.date

时间相关

date 显示时间

date +%Y-%m-%d 格式化显示时间date "+%Y-%m-%d %H:%M:%S"

date -d “1 month ago” 1个月之前

date -d “20180101 1 day ago” 1天之前

date -s 时间 (修改时间)

举例:[root@hadoop /]# date -s "2019-01-09 15:06:30"

06.cal

日历

 

07.|

管道符

把左边的结果传给右边

 

08.grep

过滤

功能:查找匹配格式的内容

格式:grep[参数] <要找的字串> <要寻找字 串的源文件>

用法1:grep linux a.txt #搜索a.txt文件中字符串linux并输出

用法2:ls / | grep a.txt #匹配当前目录下文件名字是a.txt的文件

用法3:cat a.txt | grep linux #搜索a.txt文件中字符串linux并输出

grep -i 忽略大小写

-v

-h

09.find

查找

find /test -name a.txt 搜索系统根目录下的test文件夹下名为a.txt的文件

find 查找路径 -name 要查找的文件名

[root@hd01 /]# find /aaa/bbb/ -name a

/aaa/bbb/a

[root@hd01 /]# find /aaa/bbb/ -name "a*"

/aaa/bbb/a

/aaa/bbb/abc.txt

查找文件size大于10个字节的文件或目录

find ./ -size +10c

查找文件size小于10k的文件或目录

find ./ -size -10k

find ./ -size -10M

find ./ -size -10G

其他...

find ./ -type

 

10.useradd

创建用户

创建新用户:useradd 用户名

修改用户密码:passwd 用户名

编辑/etc/sudoers文件,使用命令visudo

在root ALL=(ALL) ALL这一行下面添加:

用户名 ALL=(ALL) ALL

:x!

使用普通用户来操作root用户的文件使用命令sudo + 命令,如:

sudo vi/etc/profile

切换用户使用su 用户名

删除用户:userdel -rf 用户名

11.su

切换用户

su laohou

exit 退出用户

 

11.chmod

修改权限

语法为: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。

-rw-r--r--. 1 root root 145 Apr 26 03:22 aaa.txt 文件

-代表文件,-后面的三位代表用户权限,再后三位代表用户组的权限,再后三位代表其他 用户权限

例如:chmod 777 /test/a.txt

chmod [u所属用户 g所属组 o其他用户 a所有用户] [+增加权限 -减少权限] [r w x] 目录名

例如:chmod u+x aaa.txt

 

12.chown

修改所属用户和组

chown hadoop:hadoop filename 修改所属用户各组

chown –R 递归修改

 

13.ps

显示当前状态的进程信息

ps -ef | grep mysql

14. top

功能:显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等

15.tar

压缩和解压

tar -zcvf /test.tar.gz /test/ 压缩

tar -zxvf /test/a.txt.gz 解压a.txt.gz到当前目录

tar -zxvf /test/a.txt.gz -C /test 解压a.txt.gz到指定目录(大写C)

16.kill

杀死进程

kill -9 1123(进程号)

17.service

service network restart 重启网卡

18. systemctl是CentOS7的服务管理工具中主要的工具

它融合之前service和chkconfig的功能于一体。

firewalld的基本使用

启动: systemctl start firewalld

关闭: systemctl stop firewalld

查看状态: systemctl status firewalld

开机禁用 : systemctl disable firewalld

开机启用 : systemctl enable firewalld

 

19.rpm

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提 升了Linux的适用度。

rpm -qa 列出所有安装过的包

举例:rpm -qa | grep mysql

rpm -ivh 带进度安装

rpm -ivh xxx.rpm

rpm -e --nodeps卸载

rpm来安装mysql

 

20.yum

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum install ... 安装

wget

yum remove ... 卸载

yum update ... 升级所有包,改变软件设置和系统设置,系统版本内核都升级

yum upgrade ... 升级所有包,不改变软件设置和系统设置

yum list 列出所有的包文件
yum -y ... 不提示执行

21.nohup

后台启动进程,配合&使用

例如: nohup sh a.sh &

 

22.scp

远程发送 将当前机器上的某一个文件发送给另一台机器

scp -r ./a.txt test-hadoop-2-21:/home/hadoop

 

23.wget

​ 一般下载资源使用

wget http://xxxxxxxxxx

 

七、其他命令

01. ip addr

查看ip

02.reboot

重启系统

03.init 0

关机

04.history

历史命令

05.who

显示在线登陆用户

06.hostname

显示主机名

设置主机名:

hostnamectl set-hostname 要设置的名字

08.cut

分割 echo "hello world" | cut -d 指定分隔符 " " -f 2 (通过空格分割,显示第二列)

09.sort

排序 cat /etc/passwd | sort 字典排序,自然排序

-n, --numeric-sort 根据字符串数值比较

-f, --ignore-case 忽略字母大小写

-r, --reverse 逆序输出排序结果

10.uniq

去重cat /etc/passwd | sort|uniq (去重依赖于sort)

11.Ctrl c

强行停止进程(Ctrl键与C同时按)

12.tree

​ 以树状形式显示目录结构

13.netstat

netstat -tunlp

主要查看服务的网络信息

-t|--tcp 显示tcp协议

-u|--udp 显示udp协议

-n, --numeric 不解析名称

-l, --listening 显示监听服务器套接字

-p, --programs 显示PID

实践:

1.目录的操作命令(增删改查)

(1)增加目录操作(增)

命令:mkdir 目录名称

示例:在根目录 / 下 mkdir test,就会在根目录 / 下产生一个test问目录

(2)查看目录(查)

命令:ls [-al] 父目录

示例:在根目录 / 下使用ls,可以看到该目录下的所有的目录和文件

示例:在根目录 / 下使用ls -a,可以看到该目录下的所有文件和目录,包括隐藏的

示例:在根目录 / 下使用ls -l,可以看到该目录下的所有目录和文件的详细信息

注意:ls -l 可以缩写成ll

(3)寻找目录(查)

命令:find 目录 参数

示例:查找/root下的与test相关的目录(文件)  find /root -name ‘test*’

(4)修改目录的名称(改)

命令:mv 目录名称 新目录名称

示例:test目录下有一个oldTest目录,使用mv oldTest newTest命令修改

注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行     重命名的操作

(5)移动目录的位置---剪切(改)

命令:mv 目录名称 目录的新位置

示例:在test下将newTest目录剪切到 /usr下面,使用mv newTest /usr

注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作

(6)拷贝目录(改)

命令:cp -r 目录名称 目录拷贝的目标位置 -----r代表递归拷贝

示例:将/usr下的newTest拷贝到根目录下的test中,使用cp -r /usr/newTest /test

注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不 用写-r递归

(7)删除目录(删)

命令:rm [-rf] 目录

示例:删除/usr下的newTest,进入/usr下使用rm -r newTest

示例:删除/test下的newTest而不需要询问强制删除,在/test下使用rm -rf newTest

注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了增强大家的记忆,          无论删除任何目录或文件,都直接使用rm -rf 目录/文件/压缩包

2.文件的操作命令(增删改查)

(1)文件的创建(增)

命令:touch 文件名称  ----- 空文件

示例:在test目录下创建一个空文件 touch aaa.txt

(2)文件的查看(查)

命令:cat/more/less/tail 文件

示例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容

示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行, 空格可以向下一页,q可以退出查看

示例:使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上        和向下翻页,q结束查看

示例:使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束

注意:命令 tail -f 文件 可以对某个文件进行动态监控,例如tomcat的日志文件,         会随着程序的运行,日志会变化,可以使用tail -f catalina-2016-11-11.log 监控  文    件的变化

(3)修改文件的内容(改)

命令:vim 文件

示例:编辑/test下的aaa.txt文件,使用vim aaa.txt

但此时并不能编辑,因为此时处于命令模式,点击键盘i/a/o进入编辑模式,可以   编辑文件

编辑完成后,按下Esc,退回命令模式

此时文件虽然已经编辑完成,但是没有保存,需输入冒号:进入底行模式,在底行模     式下输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存。

总结:

vim编辑器是Linux中的强大组件,是vi编辑器的加强版,vim编辑器的命令和快捷方式有很多,但此处不一一阐述,大家也无需研究的很透彻,使用vim编辑

修改文件的方式基本会使用就可以了。

关于vim使用过程:

在实际开发中,使用vim编辑器主要作用就是修改配置文件

vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件   ------->按Esc进入底行模式----->输入:wq/q!

(4)删除文件(删)

同目录删除:熟记 rm -rf 文件 即可

但此时并不能编辑,因为此时处于命令模式,点击键盘i/a/o进入编辑模式,可以   编辑文件

编辑完成后,按下Esc,退回命令模式

此时文件虽然已经编辑完成,但是没有保存,需输入冒号:进入底行模式,在底行模     式下输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存。

(5)删除文件(删)

同目录删除:熟记 rm -rf 文件 即可

3.压缩文件的操作命令

(1)打包并压缩文件

Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。

而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。

命令:tar -zcvf 打包压缩后的文件名 要打包压缩的文件

其中:z:调用gzip压缩命令进行压缩

  c:打包文件

  v:显示运行过程

  f:指定文件名

示例:打包并压缩/test下的所有文件 压缩后的压缩包指定名称为xxx.tar.gz

tar -zcvf xxx.tar.gz aaa.txt bbb.txt ccc.txt

或:tar -zcvf xxx.tar.gz /test/*

(2)解压压缩包重点

命令:tar [-xvf] 压缩文件

其中:x:代表解压

示例:将/test下的xxx.tar.gz解压到当前目录下

tar -xvf xxx.tar.gz

示例:将/test下的xxx.tar.gz解压到根目录/usr下

tar -xvf xxx.tar.gz -C /usr------C代表指定解压的位置

4.其他命令

(1)显示当前所在位置

pwd

(2)搜索命令

命令:grep 要搜索的字符串 要搜索的文件

示例:搜索/usr/sudu.conf文件中包含字符串to的行

示例:搜索/usr/sudu.conf文件中包含字符串to的行 to要高亮显示

(3)管道命令

命令:|   将前一个命令的输出作为本次目录的输入

示例:查看当前系统中所有的进程中包括system字符串的进程

(4)查看进程

命令:ps -ef

示例:查看当前系统中运行的进程

(5)杀死进程

命令:kill -9 进程的pid

(6)网络通信命令

Service network restartss

查看当前系统的网卡信息:ifconfig

查看与某台机器的连接情况:ping

查看当前系统的端口使用:netstat -an

5.Linux的权限命令

权限是Linux中的重要概念,每个文件/目录等都具有权限,通过ls -l命令我们可以

查看某个目录下的文件或目录的权限

示例:在随意某个目录下ls -l

第一列的内容的信息解释如下:

文件的类型:

d:代表目录

-:代表文件

l:代表链接(可以认为是window中的快捷方式)

后面的9位分为3组,每3位置一组,分别代表属主的权限,与当前用户同组的      用户的权限,其他用户的权限

r:代表权限是可读,r也可以用数字4表示

w:代表权限是可写,w也可以用数字2表示

x:代表权限是可执行,x也可以用数字1表示

修改文件/目录的权限的命令:chmod

示例:修改/test下的aaa.txt的权限为属主有全部权限,属主所在的组有读写权限,

其他用户只有读的权限

chmod u=rwx,g=rw,o=r aaa.txt

上述示例还可以使用数字表示:

chmod 764 aaa.txt

6.远程连接工具的使用

实际开发中,Linux服务器都在其他的地方,我们要通过远程的方式去连接Linux并操作它,Linux远程的操作工具有很多,企业中常用的有Puttty、secureCRT、SSH Secure等。这里我们使用SSH Secure工具进行远程连接,该工具是免费的图形化界面及命令行窗口集一身的远程工具。安装包如下:

点击图形化界面图标:

关于远程工具乱码的解决:

使用远程工具进行连接时,如果linux有中文文件或目录,显示时会出现乱码,原因是linux编码是UTF-8,而远程工具默认是当前系统本地编码即GBK。所以解决方案是统一两者编码就OK了,但是该SSH Secure工具不能设置编码,所以通过修改linux的系统编码的方式进行统一编码。

在linux的/etc/sysconfig目录下有一个i18n的文件代表linux的系统编码

将其从UTF-8修改成GBK重现连接linux即可

 


已有 0 条评论

    欢迎您,新朋友,感谢参与互动!