linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多中型,大型甚至是巨型项目都在使用linux。

linux内核:redhat 、红旗linux、ubuntu、unix,aix,solaris,centOS,它们的内核都是一样的(Note:linux其实是一个统称,就比如面条是一个统称,可以有哨子面、阳春面、打卤面等)。

linux的特点

(中国人最喜欢的一点)免费的/开源

支持多线程/多用户(多并发)

安全性好(开源的 一旦有个漏洞 就有网络界雷锋给修补了)

对内存和文件管理优越

Linux最小只有4m->嵌入式开发(手机用户多 多么庞大的市场)

linux的文件系统是采用层级式的 树状目录 结构(windows是c\d\e\f盘),在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录

深刻理解linux文件目录是非常重要的

/

root,存放root用户的相关文件

home,存放普通用户的相关文件(待会儿我新建用户,它就会在home目录给你创建个目录)

bin,存放常用命令的目录,cd /(目录切换到根目录,大家可以用个命令来看下 pwd,cd bin,ls –l ,可以看到vi ,su命令,vi删掉 那么vi命令就用不了了)如vi,su

sbin,要具有一定权限才可以使用命令

mnt,默认挂载光驱和软驱的目录

etc,存放配e置的相关文件(数据库,环境变量的配置)

var,存放经常变化的文件,如网络连接的sock文件

boot,存放引导系统启动的相关文件(文件被破坏了,Linux就起不来了 和windows类似)

usr,安装一个软件的默认目录,相当于windows下的program files

Linux简介

Linux是一个Unix类操作系统,完全开发源码,多用户多任务,服务器(数据库服务器、Web服务器、应用服务器、日志服务器、图片服务器等等)、嵌入式领域(如路由器等需要Linux才能启动)、移动终端(比如安卓手机等、平板),Linux主流版本有:RedHat、CentOS、Ubuntu、SUSE、FreeBSD

linux 7大运行级别

0 系统停止 1 单用户 2 多用户 不支持NFS 3多用户,命令行模式登陆(我们常用的运行级别) 4 未用 5 图形化界面 6 重新启动

***********************************华丽的分割线**********************************************

linux操作注意事项:

1、 Linux的命令是严格区分大小写的;

2、 Linux支持三种格式的shell脚本,分别是 ksh、csh、sh

3、 登陆系统后,显示:[root@localhost ~]#(表示当前是以root用户登陆) 或显示 [u101@localhost bin]$ (表示当前是以普通用户--u101登陆)

4、 linux的默认超级用户/系统管理员是root用户

5、 ~表示当前登录的用户所在的目录,如果是root用户登陆,就在/root目录下;如果是普通用户,就在home目录下

****************************************网络配置***********************************************

ifconfig #查ip信息

ping #测试网络是否连通

setup #配置ip、防火墙、服务等信息

service network restart(start\stop) #重启网络服务(开启网络服务\停止网路服务)

虚拟网卡桥接连接方式(桥接/NAT模式)

客户端工具(远程连接Linux服务器):crt、xshell、ssh、puty,通过SSH2(端口是22)协议远程连接到Linux服务器(SSH2协议是在安装Linux操作系统时自带的协议),前2个最常用,支持中文,后2个不支持中文。

********************************常用系统操作命令*********************************************

1、ls / ll / ls -l #查看目录的内容

[root@localhost ~]# ll

总计 68

-rw------- 1 root root 1413 06-12 18:38 anaconda-ks.cfg

drwxr-xr-x 2 root root 4096 06-12 20:55 Desktop

-rw-r--r-- 1 root root 35768 06-14 15:34 install.log

-rw-r--r-- 1 root root 4713 06-12 18:37 install.log.syslog

drwxrwxrwx 13 root root 4096 06-14 17:58 linux

-rw-r--r-- 1 root root 4 06-13 02:11 ttt.txt

第一段:文件类型和权限,以 - 开头的,表示文件;以d开头的,表示目录(权限部分跳过,后面有详细讲解)

第二段:对于文件夹是代表子目录数

第三、四段:文件的属主,文件的属组 (不理解,先跳过,后面有详细讲解)

第五段:文件或文件夹本身大小

第六、七段:文件的最后修改时间

第八段:文件名称

[图片上传中...(image-1c0c01-1589175639664-1)]

添加参数a,可显示隐藏文件,比如:ls -la

2、cd 切换路径 #cd /etc/sysconfig

3、pwd 查看当前路径 #pwd

4、clear 清屏命令 #clear

