Linux学习笔记
2018-10-29 18:22:03 9 举报
AI智能生成
Linux学习笔记思维导图,分为文件系统,常用命令,编辑器,远程操作
作者其他创作
大纲/内容
gedit是一个Linux环境下的文本编辑器,类似windows下的写字板程序,在不需要特别复杂的编程环境下,作为基本的文本编辑器比较合适。
4.1 gedit编辑器
vi 编辑器是 Linux 系统中最常用的文本编辑器,vi 在Linux界有编辑器之神的美誉,几乎所有的 Linux 发行版中都包含 vi 程序。vi 工作在字符模式下,不需要图形界面,非常适合远程及嵌入式工作,是效率很高的文本编辑器,尽管在 Linux 上也有很多图形界面的编辑器可用,但vi的功能是那些图形编辑器所无法比拟的。vim 是 vi 的升级版,它不仅兼容 vi 的所有指令,而且还有一些新的特性,例如 vim 可以撤消无限次、支持关键词自动完成、可以用不同的颜色来高亮你的代码。vim 普遍被推崇为类 vi 编辑器中最好的一个。vi有输入和命令两种工作模式。输入模式(也叫插入模式)用于输入字符。命令模式则是用来运行一些编排文件、存档以及离开vi等操作命令。当执行vi后,首先进入命令模式,此时输入的任何字符都被视为命令。
vi filename:打开或新建文件,并将光标置于第一行行首,如果文件不存在,则会新建文件。
1) 打开文件
如果通过vi打开一个已经存在的文件,首先进入命令模式,此时输入的任何字符都被视为命令,不能输入内容。
2) 编辑文件
一定要先退出插入模式(按Esc进入命令模式),然后(小写状态下),shift + zz (按住 “shift” + 按两下“z”键),或者(大写状态下:ZZ) 即可保存退出当前文件。
3) 保存文件
4.2.2 vi最基本操作
1) vi的插入模式
2) vi的退出
3) vi的删除和修改功能
4) vi的行定位功能
5) vi的文本查找功能
6) vi的替换功能
7) vi的set指令
4.2.3 vi实用命令
4.2 vi编辑器
编辑器
SSH为Secure Shell的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录,以及用户之间进行资料拷贝。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是 UNIX 系统上的一个程序,后来又迅速扩展到其他操作平台。SSH 在正确使用时可弥补网络中的漏洞。SSH 客户端适用于多种平台。几乎所有 UNIX 平台—包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。使用SSH服务,需要安装相应的服务器和客户端。客户端和服务器的关系:如果,A机器想被B机器远程控制,那么,A机器需要安装SSH服务器,B机器需要安装SSH客户端。
5.1 SSH介绍
注意:远程登录的两台机器必须要能ping通(平通)。
首先,查看需要被远程机器的ip:
远程登录(这里是用户 wencong ( A 机器 ) 远程登录 edu ( B 机器 ) ), 可以不用sudo :
SSH 告知用户,这个主机不能识别,这时键入\"yes\",SSH 就会将相关信息,写入\" ~/.ssh/know_hosts\
接着,提示输入登陆密码:
登陆成功:
操作命令:ssh -l username hostip
5.2.1 Linux平台相互远程
如果想在 Windows 平台下远程登录 Linux,这时候,Windows 需要安装 安装相应软件包。这里介绍是Xmanager。
Xmanager是一款小巧、便捷的浏览远端X窗口系统的工具。它包含Xshell、Xftp等软件:
Xshell:是一个Windows平台下的SSH、TELNET和RLOGIN终端软件。它使得用户能轻松和安全地在Windows平台上访问Unix/Linux 主机。Xftp:是一个应用于 Windows 平台的 FTP 和 SFTP 文件传输程序。Xftp能安全地在Unix/Linux 和 Windows 平台之间传输文件。
Linux默认采用的编码格式是UTF-8,Windows默认采用的编码格式是ANSI(GB2312、GBK),所以需要设置一下相应编码:
配置Xshell,远程登录:
5.2.2 Windows远程登录Linux
5.2 远程登录
SSH 提供了一些命令和shell用来登录远程服务器。在默认情况下,不允许用户拷贝文件,但还是提供了一个“scp”命令。
scp FileName RemoteUserName@RemoteHostIp:RemoteFilescp FileName RemoteHostIp:RemoteFolderscp FileName RemoteHostIp:RemoteFile
本地文件复制到远程:
scp -r FolderName RemoteUserName@RemoteHostIp:RemoteFolderscp -r FolderName RemoteHostIp:RemoteFolder
本地目录复制到远程:
scp RemoteUserName@RemoteHostIp:RemoteFile FileNamescp RemoteHostIp:RemoteFolder FileNamescp RemoteHostIp:RemoteFile FileName
远程文件复制到本地:
scp -r RemoteUserName@RemoteHostIp:RemoteFolder FolderNamescp -r RemoteHostIp:RemoteFolder FolderName
远程目录复制到本地:
拷贝远程的文件:
拷贝远程的文件可以任意修改其名字:
拷贝远程的文件可以指定存放路径:
5.3.1 Linux平台相互传输
Xmanager自带的Xftp是一个应用于 Windows 平台的 FTP 和 SFTP 文件传输程序。Xftp能安全地在Unix/Linux 和 Windows 平台之间传输文件。
5.3.2 Windows和Linux相互传输文件
5.3 远程传输文件
远程操作
1)把http.tar.gz拷贝到Linux环境中:
2)解压压缩包:
3)进入解压后的目录,终端敲make编译代码:
4)如果是RedHat环境,需要额外配置一下防火墙:
5)root用户启动或关闭web服务:
a)必须root用户先启动web服务:
b)查看web服务器所在机器的ip:
c)打开能平同web服务器(192.168.31.143)机器的浏览器,网址输入192.168.31.143:
6)环境测试
http.tar.gz是用C语言编程的一个简单版webserver。
6.1 webserver环境搭建
1)重新打开一个终端,进入web服务器所在目录:
2)通过vi新建hello.c文件,内容写如下代码:
3)退出保存hello.c后,通过gcc编译代码,可执行程序的后缀名(扩展名)
Linux默认采用的编码格式是UTF-8,浏览器显示默认采用的编码格式是GBK,在浏览器中直接设置utf-8编码或者通过代码指定浏览器为utf-8编码。
a) 直接设置浏览器编码
b) 通过代码指定浏览器为utf-8编码,代码中加上头部元素信息:
5)显示中文乱码解决方法(了解)
6.2 网页版HelloWorld
6. webserver环境搭建
Unix/Linux操作系统介绍
Linux,正斜杠,45度
DOS,反斜杠,135度
路径
2.1 目录和路径
C:
D:
E:
Windows多个树状结构
/
Linux一个树状结构
Windows和Linux文件系统区别
根目录
可执行二进制文件
/bin
Linux系统启动时用到的文件
/boot
设备文件
/dev
系统配置文件
/etc
系统默认的家用户
/home
系统使用的函数库
/lib
系统异常产生错误时,遗失的片段存储目录
/lost+found
光盘默认挂载点
/mnt
主机安装的额外软件
/opt
系统核心、外部设备、网络状态数据在内存中
/proc
系统管理员家目录
/root
系统管理员使用的可执行命令
/sbin
一般用户或正在执行的程序临时存放目录
/tmp
服务启动之后需要访问的数据
/srv
应用程序存放目录
/usr
系统执行过程中经常变化的文件
/var
Linux目录结构
2.2 文件系统
普通文件
目录文件
管道文件
似于 windows 下的快捷方式,链接又可以分为软链接(符号链接)和硬链接。
链接文件
文件分类
2.3 一切皆文件
用户自己访问(所有者)
指定的用户组中的用户访问(用户组)
系统中的任何用户访问(其他用户)
访问用户
对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
读权限(r)
对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
写权限(w)
对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。
可执行权限(x)
访问权限
“d” 代表文件夹
“-” 代表普通文件
“c” 代表硬件字符设备
“b” 代表硬件块设备
“s”表示管道文件
“l” 代表软链接文件
第1个字母代表文件的类型
示例说明
2.4 文件权限
文件系统
command:命令名,相应功能的英文单词或单词的缩写
[-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选
parameter1 …:传给命令的参数,可以是零个一个或多个
command [-options] [parameter1] …
命令格式
一般是 Linux 命令自带的帮助信息,并不是所有命令都自带这个选项。
如我们想查看命令 ls 的用法:ls --help
1) --help
man 是 Linux 提供的一个手册,包含了绝大部分的命令、函数使用说明。该手册分成很多章节(section),使用 man 时可以指定不同的章节来浏览不同的内容。
man 中各个 section 意义如下
man [选项] 命令名
man使用格式
查看 ls 的用法:man 1 ls ( 1:为数字“1”,代表第 1 个 section,标准命令 )
man设置了如下的功能键
2) man
查看帮助文档
ls常用参数
图中列出的信息含义如下图所示
使用特殊字符来同时引用多个文件名,这些特殊字符被称为通配符
1) 查看文件信息:ls
Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。
如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
>输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。
2) 输出重定向命令:>
查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。
more index.html
3) 分屏显示:more
管道:一个命令的输出可以通过管道做为另一个命令的输入。
管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。
ll | grep java
4) 管道:|
clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + l ( “l” 为字母 )。
5) 清屏:clear
6) 切换工作目录: cd
7) 显示当前路径:pwd
通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。
mkdir test
mkdir -p a/b/c
8) 创建目录:mkdir
可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败。
真系无卵用
9) 删除目录:rmdir
可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。
常用参数及含义如下表所示:
rm -rf test
10) 删除文件:rm
快捷方式
软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
修改硬链接文件会修改源文件。
删除硬链接文件不会删除源文件。
硬链接:硬链接只能链接普通文件,不能链接目录。
链接文件分为软链接和硬链接。
ln 源文件 链接文件
硬链接
ln -s 源文件 链接文件
软链接
使用格式:
如果没有-s选项,代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在。软链接-s选项是更常见的形式。注意:如果软链接文件和源文件不在同一个目录,源文件最好要使用 绝对路径 ,不要使用相对路径。
11) 建立链接文件:ln
12) 查看或者合并文件内容:cat
Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep [-选项] ‘搜索内容串’文件名
在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep‘a ’1.txt。
grep一般格式为:
常用选项说明:
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
grep搜索内容串可以是正则表达式。
grep常用正则表达式:
13) 文本搜索:grep
find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。
find ./ -name test.sh
14) 查找文件:find
cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。
cp vim_configure/ code/ -ivr 把文件夹 vim_configure 拷贝到 code 目录里:
15) 拷贝文件:cp
用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。
16) 移动文件:mv
Linux系统文件类型不是根据文件扩展名分类的,通过file命令可以确认文件具体类型。
17) 获取文件类型:file
tar可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
tar [参数] 打包文件名 文件
tar命令很特殊,其参数前面可以使用“-”,也可以不使用。
常用参数:
注意:除了f需要放在参数的最后,其它参数的顺序任意。
tar使用格式
18) 归档管理:tar
tar与gzip命令结合使用实现文件打包、压缩。tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
gzip [选项] 被压缩文件
gzip使用格式如下:
常用选项:
tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。
tar -zcvf 压缩包包名 文件1 文件2 ...
例如:tar zcvf test.tar.gz 1.c 2.c 3.c 4.c把 1.c 2.c 3.c 4.c 压缩成 test.tar.gz
压缩用法:
tar -zxvf 压缩包包名
解压用法:
解压到指定目录:-C (大写字母“C”)
例子:tar -xvf new.tar.gz -C ./test/ 将 new.tar.gz 解压到当前目录下的 test 目录下:
19) 文件压缩解压:gzip
tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.bz2。在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。压缩用法:tar jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)解压用法:tar jxvf 压缩包包名 (tar jxvf bk.tar.bz2)
20) 文件压缩解压:bzip2
通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。压缩文件:zip -r(必须加此参数) 目标文件(没有扩展名) 源文件解压文件:unzip -d 解压后目录文件 压缩文件
21) 文件压缩解压:zip、unzip
22) 查看命令位置:which
3.3.1 文件管理
whoami该命令用户查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。
由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份。
1) 查看当前用户:whoami
who命令用于查看当前所有登录系统的用户信息。
2) 查看登录用户:who
w命令也可以查看登录当前系统的用户信息。与who命令相比,w命令的功能更强大,它不但可以显示当前有哪些用户登录到系统,还可以显示这些用户正在进行的操作,并给出更加详细和科学的统计数据。
w [选项] [用户名]
w命令的格式如下:
如果w命令携带用户名,则只显示指定用户的信息,否则显示当前所有登录用户的信息。
3) 查看登录用户:w
如果是图形界面,退出当前终端;如果是使用ssh远程登录,退出登陆账户;如果是切换后的登陆用户,退出则返回上一个登陆账号。
4) 退出登录账户: exit
可以通过su命令切换用户,su后面可以加“-”。su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录(su - 会切换工作目录):
注意:如果是ubuntu平台,需要在命令前加“sudo”,如果在某些操作需要管理员才能操作,ubuntu无需切换到root用户即可操作,只需加“sudo”即可。sudo是ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root 用户的登陆和管理时间,提高了安全性。
5) 切换用户:su
groupadd 新建组账号groupdel 删除组账号cat /etc/group 查看用户组
6) 添加、删除组账号:groupadd、groupdel
usermod -g 用户组 用户名
使用方法:
7) 修改用户所在组:usermod
在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。
useradd [参数] 新建用户账号
useradd命令的使用格式如下:
Linux每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录(/home/用户);每一个用户必须有一个主目录,所以用useradd创建用户的时候,一定给用户指定一个主目录;用户的主目录一般要放到根目录的home目录下,用户的主目录和用户名是相同的;如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
相关说明:
8) 添加用户账号:useradd
在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。
9) 设置用户密码:passwd
10) 删除用户:userdel
不管是哪位用户从哪里登录,管理员都可以通过last命令查出,以及是否有人非法登录。
11) 查询用户登录情况:last
chmod 修改文件权限有两种使用格式:字母法与数字法。
字母法:chmod u/g/o/a +/-/= rwx 文件
chmod o+w file 给文件file的其它用户增加写权限:
chmod u-r file 给文件file的拥有者减去读的权限:
chmod g=x file设置文件file的同组用户的权限为可执行,同时去除读、写权限:
chmod 777 file:所有用户拥有读、写、执行权限
注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。如:chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限。
文件所有者:读、写、执行权限同组用户:读、执行的权限其它用户:执行的权限
chmod 751 file:
数字法:“rwx” 这些权限也可以用数字来代替
12) 修改文件权限:chmod
使用方法:chown 用户名 文件或目录名
13) 修改文件所有者:chown
使用方法:chgrp 用户组名 文件或目录名
14) 修改文件所属组:chgrp
3.3.2 用户、权限管理
cal命令用于查看当前日历,-y显示整年日历:
1) 查看当前日历:cal
设置时间格式(需要管理员权限):
date [MMDDhhmm[[CC]YY][.ss]] +format
CC为年前两位yy为年的后两位,前两位的mm为月,后两位的mm为分钟,dd为天,hh为小时,ss为秒。如: date 010203042016.55。
2) 显示或设置时间:date
进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。
ps命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下:
ps aux | sort -k4nr | head -n 10
使用内存前10
3) 查看进程信息:ps
top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以在使用top命令时加上-d <interval>来指定显示信息更新的时间间隔。
在top命令执行后,可以按下按键得到对显示的结果进行排序:
4) 动态显示进程:top
kill命令指定进程号的进程,需要配合 ps 使用。
kill [-signal] pid
信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程。
kill 9133 :9133 为应用程序所对应的进程号
有些进程不能直接杀死,这时候我们需要加一个参数“ -9 ”,“ -9 ” 代表强制结束:
kill -9 9378
5) 终止进程:kill
用户可以将一个前台执行的程序调入后台执行,方法为:命令 &如果程序已经在执行,ctrl+z可以将程序调入后台jobs查看后台运行程序fg编号(编号为通过jobs查看的编号),将后台运行程序调出到前台
6) 后台程序:&、jobs、fg
7) 关机重启:reboot、shutdown、init
在redhat平台下,可通过命令进行切换:init 3\t切换到字符界面init 5\t切换到图形界面
通过快捷键切换(适用大部分平台):Ctrl + Alt + F2\t切换到字符界面Ctrl + Alt + F7\t切换到图形界面
8) 字符界面和图形界面切换
df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。
df -h
9) 检测磁盘空间:df
du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。
du [选项] 目录或文件名
du命令的使用格式如下:
10) 检测目录所占磁盘空间:du
在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装、卸载及管理等操作。RPM 的全称为Redhat Package Manager ,是由Redhat公司提出的,用于管理Linux下软件包的软件。它是一种软件打包发行并且实现自动安装的程序,需要用rpm程序安装的软件包,其后缀是.rpm,并可以对这种程序包进行安装、卸装和维护。
rpm [选项] [软件包名]
rpm命令的使用格式如下:
如果是在ubuntu平台,软件的安装可以通过互联网在线安装,更加方便快捷:
11) 应用软件安装和卸载
如果,我们只是敲:ifconfig,它会显示所有网卡的信息:
我们可以通过ifconfig配置网络参数:
redhat修改/etc/sysconfig/network-scripts/ifcfg-eth0文件
IPADDR=IP地址GATEWAY=默认网关
ubuntu修改/etc/NetworkManager/system-connections/Wired connection 1文件
[ipv4]method=manualaddresses1=IP地址;24;默认网关;
ifconfig配置的网络参数在内存中,计算机重新启动之后就失效了,如果需要持久有效就需要修改网络接口的配置文件:
12) 查看或配置网卡信息:ifconfig
ping通过ICMP协议向远程主机发送ECHO_REQUEST请求,期望主机回复ECHO_REPLY消息通过ping命令可以检查是否与远程主机建立了TCP/IP连接
使用方法:ping [参数] 远程主机IP地址
ping -c 4 www.baidu.com
13) 测试远程主机连通性:ping
route可以增加,修改,显示路由信息,使用格式如下:
route [-v] [-A family] add default [gw 默认网关地址] [[dev interface]]
示例:route add default gw 192.168.1.1 dev eth0
14) 网络路由设置:route
netstat命令监控网络状态,包括接口设置,IP路由,各种网络协议的统计,netstat输出信息说明如下:
netstat常用命令参数:
15) 监控网络状态:netstat
3.3.3 系统管理
常用命令
Linux学习笔记
0 条评论
回复 删除
下一页