Linux 常用命令, SSH, 以及简单操作

1 篇文章 0 订阅


1. Linux Terminal 简介


类似于windows的shell/cmd,linux的terminal可以做很多很多事。

1.1 字体颜色修改

Terminal的font,size, color甚至cursor都是可以根据个人喜好做修改 ,只需要右击点profile-profile preferences就可以修改了

在最左边可以看到terminal的图标,如果需要固定,右键选择”unlockfrom launcher”即可 



 1.2 常用基本命令

打开terminal后首先看到的是我们之前设定的username@hostName想要查看当前目录位置,可以输入 pwd回车 [print working directory]

快捷键ls 可以list该目录下的文件夹和文件

快捷键 ls -l 会列出该目录下的文件文件夹的详细信息

快捷键 ls -a 会列出该目录下所有文件(包括隐藏文件),隐藏文件在linux中也叫dot file/’.’ File [对应windows cmd下的h属性]//.file 没有意外不要去修改嗯

上面的-l和-a可以联合起来使用,在terminal里输入ls-la回车,列出的就是所有的文件文件夹的详细内容

尝试了基本的命令后,屏幕还是有点messy的,清理屏幕的话可以直接输入clear回车,就会回到最初状态了

 

通过terminal阅读文本文件,可以通过输入cat + 路径来实现。

比如在桌面新建文本命名为text, 打开后输入文本内容并保存。

在terminal中输入catDesktop/text 回车,可以看到文本内容显示在了terminal上


2. 浏览和使用linux上的文件

2.1新建, 移除, 复制文件和目录


在terminal里,cd是change directory, cd 加文件夹名可以进入文件夹[和windows的shell一样]

回到上层目录只需输入cd .. 即可[同windows]

如果在terminal里想回到home,直接输入cd回车即可

新建目录:mkdir 加文件名

移除目录:rmdir 加文件名 【只在目录里面没有文件时可用】

新建文件:touch 加文件名 【如果已经有了同名的文件则不会新建】

移除文件:rm 加文件名

当前目录复制文件:cp 复制的文件名 复制后的文件名

移动文件:mv 文件名 目标目录【移动到其他目录】,mv 文件名 新文件名【当前目录下重命名】


3. 查找和比较文档

查找文档中关键词:

我们有一个文本文档,需要搜索文档里匹配的字段,这时候可以用grep 关键词

来到需要搜索的文档的目录下,输入 grep 搜索字段名 搜索文件名 再回车即可

比较两个文档:

在文档所在目录下 输入diff文档1名 文档2名 回车即可

-         修改密码 输入关键字passwd回车 会提示先输入原密码,再进行修改

-         变量赋值 变量名=变量值[等号左右没有空格]

-         关键词 echo 加文字内容,表示显示echo后面的内容;echo$变量名 表示显示变量

-         关键词 info 加命令词 会给出该关键词的信息

-         点击键盘上下键可以迅速回顾之前已经输入的命令


4. 将terminal显示的结果保存到文件


有时候我们想保存在terminal显示的信息,可以在正常输入的命令后面加 ‘>’ 再加希望命名的文件名即可,’>’ 不仅可以创建一个新文档(如果路径下没有输入的文件名),也可以重写一个文档 (如果路径下已经存在同名的文档)

如果想在原文档后面加上新的内容,将’>’改为’>>’即可

 

5. 文件权限


以下面路径的文件为例,每一行前面的内容即文件的权限

第一个字符如果是’-’, 代表这是一个文件;第一个字符如果是’d’,代表这是一个目录

r.w.x read, write, execute

可以看到每个文件文档前面是有三组3个字符的权限的,第一组是针对文件所有者的权限,第二组是针对整个小组的权限,第三个是针对其他用户给的权限

U – user, g – group, o – other people 

修改权限可以使用chmod 加希望修改权限的组+ 修改的权限符号 加希望修改的文件名

 

对应这些权限,有一个偷懒的方法:

4 – read

2 – write

1 – execute

0 – no permission

7 – combining all the numbers

Chmod 777 test 表示给user,group和other读写加执行的权限 

6. 使用checksum确认文件


每当我们下载一个文件,会对应一串SHA-1来确保这个文件是我们所下载的没有问题的。

如我们下载raspberry pi下面的NOOBSLITE文件,可以看到网页提供给我们一个SHA-1, 这时候我们可以在terminal进入下载目录,输入shalsum加文件名 回车,会看到出来一串的字母和数字 ,如果这串信息和网页提供给我们的SHA-1一致,那么这个文件就是我们下载的正确的文件。

