Linux命令

常用命令

在工作中连接服务器,所有功能都只能用终端窗口中通过终端命令来实现。
Linux所有的目录和文件名都是大小写敏感的。
在这里插入图片描述

查阅命令的帮助信息(2种方式)

①显示命令的帮助信息
command --help
②查阅命令的使用手册
man command
在这里插入图片描述

终端实用技巧:

1、自动补全
在敲出文件、目录、命令的前几个字母后,按下Tab键。
如果没有歧义,则自动补全;否则,需要再按一下tab,系统会显示可能的选择。

2、曾经使用过的命令
可以在曾经使用过的命令之间转换。
Ctrl+C退出选择。

Linux下文件和目录的特点:
.开头的文件都是隐藏文件,ls命令需要加上-a选项才能显示。
.代表当前目录
..代表上一级目录
cd .. 切换目录到上一级目录

ls 常用选项:
-a 水平方向显示所有子目录和文件,白色为文件,蓝色为文件夹。
-l 纵向列表形式显示文件的详细信息
-h 需要与-l一起使用,更加直观的显示文件大小。
ls -l -h 等同于 ls -lh

通配符的使用

通配符含义
*代表任意多个字符,包括0个
?代表任意一个字符
[]表示可以匹配字符组中的任意一个
[abc]匹配a、b、c中的任意一个
[a-f]匹配从a到f范围内的任意一个字符

cd 更改当前的工作目录

cd命令的常用参数:
cd 切换到当前用户的主目录(home/jingw)
cd ~ 切换到当前用户的主目录
cd . 保持当前目录不变
cd ..切换到上级目录
cd - 在最近的两个目录之间切换
cd ~/test/切换到家目录下面的test目录
cd ./wj切换到当前文件夹中的wj文件夹下

cd /  到根目录

相对路径和绝对路径
相对路径:最前面是/或者~,不管在那个目录下,用该路径都可以切换至该路径
绝对路径:最前面不是/或者~,相对于当前目录的路径。

touch命令

①不存在的话,会创建改名字的新文件;
②存在的话,会修改该名字的文件的末次修改时间。

mkdir 创建目录

mkdir wj 在当前目录下创建wj文件夹
mkdir -p a/b/c/d 连续创建多个目录

Linux同一目录下,不允许文件名和文件夹名重名

rm命令
删除文件或目录
直接从磁盘上删除,不能删除到回收站,没有办法恢复。
-f 强制删除,忽略不存在的文件,无需提示、
-r 递归地删除目录下的内容,删除文件夹时必须加此参数。
也可以使用通配符

拷贝和移动文件

序号命令对应英文作用
01tree【目录名】tree以树状图列出文件目录结构
02cp 源文件 目标文件copy复制文件或者目录
03mv 源文件 目标文件move移动文件或者目录/文件或者目录重命名

tree

tree
以树状图列出当前目录中的文件和目录
树状图中的.表示当前目录

tree [目录名] 以树状图列出目录中的文件和目录

tree ~ 显示家目录中的文件和目录
-d 只显示目录

copy

拷贝文档目录下的readme.txt文件到当前目录下

cp ~/Documents/readme.txt ./readme.txt

~代表家目录,.代表当前目录。

用cp命令复制某个文件,不改变其文件名的话,后面的参数可以省略其文件名,只写其路径就可。

cp ~/Documents/readme.txt .

-i 覆盖文件前提示
-r 将递归复制该目录下所有文件夹和文件,目标文件必须是个文件夹

mv 源文件 目标文件

将源文件移动到目标目录下。
将当前目录下的a目录下的b目录下的c目录下的123.txt移动到当前目录
mv a/b/c/123.txt .

重命名

mv 123.txt 456.txt

如果之前456.txt存在,则会被覆盖。使用选项-i,可以有提示。

查看文件内容

命令对应英文作用
cat 文件名concatenate查看文件内容、创建文件、文件合并、追加文件内容的功能
more 文件名more分屏显示文件内容
grep 搜索文本文件名grep搜索文本文件内容

区别在于:

  • cat命令一次性显示所有的内容;
  • more命令只能显示部分内容,按下空格显示后半部分内容。

cat

cat 命令可以用来查看文件内容、创建文件、文件合并、追加文件内容等功能。
cat会一次显示所有的内容,适合查看内容较少的文件。
-b 对非空输出行编号
-n 对输出的所有行编号
Linux中还有一个ln的命令同 cat -b ?

more

more命令可以用于分屏显示文件内容,每次只显示一页内容。
适用于查看内容较多的文本文件。

使用more的操作键:
操作键 功能
空格键 显示手册页的下一屏
Enter键 显示手册页的下一行
b 回滚一屏
f 前滚一屏
q 退出
/word 搜索word字符串

grep

Linux系统中grep命令是一种强大的文本搜索工具
grep允许对文本文件进行模式查找。所谓模式查找,又被成为正则表达式。
grep 搜索字符串 文件名

选项含义
-n显示匹配行及行号
-v显示不包含匹配文本的所有行
-i不区分大小写