5、tab键 用来路径补全功能

6、uname -r 查linux内核版本号 #uname -r

7、netstat -an 查找linux或者windows下所有的端口 #netstat -an

8、终止命令 crtl + c

***************************文件管理命令*************************************************

1、mkdir 文件夹名 #创建文件夹,可以同时创建多个文件夹,如:mkdir d01 d02

2、mkdir -p ./first/second #创建多层文件夹 first和second都不存在情况下建目录

3、touch 文件名 #touch test.txt 创建文件,另外,touch命令还可以更新文件的修改时间

4、rmdir d101 #删除空目录d101

5、rmdir d102 d103 #同时删除两个空目录d102,d103

7、rm -rf 文件名或文件夹名 #删除文件,非空文件夹

8、cp 源文件路径/源文件名 目标路径 #复制文件到指定路径下 #cp T01/test.txt T02/

9、cp -R 源文件路径/源目录名 目标路径 #拷贝文件夹到指定路径下(把文件夹以及文件夹下的所有内容一起拷贝)

例子:在root文件夹下新建linux文件夹,然后进入linux文件夹新建t01 t02 t03三个文件夹,再在t01文件夹下新建a.txt文件

1)、把 t01目录下的a.txt 文件复制到 t02目录

cp ./t01/a.txt ./t02

2)、把 t01 文件夹里面的所有内容复制到t03

cp -R t01 t03

10、移动/剪切文件

10.1)mv 源文件路径/源文件名 目标路径 #将源文件剪切到目标路径下

例:mv t01/a.txt t02/ #将t01文件夹里面的a.txt文件剪切到t02目录下

10.2)mv 源文件路径/源文件名 目标路径 #文件重命

例:mv t02/a.txt t02/aa.txt #将t02文件夹里面的a.txt文件重命名为aa.txts

10.1)mv 源文件路径/源文件名 目标路径 #将源文件剪切到目标路径下

例:mv t01/b.txt t03/cc.txt #将t01文件夹里面的b.txt文件剪切到t03目录下,并重命名为cc.txt

11、查看文件命令:(install.log)

(1)cat 文件名 #查看文件的所有内容

(2)cat -n 文件名 #查看文件的所有内容,并显示行数

(3)more 文件名 #按回车一行,空格一页。不能向上下翻行。

(4)less 文件名 #按回车一行,空格一页。可以通过上下键上下翻行。按q就退出。

(5)head -n 文件名 #查看文件的前n行, n表示你要看的行数。

(6)tail -n 文件名 #查看文件的后n行

重定向:

12、 > 导入(复制) cat A > B 把A的内容导入到B(把原来的内容覆盖)

13、>> 追加导入 cat A >> B 把A的内容追加到B文件后面

cat A B >> C 把A和B的内容分别导入到C文件

14、查找文件中指定的内容,用 "管道: |" 和 grep 命令

管道的作用:将前面一条命令的输出,当作后面命令的参数(输入)

grep 查找指定字符

如:查找系统中80端口的信息: netstat -an | grep 80

练习:查找 ifcfg-eth0 中包含“OOT”字符串的信息

查找指定字符串的另一种方式

grep zpp /etc/passwd #到/etc/passwd文件中查找zpp字符串 或者命令:cat /etc/passwd | grep zpp

grep -n "root" /etc/group #查看/etc/group文件中包含root的行并显示行号

grep pattern1 files | grep pattern2 #查询两个字段出现在同一条日志

15、查找文件

语法:

find 路径 参数 参数值

例:

find /root -name a.log #在root目录下,按文件名称查找名字为a.log的文件

find /root -name 'lo' #在root目录下,按文件名称查找名字包含 'lo' 字符的文件

16、wc -l 文件名 #统计当前文件的行数 wc -l /T01/tt.txt

**********************打包压缩管理*********************************

打包压缩的文件后缀有这些:压缩文件(.gz)、压缩包(.tar.gz 或 .tgz)

****** 对文件进行压缩命令:gzip ******

语法:gzip 文件名称

gzip只能压缩单个文件,不能压缩目录、也不能同时压缩多个文件

例:

gzip f101.txt #将f101压缩,形成压缩文件f101.gz

****** 解压 ******

语法:gzip -d 压缩包名

例:

gzip -d f101.gz 或 gunzip f101.gz #解压f101.gz文件

****** 对文件进行打包并压缩 ******

tar+参数+目标文件路径和包名+被打包的文件/文件夹名称

