1.性能强劲,运行稳定,一般作为服务器;
2.整个操作系统易压缩,方便植入硬件设备;
3.开源免费(源代码开放,方便大众维护或进行二次开发);
4.对于初学者来说是目前建立编程思维的最好环境;
5.与Windows系统不同,Linux系统没有盘符的概念(不分盘),所有文件都处于根目录下(目录也是一种特殊文件)。
1.主机上安装双系统(或多系统),在启动时选择启动Linux操作系统;
2.配置虚拟机服务,给虚拟机安装好Linux操作系统后通过虚拟机进行访问;
3.购买Linux操作系统的云服务器,通过终端连接访问云服务器的Linux操作系统。
win10是自带SSH服务的(SSH又叫安全外壳协议,是建立在应用层基础上的安全协议),所以这里直接介绍一种通过Xshell连接阿里云服务器上的Ubuntu(桌面应用为主的Linux操作系统)的方法:
安装好Xshell之后,打开Xshell并新建会话,在主机输入框输入阿里云服务器上的相应外网地址,点击确定后输入对应用户名和密码(在购买阿里云服务器时拥有的账户密码,默认密码最好进行重置)即可建立连接。
登陆成功则会显示欢迎语,并在欢迎语下出现类似root@iZ2ze8fsbhihnb8y8xolzvZ:~#的字符串,各部分代表的意思是:
@前面的部分代表当前用户,root代表拥有该操作系统最高权限的超级管理员;
@是该字符串的分隔符;
@与:之间的部分代表主机名称;
~部分代表当前所在目录,~代表根目录;
#部分代表命令分隔符,之后部分可对操作系统输入命令,超级管理员用#分割,普通用户用$分割。
1.目录结构
/:根目录
/home:普通用户家目录(默认情况下,普通用户只能在用户家目录中进行增加、删除、修改操作)
/root:超级管理员的家目录
/etc:系统配置文件目录
/opt:第三方文件解压安装目录
/usr:文件的默认目录
...
2.基本命令列举
(1)$ clear:清理终端屏幕
(2)$ pwd:输出当前目录地址
(3)$ ls options directory:列出指定目录中的文件(options取值为-a时显示出所有文件,包含隐藏文件;取值为-r时显示递归清单;取值为-l时以长格式列出所有文件的详细信息)
(4)$ cd directory:切换到指定目录中
(5)$ man 命令:查看指定命令手册(进入手册后,输入回车则向下翻一行,输入空格则向下翻一页,输入q则退出手册)
...
3.目录及文件管理
(6)$ touch filename:创建一个空的文件或者更新文件最近修改时间
(7)$ mkdir [-p] directory:创建目录(需要保证有此权限)(创建父子目录时,-p能够在父目录不存在时就新创建一个)
(8)$ cp:拷贝文件/目录到指定文件/目录中
$ cp [-i] source_file destination_file
$ cp [-i] source_file(s) destination_directory
$ cp -r[i] source_directory(s) destination_directory
(-i会在覆盖目标文件之前给出提示;-r当源文件为目录文件时,复制该目录下所有的子目录和文件)
例如:
$ cp a.txt b.txt
$ cp -i a.txt b.txt dir1
$ cp -r dir3 dir4
(9)$ mv:移动(剪切)文件到指定目录或重命名文件
$ mv [-i] source_file destination_file
$ mv [-i] source_file(s) destination_directory
$ mv [-i] source_directory(s) destination_directory
例如:
$ mv nuts beans
$ mv /export/home/jerry/brands ~
$ mv dir5 dir6
(10)$ rm:删除文件或者删除非空目录($ rmdir只能删除空目录)
$ rm [-i] filename(s)
$ rm -r[i] directory_name(s)
$ rmdir directory_name(s)
(-i会在删除前逐一询问确认;-r会将目录及以下之档案亦逐一删除;-rf为删除时不确认)
例如:
$ rm file1 file2 file3
$ rm -i file4
$ rm -r dir6
$ rm -ir ~/dir7
$ rmdir empty_dir
(11)$ gzip filename:以gzip格式压缩文件或目录(会删除原文件)
(12)$ bzip2 filename 以bzip2格式压缩文件或目录(会删除原文件)
(13)$ zip zipname.zip filename(s) 以zip格式打包压缩文件或目录(保留原文件)
例如:
$ gzip file1.txt => file.txt.gz
$ bzip2 file1.txt => file.txt.bz2
$ zip all.zip file1.txt file2.txt =>all.zip
(14)$ gunzip filename:以gzip格式压缩解文件或目录
(15)$ bunzip2 filename:以bzip2格式解压缩文件或目录
(16)$ unzip filename:以zip格式解压缩文件或目录
例如:
$ gunzip file1.gz => file1.txt
$ bunzip2 file1.bz2 => file1.txt
$ unzip my.zip => file1.txt file2.txt
(17)$ tar [cvf] package_name filename(s):归档(用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件)
例如:
$ tar cvf all.tar file1 file2 file3
$ tar cvfz all.tar.gz file1 file2 file3
$ tar cvfj all.tar.bz2 file1 file2 file3
(-c代表创建归档文件;-x代表拆档;-v代表打印细节;-f代表指定归档/拆档文件;-j代表以bzip2格式压缩;-z代表以gzip格式压缩)
(18)$ tar [xvf] package_name:拆档
例如:
$ tar xvf all.tar
$ tar xvfz all.tar.gz
$ tar xvfj all.tar.bz2
(19)$ ln:创建连接文档,连接文档分为两种类型,硬链接(防止误删除,多个指针指向同一个inode)和软链接(快捷方式)
$ ln [-s] source_file destination_file
例如:
$ ln /etc/passwd /etc/passwd.h(硬链接)
$ ln -s /etc/passwd /etc/passwd.s(软链接)
(20)$ more filename:预览文件内容
(21)$ less filename:预览文件内容(可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件)
(空白键能够向下翻动一页;
/字串能够向下搜寻『字串』的功能;
?字串 能够向上搜寻『字串』的功能;
n能够重复前一个搜寻 (与/或?有关!);
N能够反向的重复前一个搜寻 (与/或?有关!);
q能够离开less这个程序)
(22)$ cat filename (filename2):将多个文件内容显示出来
(23)$ tac filename:反向展示文件内容,从最后一行到第一行反向显示
(24)$ head filename:预览文件内容头10行
(25)$ tail filename:预览文件内容末尾10行
(26)$ nl filename:添加行号后显示文件内容
>、>>:重定向(写入文件内容)(>会覆盖原内容;>>会在原内容后追加)
$ date > a.txt(将当前时间写入a.txt)
$ date >> a.txt(将当前时间追加到a.txt内容后面)
$ more /etc/passwd > b.txt(将etc下passwd的信息写入b.txt)
$ ls -l /etc > c.txt(-l代表列出详细信息,将etc里的详细信息写入c.txt)
(27)$ find path expression [action]:根据指定模板查找文件,然后在匹配的文件上执行一个命令
例如:
$ find ./ -name ‘*.txt‘代表查找当前目录中所有的.txt文本文档
$ find / -name perl
$ find . -mtime 10 –print
$ find /export/home/html -name "*.html" -print | xargs perl -p -i.bak -e “s/Copyright 2004/Copyright 2005/g;”
xargs——与其他命令配合使用,提取上一个命令的结果作为随后命令的参数
perl——语言解释器
-p——查找并且替换
-i.bak——修改之前进行备份,备份文件为 使用.bak结束
-e——执行操作
(28)$ grep [option(s)] string filename:使用指定模式的字符串在一个文件中进行搜索并且输出所有包含该模式的行
-i——搜索过程中忽略大小写
-v——显示不匹配指定模式的行
例如:
$ grep 1003 /etc/passwd代表查找passwd文件中的包含1003行的内容
4.账户及权限管理
(29)$ adduser 用户名称:添加一个用户
(过程:新建组,组名与用户名保持一致,在/etc/group下保存了组信息;
新建用户,并且将用户放到刚刚新建的组中,在/etc/passwd下保存了用户信息,在/etc/shadow下保存了用户的密码信息;
创建了一个用户家目录 /home/用户名称;
将/etc/skel拷贝到用户家目录)
(30)$ userdel [-r] 用户名称:删除一个用户(-r代表同时删除用户家目录)
(31)$ su - 用户名称:切换用户
(32)$ sudo 命令:以root 的身份来运行命令。并非所有人都能够运行sudo,而是仅有规范到 /etc/sudoers内的用户才能够运行sudo这个命令,可用vi编辑在其中添加能够使用sudo命令的用户。
(33)$ usermod 修改操作 用户名称:修改用户信息,例如$ usermod -g 1008 zhangsan代表将zhangsan的组id换成1008
(34)$ groupadd:新增组
(35)$ groupdel:删除组(如果某个账号使用该群组,则不能删除)
(36)$ groupmod 修改操作 组名称:修改组信息,例如$ groupmod -n group0 boss代表将boss组名称改为group0
用户身份:
拥有者——u——user
同组人——g——group
其他人——o——other
所有人——a——all
权限类型:
读——r——read
写——w——write
执行——x——execute
(37)$ chmod 修改操作 filename(s)
通过表达式修改权限,例如:
$ chmod g-r a.txt代表减去同组人对a.txt的读权限
$ chmod o+w a.txt代表加上其他人对a.txt的写权限
$ chmod a=rw a.txt代表给所有人赋予对a.txt的读写权限
通过二进制方式修改(二进制最终结果组合成的3位数分别代表拥有者、同组人和其他人)
--x——001——1
-w-——010——2
-wx——011——3
r--——100——4
r-x——101——5
rw-——110——6
rwx——111——7
例如:
$ chmod 644 a.txt代表修改a.txt的权限,拥有者具有读写权限,同组人和其他人具有读权限
5.安装软件
(1)apt命令安装/卸载
(38)# apt update/remove 更新/卸载源:安装/卸载软件包
例如:
# apt install zip
# apt install git
$ sudo apt install vsftpd
$ sudo apt remove --purge vsftpd
(2)解压缩安装
将安装包移动到/opt后,用解压或拆档命令解压安装。
6.元字符
*:匹配0到多个字符,例如$ ls d*
?:代表任意单个字符,例如$ ls d?、$ ls z?.txt
[ ]:匹配指定范围内的单个字符,例如$ ls [b-f]b*、$ ls [fF]f*a?c
;:在一行中输入多个命令,例如$ cd;ls、$ date;cal;pwd
|:将“|”前一个命令的的输出作为“|”后一个命令的输入,例如$ ls -l /etc | more
7.vi/vim文本编辑器
(39)$ vi/vim:打开新文件,修改完文件后再保存(进入vim文本编辑器欢迎界面)
(40)$ vi filename:打开或新建文件
==========以下介绍转载自https://www.runoob.com/linux/linux-vim.html==========
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键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:
附vim按键简图
====================
vi操作:
i——在光标所在字符前插入
I——在光标所在行行首插入
a——在光标所在位置后插入
A——在光标所在行行末插入
o——在光标所在行下插入一空行
O——在光标所在行上插入一空行
<Esc>——退出插入状态
x——删除一个字符
dw——删除当前词
3dw——删除三个词
dd——删除当前行
5dd——删除五行
:5,10d——删除5到10行内容(底行模式)
r——替换一个字符
cw——替换一个单词
cc——替换一行
C——替换从光标至行尾
yw——拷贝词
yy——拷贝行(或Y)
p——当前行下粘贴
:1,2co3——拷贝行1,行2在行3之后(底行模式)
:4,5m6——移动(剪切)行4,行5在行6之后(底行模式)
:w——存盘(底行模式)
:w newfile——存成新文件(底行模式)
:wq——存盘退出Vi(或ZZ,或:x)(底行模式)
:wq!——强制存盘退出Vi(或ZZ!,或:x!)(底行模式)
:q!——强行退出不存盘(底行模式)
~——改变大小写
J——把当前行和下一行连起来
u——废除刚才的编辑操作(undo)
:set nu——显示行代码 (:set nonu)(底行模式)
:21——光标停在指定行(底行模式)
21G——光标停在指定行 (1G到文件头,G到文件尾)(先按数字再按字母,shift+字母输出大写)
/字符串——从当前行往下查找字符串
?字符串——从当前行往上查找字符串
n——继续查找
:r file2——在光标所在位置插入另一个文件内容(底行模式)
:1,$s/旧字符串串/新字符串——替换指定行中首次出现的旧字符串,1-$相当于选中全行,如果在后面加上/i则忽略大小写差别,加上/g则可以全文替换,加/ig同时生效(底行模式)
:%s /旧字符串/新字符串/g——替换全文(底行模式)
:split—— 横向分屏(底行模式)
:vplit——纵向分屏(底行模式)
:open 目录——在当前分屏中打开指定文件或者目录(底行模式)
Ctrl + ww——在不同的分屏中切换光标
:close——关闭当前分屏(底行模式)
8.进程管理
(41)$ ps:列出当前系统中正在运行的进程
-e——列出准备就绪的或者正在运行的程序
-f——显示程序的详细信息
例如:
$ ps -ef | grep java代表在所有进程中找到java相关的进程
(42)$ kill [-signal] process-id:终止一个进程,通常用于终止不能使用正常方式终止的一个进程。
例如:
$ kill 12932
$ kill -9 12418代表杀死编号为12418的进程
(43)$ sleep time:让当前进程进入睡眠,time为睡眠时间,加上空格&则放到后台执行
(44)$ jobs:查看后台任务
Ctrl +z——将前台任务放置到后台执行,此时任务会暂停
(45)$ bg %n:启动暂停的后台任务
(46)$ kill %n:结束后台任务
(47)$ fg %n:将后台任务调到前台
(48)$ service 服务名称 服务状态:该目录下存放服务的启动文件,使用service命令可以重启或者停止指定服务。
例如:
$ service mysql.server start
$ service mysql.server restart
$ service mysql.server stop
原文:https://www.cnblogs.com/wodeqiyuan/p/11370458.html