如果搜索的字符串有空格,则需要用双引号将其括起来。
●常用的两种模式查找
参数 含义
^a 行首,搜寻以a开头的行
ke$ 行尾,搜寻以ke结束的行

其他

6.1 echo 文字内容

echo在终端中显示参数指定的文字,通常会和重定向联合使用。

6.2 重定向>和>>

Linux允许将命令执行结果,重定向到一个文件
将本应显示在终端上的内容输出/追加到指定文件中

>表示输出,会覆盖掉原有的内容
>>表示追加,将内容追加到已有文件的末尾
ls -lh >1

将本应显示在终端上的内容 追加到文档中

echo Hello Python >a.txt

如果该文件不存在,则会新建一个名为a.txt的文件,并指定内容。

管道

Linux允许将一个命令的输出通过管道作为另一个命令的输入
管道的一头塞东西进去,另一头取出来,这里|的左右分为两端,左边写东西,右边读东西。
常用的管道命令有:
more : 分屏显示内容
grep : 在命令执行结果的基础上查询指定的文本

ifconfig|grep inet

远程管理常用命令

01.关机/重启

命令对应英文作用

shutdown 选项 时间 shutdown 关机/重新启动
1.1shutdown

shutdown命令可以安全关闭或者重新启动系统
选项 含义
-r 重新启动
提示:
●不指定选项和参数,默认表示1分钟之后关闭电脑
●远程维护服务器时,最好不要关闭系统,而应该重新启动系统

常用命令示例:

shutdown now '立即关闭
shutdown -c '取消关闭
shutdown -r '一定要记得-r,否则服务器启动很困难
shutdown 20:25 '20:25关闭
shutdown 10 '10分钟后关闭

02.查看或配置网卡信息

序号命令对应英文作用
01ifconfigconfigure a nerwork interface查看/配置计算机当前的网卡配置信息
02ping ip地址ping检测到目标ip地址的连接是否正常

2.1网卡和IP地址

网卡
网卡是一个专门负责网络通讯的硬件设备
IP地址是设置在网卡上的地址信息

IP地址
每台联网的电脑上都有IP地址,是保证电脑之间正常通讯的重要设置
每台电脑的IP地址不能相同,否则会出现IP地址冲突,并且没有办法正常通讯

2.2 ifconfig

ifconfig 可以查看/配置计算机当前的网卡配置信息

ifconfig '查看网卡配置信息
ifconfig | grep inet '查看网卡对应的IP地址

一台计算机有可能会有一个物理网卡和多个虚拟网卡,在Linux中物理网卡的名字通常以 ensXX 表示。
在这里插入图片描述

2.3 ping

ping IP地址 '检测目标主机是否连接正常
ping 127.0.0.1 '检测本地网卡工作是否正常

在Linux中,想要终止一个终端程序的执行,绝大多数都可以用Ctrl+C

在命令前加上sudo,表示用超级用户的权限执行该命令
sudo shutdown -r

Linux vi/vim

在这里插入图片描述

SSH

在Linux中ssh是非常常用的工具,通过ssh客户端我们可以连接到运行了ssh服务器的远程机器上。

3.1 ssh 用户名@ip

secure shell
ssh [-p port] user@remote

user是在远程机器上的用户名,如果不指定的话默认为当前用户
remote是远程机器的地址,或者是别名
port是SSH Server监听的端口,如果不指定,就为默认值(ssh的默认值是22)。
提示:使用exit命令退出当前用户的登录
注意:ssh这个终端命令只能在Linux或者Unix系统下使用

查询是否安装了ssh

rpm -qa | grep openssh-server

Window系统可以用xshell工具进行ssh连接(我居然想用连接好的服务器,再进行一次连接,佛了)

3.2 scp

scp [-P port] 

SCP 用户名@ip:文件名或路径 用户名@ip:文件名或路径 远程复制文件
SCP 就是secure copy,是一个在Linux下用来进行远程拷贝文件的操作
他的地址格式与ssh基本相同,需要注意的是,在指定端口时用的是大写的-P,而不是小写的。

//注意:“:”后面的路径如果不是绝对路径的话,则是以用户的家目录作为参考路径。
//把本地当前目录下的1.py文件复制到远程家目录下的Desktop/1.py
scp -P port 1.py user@remote:desktop/1.py

//把远程家目录下的Desktop/1.py文件复制到本地当前目录下的1.py
scp  -P port 1.py user@remote:Desktop/1.py

//加上-r,可以复制文件夹
//把当前目录下的demo文件夹复制到远程家目录下的Desktop
scp -r demo user@remote:Desktop

//把远程家目录下的Desktop的demo文件夹复制到当前目录下
scp -r user@remote:Desktop demo

选项 含义
-r 若给出的源文件是目录文件,则scp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
-p 若远程SSH服务器的端口不是 22,需要使用大写字母-P

出现以下报错时,可以通过重启虚拟机解决。
在这里插入图片描述

CentOS的软件安装工具不是apt-get 而是yum