tar -czvf t101.tar.gz T101 #将T101文件夹打包并压缩到当前目录下的t101.tar.gz压缩包中

tar -czvf /opt/t101.tar.gz T101 #将T101文件夹打包并压缩到/opt/t101.tgz压缩包中

****** 解压缩 *****

tar -xzvf t101.tar.gz #将t101.tar.gz压缩包中的内容释放到当前目录中(注:只能解压当前文件夹下的压缩包)

tar -xzvf t101.tar.gz -C /opt/d102/ #将t101.tar.gz压缩包中的内容解压到/opt/d102/目录中

将文件上传的linux服务器

1、使用第三方工具上传,如:filezilla,SecureFx,winscp

2、命令:rz

把文件下载到本地:

1、sz 文件名

文件被下载到目录 选项--会话选项--X/Y/Zmodem--下载(O)所指定的文件夹

针对windows平台下的zip压缩包的解压

unzip -d 目标路径 待解压文件

unzip -d d101/ f101.zip #将f101.zip解压到d101目录下

*********************************远程操作*********************************

1、在linux系统间远程访问(从一台服务器远程访问另一台服务器)

语法:ssh 被访问的机器的用户名@被访问的机器的IP

ssh root@172.11.1.67

退出:logout

2、scp #远程复制文件(夹)

语法:scp -r 被访问的机器的用户名@被访问的机器的IP:/被复制的文件的路径 目标路径(本地)

scp -r root@172.11.1.112:/root/install.log /root/

***************************组&用户&权限************************

我们先来看看下面的信息:

[root@localhost ~]# ll

总计 68

-rw------- 1 root root 1413 06-12 18:38 anaconda-ks.cfg

drwxr-xr-x 2 root root 4096 06-12 20:55 Desktop

-rw-r--r-- 1 root root 35768 06-14 15:34 install.log

-rw-r--r-- 1 root root 4713 06-12 18:37 install.log.syslog

drwxrwxrwx 13 root root 4096 06-14 17:58 linux

-rw-r--r-- 1 root root 4 06-13 02:11 ttt.txt

第一段:文件类型和权限,以 - 开头的,表示文件;以d开头的,表示目录,权限有rwx,分别是可读可写可执行

第三、四段:文件的属主,文件的属组(属于哪个组的)

************* 组管理 ********

组管理:( cat /etc/group ,查看当前系统存在多少个组)

组:相同特性的用户的集合

查看组的信息 cat /etc/group

用户管理:(/etc/passwd 存储用户基本信息、/etc/shadow存储用户密码信息)

linux 用户分三类:超级用户(root) 、系统用户、普通用户

添加用户: useradd 用户名

用户设定密码: passwd 用户名

useradd u101 #用户登录后,默认进入到其home目录,home目录在/home/目录下(root用户的home目录是/root)

passwd u101 #passwd默认给当前用户设置密码,密码=字母+数字+下划线(_),超过8位,设置密码时,不会显示出来

groups 用户名 #查看用户所在的组

su - u101 #切换用户

权限:Linux中通过控制每一类(有3类用户)用户对文件/文件夹的读、写、执行来实现权限控制

对一个文件而言,用户分为以下三类:

u:所属用户

g:所属用户所在组的用户

o:组以外的用户

rwxr-xr-x: 前三个字符表示拥有者的权限,中间三个字符是组权限,后面三个字符其他人。

r: read 可读

w: write 可写

x:execute 可执行

r可以用数字 4 表示

w可以用数字 2 表示

x可以用数字 1 表示

*********** 修改用户权限 ************

chmod 权限 文件名

chmod u-w,g+w,o=r Desktop #删掉属主的写权限,增加组员的写权限,其他用户只有读的权限

drwxrwxrwx 2 root root 4096 06-12 20:55 Desktop

d:表示该文件为文件夹

第一个rwx,表示该文件所属的用户对其所拥有的操作权限

第二个rwx,表示与该文件所属用户在同组内的用户对其所拥有的操作权限

第三个rwx,表示不与该文件所属用户在同组内的用户对其所拥有的操作权限

r=4;w=2;x=1,755

chmod -R 574 Desktop/ 等同于 chmod -R u-w,g+w,o=r Desktop/ (-R表示文件夹及其所有子内容都会发生更改)

最大是777(drwxrwxrwx),最小是000(d---------)

chmod 777 Desktop/ 等同于 chmod a=rwx Desktop/ #a代表所有用户

*********************************扩展命令*************************************

cal #查看日期