比较这两串数字可以直接在terminal比较,在上一个命令下加入| grep 加网页中的字符串 回车,如果说结果是红色,表示这两个字符串内容一致

 

如果说担心网页上提供的SHA-1是篡改过的,希望可以更加保险的话,可以换一个网络或者问问其他人得到的是否也是同样的字符串

 

7. 压缩和解压缩tar, gz文件


压缩文件: 关键词gzip 文件名 [注: 文件名如果有空格的,需要在空格前面加一个’\’,在terminal里,默认空格后面出现的是一个命令]

解压缩文件:关键词gunzip 文件名.gz

压缩不止一个文件:tar cvf 文件名.tar加上所有需要压缩的文件名

[c 创建, v 终端显示结果,f file选项]

解压缩tar文件:tarxvf 文件名.tar [x: extract解压缩]

 

8. User:


Super user可以用root来管理,但root权限运用可能操作不当引起不必要麻烦,所以慎用。除了root我们可以用sudo(super user do)

管理用户

我们可以新建一个文档在桌面,-la查看发现naomi出现两次,这是因为主用户是naomi,当有主用户时,系统会自动给主用户划分到组里,这个组的组名同主用户名

加入一个user

关键词:sudo useradd 新用户名 回车,系统提示输入super user的密码,输入后给新用户创建密码:sudopasswd 新用户名 即可

 修改密码

输入passwd回车 按照提示修改即可


9. 使用APT apt-get 安装软件


在terminal里可以通过关键词来安装更新软件

如:输入sudo apt-get update ,会自动帮我们下载更新软件[sudo: super user do ] 

如果想在terminal看是否安装某个软件,可以这样查看

比如查看java: 输入java-version回车得到如下结果

 

可以看到已经安装好了java

如果没有安装php5:

输入php5 -version 可以看到下面提示没有安装, 可以通过sudo apt-get install php5-cli进行安装

 

如果下载了软件但是由于比如文件太多不知道该如何安装,可以先cd进入home目录,cd安装包名/bin 回车,输入ls回车。 我们可以看到.sh结尾的文件,.sh指shell script, 是可以从terminal直接运行安装的,可以通过关键词bash加文件名回车直接运行

tips: 在ubuntu上安装中文输入法

输入sudo apt-get install ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4 安装,然后im-config -s ibus来启动ibus 

在ibus里可以选择中文的拼音或五笔等输入法 

10. Group


Group可以很方便的给一个组/多人设置权限

新建group:sudo groupdadd 组名

给组加入组员: sudo usermod -a -G 组名 组员//-g和-G区别在于 每个组员都属于组员组,如果是-G,这个组员会被加入到一个新的组,如果是-g,组员则会先从原本的组剔除,再加入新的组

删除组员:sudo userdel 组员

 

在terminal输入cd../.. 可以退回两层或者回到最外层目录,回去后输入ls可以看到,下图中的etc即我们的配置文件configuration files ,进入到etc目录,列出所有文件可以看到所有的密码都在这个目录下 ,但是cat所有的password只会看见密码都是x,因为linux会给所有的密码做加密,我们不会真的看到密码,X表示密码保存在shadow文件里。如果想查看shadow,就会出现拒绝访问:

如果行驶sudo权限查看密码,会看到:

这里面的’*’表示这个密码并非登陆访问密码

其他的密码可以看到也是加了密的

通常我们不需要去了解这些幕后的信息,也不要去扰乱这些信息,linux已经给我们创造了一个相对安全的环境  

 

11. 设置和链接SSH server [以Digital Ocean为例]

这可以让我们和其他地方的服务器取得联系,也可以让我们更好管理自己的网站

直接使用纯文本密码来连接服务器是很容易被破解的,但是如果用SSH,基本就很难破解了。

 

在此我们是用的Digital Ocean的VPS,如果有更好的其他的选择欢分享。关于如何选择和使用,可参考DigitalOcean的tutorial。Digital Ocean的服务器叫droplet,注册登陆后两小时内会有账号确认邮件,确认后就可以创建自己的droplet了,可以根据自己需要选择服务器,DO是收费的,可以选择其他的VPS也欢迎交流。

我这边是根据自己的简单需要选择了最基本的,确认信息后就开始创建了,创建OK会收到确认邮件,包括IP地址和密码等信息。