//若再次查看ssh进程时,同时出现sshd、ssh -agent进程,则说明openssh -service已经安装成功;
ps -e|grep ssh
//安装openssh-server
sudo apt-get install openssh-server
//2种启动ssh-server服务的方式:
service ssh start
/etc/init.d/ssh start

Windows系统用ssh连接服务器
在这里插入图片描述

但是输入密码步骤总出错,行不通!

域名
是一串用点分隔的名字组成,例如:www.itcast.cn
是IP地址的别名,方便用户记忆
端口号
IP地址:通过IP地址找到网络上的计算机
端口号:通过端口号可以找到计算机上运行的应用程序

Ubantu系统修改密码

1、系统重启,长按Shift键。进入GNU GRUB界面,选择Advanced options for Ubuntu,按enter键进入;
2、选择(较高版本的)recovery mode,点击Enter键进入;
3、选择 root Drop to root shell prompt进入;
4、输入mount -o remount /
5、输入ls /home
6、输入passwd 用户名(即第5步中输出的字符串)
7、输入密码,再次输入密码;(输入的密码是无法看见的)
8、显示密码更新成功,则OK。
详见下图:
在这里插入图片描述

记录一下,修改的密码是:123456

无法定位软件包 net-tolls

在这里插入图片描述

原因:本地没有该功能的资源
解决方法:使用sudo apt-get update命令进行更新资源

read

Linux read命令用于从标准输入读取数值。
read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。
语法

read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]

参数说明:

  • -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。
  • -d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。
  • -p 后面跟提示信息,即在输入前打印提示信息。
  • -e 在输入的时候可以使用命令补全功能。
  • -n 后跟一个数字,定义输入文本的长度,很实用。
  • -r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了。
  • -s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。
  • -t 后面跟秒数,定义输入字符的等待时间。
  • -u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。

实例

1、简单读取

变量名可以有一个或者多个,变量名用空格隔开
输入时 多个变量值用空格隔开
若是空格隔开的个数多于变量的个数,则多余的值都付给最后的变量

#!/bin/bash

#这里默认会换行  
echo "输入网站名: "  
#读取从键盘的输入
read website  
echo "你输入的网站名是 $website"  
exit 0  #退出

测试结果为:

输入网站名: 
www.runoob.com
你输入的网站名是 www.runoob.com

2、-p 参数,允许在 read 命令行中直接指定一个提示。

#!/bin/bash

read -p "输入网站名:" website
echo "你输入的网站名是 $website" 
exit 0

测试结果为:

输入网站名:www.runoob.com
你输入的网站名是 www.runoob.com

3、-t 参数指定 read 命令等待输入的秒数,当计时满时,read命令返回一个非零退出状态。

#!/bin/bash

if read -t 5 -p “输入网站名:” website
then
echo “你输入的网站名是 $website”
else
echo “\n抱歉,你输入超时了。”
fi
exit 0

执行程序不输入,等待 5 秒后:
输入网站名:
抱歉,你输入超时了

4、除了输入时间计时,还可以使用 -n 参数设置 read 命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量。

#!/bin/bash

read -n1 -p “Do you want to continue [Y/N]?” answer
case $answer in
Y | y)
echo “fine ,continue”;;
N | n)
echo “ok,good bye”;;
*)
echo “error choice”;;

esac
exit 0

该例子使用了-n 选项,后接数值 1,指示 read 命令只要接受到一个字符就退出。只要按下一个字符进行回答,read 命令立即接受输入并将其传给变量,无需按回车键。
只接收 2 个输入就退出:
#!/bin/bash

read -n2 -p "请随便输入两个字符: " any
echo “\n您输入的两个字符是:$any”
exit 0

执行程序输入两个字符:
请随便输入两个字符: 12
您输入的两个字符是:12

5、-s 选项能够使 read 命令中输入的数据不显示在命令终端上(实际上,数据是显示的,只是 read 命令将文本颜色设置成与背景相同的颜色)。输入密码常用这个选项。
#!/bin/bash

read -s -p “请输入您的密码:” pass
echo “\n您输入的密码是 $pass”
exit 0

执行程序输入密码后是不显示的:
请输入您的密码:
您输入的密码是 runoob

6.读取文件
每次调用 read 命令都会读取文件中的 “一行” 文本。当文件没有可读的行时,read 命令将以非零状态退出。
通过什么样的方法将文件中的数据传给 read 呢?使用 cat 命令并通过管道将结果直接传送给包含 read 命令的 while 命令。
测试文件 test.txt 内容如下:
123
456
runoob

测试代码:
#!/bin/bash

count=1 # 赋值语句,不加空格
cat test.txt | while read line # cat 命令的输出作为read命令的输入,read读到>的值放在line中
do
echo “Line c o u n t : count: count:line”
count=$[ $count + 1 ] # 注意中括号中的空格。
done
echo “finish”
exit 0

执行结果为:
Line 1:123
Line 2:456
Line 3:runoob
finish

使用 -e 参数,以下实例输入字符 a 后按下 Tab 键就会输出相关的文件名(该目录存在的):
$ read -e -p “输入文件名:” str
输入文件名:a
a.out a.py a.pyc abc.txt
输入文件名:a

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值