date #查看时间

date -s "2013-03-23 16:36" #修改系统时间

df -h #查磁盘信息

free -m #查看可用内存

top #动态查看系统资源 (默认是5秒刷新一次,相当于windows的资源管理器)

输出变量的值:

自定义变量:export UNAME="brtesting"

echo

math?formula=%E5%8F%98%E9%87%8F%E5%90%8DNAME%20echoPATH

echo $SNAME

who #查看有哪些用户登录了系统

ps -ef #查看系统正在运行的所有进程

ps -ef | grep tomcat #查看指定的进程。查询tomcat进行信息,如果有信息返回,表示tomcat进程已启动,否则,被关闭。

kill -9 pid #强制终止(pid表示进程号,可以用ps命令查看到进程号)

比较两个文件之间差异

diff file1 file2

**************************用户行为******************************

查看用户的操作系统管理员若想知道某一时刻用户的行为,只需要输入命令w 即可,在SHELL终端中输入如下命令:

[root@localhost ~]# w

c8a79f945ebf?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

10:07:13表示执行w的时间是在下午10点07分13秒。

up 304 days 304表示系统运行304天。

3 users 表示当前系统登陆用户总数为7。

Load average 与后面的数字一起表示系统在过去1,5,10分钟内的负载程度,数值越小,系统负载越轻。

从第二行开始构成一个登录用户信息列表,共有8个栏目,分别显示各个用户正在做的事情及该用户所占用的系统资源。

USER:显示登陆用户帐号名。用户重复登陆,该帐号也会重复出现。

TTY:用户登陆所用的终端。

FROM:显示用户在何处登陆系统。

LOGIN@:是LOGIN AT的意思,表示登陆进入系统的时间。

IDLE:用户空闲时间,从用户上一次任务结束后,开始记时。

JCPU:以终端代号来区分,表示在这段时间内,所有与该终端相关的进程任务所耗费的CPU时间。

PCPU:指WHAT域的任务执行后耗费的CPU时间。

WHAT:表示当前执行的任务。

查看某用户是否登陆系统用户很多的时候,可以在w后面加上某个用户名,则会查看该用户执行任务的情况。

[root@localhost ~]# w cssuser

****************************Vi编辑器***********************************

linux常用文本编辑器vi

1、三种模式:(1)命令模式(定位,复制,粘贴,删除)

(2)编辑模式(文本输入)

(3)末行模式(读写退出,替换,显示行号和行结束符)

三种的切换:

命令模式切换到编辑模式:输入i/a。 编辑模式退到命令模式:Esc

2、末行模式是以冒号:开头。注意:末行模式必须是在命令模式下操作。命令:

(1):wq 保存加退出

(2):n n行数 跳转到指定行

(3):q! 强制退出

(4):n1,n2s/需要替换的字符串/替换字符串/g

参数解释:

n1 表示从第n1行开始,表示一个具体的数字,比如:1

n2 表示从第n2行结束,表示一个具体的数字,如果想表示最后一行,可以用$表示,比如:20

g 表示强制替换所有参数。

列子:

:1,5s/oracle/linux/g #替换第1行开始到第5行中的oracle为linux

:3,$s/oracle/linux/g #替换第3行开始到最后一行中的oracle为linux

/* **** 扩展命令

(5):w 文件名 另存为

(6):set nu 显示行号

(7):set nonu 不显示行号

****** */

3、命令模式下的命令:

(1)dd 删除一行,光标所在行

(2)i 进入编辑模式,在光标前编辑

(3)x 删除一个字符。

(4)/ 搜索字符 字符串搜索,查找下一个,按n, 向下查找。如果向上查找,按N。

(5)yy 复制

(6)p 粘帖

/* **** 扩展命令

(7)G 到末行

(8)gg 到首行

(9)$ 到行尾

(10)^ 到行首

(11)ngg 跳转到n行

(12)a 进入编辑模式,在光标后编辑

(13)ndd 删除n行,从光标所在行向下删除n行

(14)u 撤销

(15)o 新增一行并进入到编辑模式,向下增加。如果是大写的O,就是向上增加。

(16)D 删除当前光标所在位置到行尾的内容

(17)nyy 复制n行,从光标所在的位置往下复制

****** */

扩展命令二:

1、mount --- 挂载光驱

2、umount --- 卸载挂载的文件系统

3、rpm -ivh 安装文件名 ---- 安装软件

4、rpm -e 需要卸载的安装包 ---- 卸载软件

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