现在,我们打开terminal,输入ssh root@192.241.200.215 root是我们现在用的username,@后面是邮件里收到的IP地址,这一步骤就是我们以root的身份去登陆提供的IP。回车后收到下面信息,选择继续。

根据提示重设密码,设置成功登陆到服务器,进行操作看到的东西就是服务器上的了。

 


12. SSH KEY权限


一直以来密码验证总是很容易被破解的,而SSH key就安全多了

我们需要有两个key,一个是privatekey,用于我们的个人电脑,另一个是public key,在服务器上,每当这两个key通过一个formula转换后相匹配,就work了。

首先,我们要生成这两个key,这时候不需要登陆服务器,打开terminal,

输入ssh-keygen -t rsa 回车,出来自动生成key的提示并给出默认的保存key的路径,不需要修改路径,直接回车即可。如果想给文件加密可以设置密码,回车确认。

看到下面圈出来的部分,黄色部分是生成的private key,蓝色是publickey

 

保存key的信息可以输入ssh-copy-idroot@ip地址 回车,根据提示输入密码后,提示已经将key信息添加

 

现在我们重新打开terminal后再次登陆server,可以看到,已经不需要再输入密码信息了,电脑上的private key可以让我们直接登陆到server了,既方便又很安全。

 

13. 关闭密码登陆


在terminal里登录服务器,然后输入nano/etc/ssh/sshd_config 回车,看到一串的配置文件,向下找到PermitRootLogin看到显示是Yes,在此我们将yes改为without-password,按住ctrl+x,选择Y, 然后回车保存,接着一行输入reload ssh回车,这样我们做的更改就生效了。

现在我们登陆就方便了,即使其他人知道我们的密码也没有办法,因为key是在我们电脑上的,所以非常安全。

 

14. 使用SFTP向服务器传输文件


首先在桌面创建了一个网页文件和包含网页的目录文件,做文件上传用。   

SFTP类似FTP,不过是用ssh来传输的。

打开terminal,输入sftproot@服务器地址 回车,连接上服务器

为了确保我们在服务器的root目录,输入cd../.. 回车,然后输入ls -la回车,我们可以看到里面有很多的文件,这里我们上传的是一个html文件,为了进入html保存路径,输入cdvar/www/html回车,上传html文件直接在html目录下输入putDesktop/html文件名 回车,可以看到文件已上传,刷新服务器页面可以看到我们上传的页面,如果要上传一个文件夹,同样在html目录下输入put-r Desktop/文件夹名 回车,然后我们在服务器页面地址后面加上/文件夹名就可以看到文件了。

接下来我们尝试从服务器下载文件到桌面,以刚上传的页面和文件夹为例,(先删掉桌面上的html文件和目录),在服务器html目录下输入get页面文件名 Desktop 回车,即可将服务器上的网页下载到电脑桌面上,如果想下载目录,可以先cd ..回到上一层目录,接着输入get-r html Desktop, 即将html整个目录下的所有文件和文件夹都下载到桌面上来,至此我们就通过sftp完成了从服务器的上传和下载。

 

15. 利用GParted和U盘来分区


关于分区,有一个是用工具GParted, 获取工具的方法,在terminal输入sudoapt-get install gparted 回车,gparted就开始下载了,下载完成后运行只需要输入sudo gparted回车即可。运行后会跳出Gparted, 我这里插入了自己的移动硬盘,点击右上角可以看到Linux对空间的命名方式不同于Windows(C:/D:/E:/), ta是以sda, sdb 来命名的,而下面的partition里,sda下面的区域又分为了sda1,sda2 …

我们可以用一个U盘来更好的理解,我这里用的是空白U盘。每当我们要分出一个区来的时候,首先要设一定的空间,当设定好这部分空间了(比如8GB),接着我们要设置这部分的系统文件,即确定好这部分区域的构架。

 

在GParted最上面View的下拉菜单File System Support可以看到一串的system support信息,ext3是linux常用的,如果想给自己的U盘设立好filesystem且和不同操作系统都兼容,fat32, ntfs是比较好的选择,市面上大部分的盘也都是fat32,ntfs就是了。

选择想要查看的磁盘,点击view-device information可以看到磁盘基本信息,比如我的U盘filesystem就是FAT32,选中U盘,点击partition-information也可以看到U盘的基本信息。在删除U盘或者分区前,我们需要先unmount [partition-unmount],相当于先解除这块区域的锁定,接着我们就可以delete了。Delete完后U盘就变成了unallocated,点击上面的勾选项,确认,现在我们的U盘就是一块未分配的区域了。

这里我们将U盘分为两个区域,分之前先创建分区表[device-create partition table], 选择默认的msdos即可,确认。接下来我们就可以来新建分区了,新建分区可以点partition-new也可以直接点击左上角的加号键,输入你希望的区域大小,选择希望的system file类型并命名区域,确认,这样一个新的区就分好了。

可以看到我们的硬盘是sda, U盘是sdb,U盘分区是sdb1, sdb2 当然有更多区也会出现sdb3等。虽然sdb1,2是一个U盘的,但在电脑看来他们是不同的区,可见这是一个很好的让我们分开文件摆放管理的工具。

 

16. Shell script简介


在文档前面输入#!/bin/sh,这一行会告诉计算机,文件打开运行需要在shell里。[#后面的内容是注释部分] 

我们在文档里写上简单的命令,保存好在桌面。


接下来运行文件,打开terminal,进入桌面目录,可以看到刚刚写的文档在桌面目录下,现在运行刚刚写的小代码,输入bash文件名回车,即可看到,小代码里的命令已经执行,列出了文件下的文件和目录。

 

shell很方便也很强大,挖个坑以后再填好了。


17. Processes


在terminal里输入ps回车,会看到所有的进程列表

输入ps ax回车,会看到不仅现在运行中的进程,还包括所有在后台的进程 

运行中的进程可以看到有属性PID即进程ID,TTY告诉我们某个程序运行的终端,TIME是指一个程序占用的CPU时间,CMD即command。


我们运行的ls, ps等其实都是小的程序,当执行完命令,程序也就结束了。而输入xlogo这个命令,我们看到屏幕上跳出来一个框,当框在的时候我们就没法输入新的命令,当我们关闭xlogo框的时候,我们就又可以输入新的命令来控制terminal了。

所以说,每当我们通过terminal来控制的时候,只会有一个process,只有当当前的process结束了,我们才可以进行下一个。 然而很多时候当我们在进行一个process的时候特别是在这个process很耗时的时候我们不会愿意就一直等着process一点一点完成,会希望ta在后台默默进行,这样至少我们自己可以去做其他事情,而不是花那么多时间等当前进程结束。以xlogo为例,我们在运行xlogo后,可以点红叉关闭框框,或者我们可以在terminal按住ctrl和c,这个步骤即通过command line来打扰并停止当前进程;如果我们希望ta可以在后台默默进行的时候,我们可以输入 程序 & 回车,下图可以看到我们的xlogo是在运行的,同时我们可以在terminal输入新的命令。输入ps后可以看到xlogo是在运行的,PID即我们在让xlogo在后台时出现的id代码,前面的[1]是这个进程的job number。


如果我们不记得运行的程序的job number,可以在terminal直接输入jobs回车,如下图,可以看到xlogo正在运行。如果我们需要关闭这个进程,这时候ctrl加c就不管用了,因为ctrl加c只适用于正在前台运行的程序,而对于后台程序,我们需要先将其移到前面来,再关闭。输入fg%1回车即可以将job number为1的程序从后台调到前台,接着我们再ctrl加c就可以关闭程序了。


如果我们想要暂停或者停止一个程序,按住ctrl加z,terminal就会显示程序stopped的状态,在这种状态下,我们没法直接关闭程序,即使鼠标点击xlogo上面的红色叉也不行,这是因为在stopped状态下所有对该程序的操作都被暂停了,如果需要进行操作,我们只能先将其从后台调到前台,调回来后发现程序自动关闭了,原因是我们在stopped状态下点击了关闭按钮,当frozen状态结束后程序对我们的关闭操作有了反应即自动关闭程序。


还有一个关闭后台程序的方法是使用kill命令,当程序在后台的时候,输入kill加PID回车即可。

如果我们想停止/冻结一个正在后台的程序,可以输入kill-STOP PID回车即可。

如果我们想恢复一个已经停止/冻结的程序,输入kill-CONT PID回车即可。




以上为Linux简单小入门(如果算的话),Linux的terminal有太多功能,还得继续加油学习才行。


若有疑问或意见,欢迎提出和讨论。

 

References: 

Linux tutorial: 
https://www.youtube.com/watch?v=HjuHHI60s44&list=PL6gx4Cwl9DGCkg2uj3PxUWhMDuTw3VKjM&index=1 

Digital Ocean Tutorial: 

https://www.digitalocean.com/community/tutorials/how-to-create-your-first-digitalocean-droplet-virtual-server

FTP, SFTP, FTPS Differences

https://southrivertech.com/whats-difference-ftp-sftp-ftps/

 Shell script: 

https://en.wikipedia.org/wiki/Shell_script 

Raspberry NOOBS: 

https://www.raspberrypi.org/downloads/noobs/ 

### 回答1: SSH是一种安全的远程登录协议,常用于远程管理Linux服务器。以下是Linux常用的SSH命令: 1. ssh:连接远程服务器,语法为ssh [user@]hostname 2. scp:复制文件到远程服务器,语法为scp [options] [source] [destination] 3. ssh-keygen:生成SSH密钥对,语法为ssh-keygen [options] 4. ssh-add:将SSH密钥添加到ssh-agent中,语法为ssh-add [options] [identity_file] 5. ssh-copy-id:将本地公钥复制到远程服务器,语法为ssh-copy-id [options] [user@]hostname 6. sshfs:将远程服务器的文件系统挂载到本地,语法为sshfs [user@]hostname:[directory] [mountpoint] 7. sftp:安全文件传输协议,用于在本地和远程服务器之间传输文件,语法为sftp [user@]hostname 8. ssh-keyscan:扫描远程服务器的公钥,语法为ssh-keyscan [options] [hostname] 以上是Linux常用的SSH命令,可以帮助管理员更好地管理远程服务器。 ### 回答2: SSH(Secure Shell)是一种安全的网络通信协议,常用于远程登录和执行命令。在Linux中,SSH是一个非常有用的命令,允许用户在远程机器上执行命令,而无需物理访问该计算机。 以下是一些常用的SSH命令: 1. ssh:用于建立与远程服务器的SSH连接。语法为“ssh username@remote_server_address”。 2. scp:用于将文件从本地计算机复制到远程计算机,或将远程计算机上的文件复制到本地计算机。语法为“scp [options] /path/to/source [username@]remote_host:/path/to/destination”。 3. ssh-keygen:用于生成SSH公钥和私钥。语法为“ssh-keygen”。 4. ssh-copy-id:用于将本地计算机的SSH公钥复制到远程计算机,以便以后无需输入密码进行SSH登录。语法为“ssh-copy-id [username@]remote_host”。 5. ssh-add:用于将SSH密钥添加到SSH代理中,以便在一定时间内无需再次输入密钥密码进行SSH连接。语法为“ssh-add /path/to/private_key”。 6. sshfs:将远程计算机上的目录挂载到本地文件系统,使其在本地以常规文件系统的方式访问。语法为“sshfs [user@]host:[directory] local_mount_point”。 以上是一些常用的Linux SSH命令,它们可以帮助用户管理远程服务器和执行命令,提高工作效率和便利性。同时,因为SSH协议具有较高的安全性,能够保护用户的隐私和数据安全,因此在Linux系统上,SSH命令也是被广泛使用的网络工具之一。 ### 回答3: SSH是Secure SHell的缩写,是一种加密的远程登录协议,可以在不安全的网络中,以安全的方式远程登录到服务器并进行操作。在Linux中,ssh常用于服务器管理、文件传输、版本管理等。 下面介绍几个常用的ssh命令: 1. ssh [user@]hostname – 用于连接远程服务器。其中,user为可选项,如果不指定,则默认使用当前用户名登录;hostname为连接的目标主机名或IP地址。 2. ssh-copy-id – 用于将本地公钥复制到目标主机的authorized_keys文件中,实现免密登录。具体语法为ssh-copy-id -i ~/.ssh/id_rsa.pub [user@]hostname。 3. ssh-keygen – 用于生成RSA或DSA密钥对。具体语法为ssh-keygen -t rsa -C "comment" -f filename,其中-t指定密钥类型,-C指定注释,-f指定密钥文件名。 4. scp – 用于在本地和远程服务器之间复制文件。具体语法为scp [options] [source] [destination],其中,options为可选项,source为源文件路径,destination为目标文件路径。 5. sftp – 用于在本地和远程服务器之间传输文件。具体语法为sftp [user@]hostname,然后使用put和get命令上传和下载文件。 6. sshfs – 用于将远程文件系统挂载到本地文件系统中,使其在本地具有和本地文件系统相同的操作方式。具体语法为sshfs [user@]hostname:source_directory mount_point。 总结:以上是常用的几个ssh命令,使用它们可以较方便地完成远程连接、文件传输、密钥管理等操作。掌握ssh命令能够提高Linux操作系统使用效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值