Cenos7-Linux基本命令

一、ssh连接操作

1.1 Powershell客户端

在Window10上打开 PowerShell 命令窗口

1.2 连接服务器

ssh 用户名@主机IP地址或名称

ssh root@10.36.174.53

如果没有免密码的情况下,提示输入root用户的口令,如root.

1.3 免密方式

1.3.1 生成公钥

在powershell(客户端)生成公钥和私钥文件,命令如下:

ssh-keygen

根据提示,一步步向下回车即可。

【注意】powershell中执行命令失败之后,可以尝试使用“以管理员身份运行”打开powershell终端。

1.3.2 scp上传

再通过scp命令 将公钥文件(id_rsa.pub)上传到远程主机上(linux主机: 自己虚拟机、其他人机器、云主机)

scp 文件名 root@host1:/root/

1.3.3 写入授权

在远程主机上, 将公钥写入到授权文件(~/.ssh/authorized_keys)中

cat id_rsa.pub >> .ssh/authorized_keys

二、Linux中常用命令

2.1 文件操作

Linux操作系统中的文件目录结构:

/ 根目录,位于Linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放,类同Window的根路径是各个盘符(C:、D:)
当前用户的home(家)目录 (非root用户是在/home/{用户名}, root用户的家目录是 /root)

/bin : 提供用户使用的基本命令, 存放二进制命令,不允许关联到独立分区,OS启动会用到里面的程序。

/boot:用于存放引导文件,内核文件,引导加载器.

/sbin:管理类的基本命令,不能关联到独立分区,OS启动时会用到的程序(重要的命令通常处于bin,不重要的则安装在sbin)。

/lib:存放系统在启动时依赖的基本共享库文件(.so)以及内核模块文件. 系统使用的函数库的目录 也存放了大量的脚本库文件 ,程序在执行过程中,需要调用时会用到

/lib64:存放64位系统上的辅助共享库文件.

/etc: 系统配置文件存放的目录,该目录存放系统的大部分配置文件和子目录,不建议在此目录下存放可执行文件 。

/home:普通用户主目录,当新建账户时,都会分配在此,建议单独分区,并分配额外空间用于存储数据。

/root: 系统管理员root的宿主目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。

/media:便携式移动设备挂载点目录.

/mnt:临时文件系统挂载点.

/dev: 设备(device)文件目录,存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,存放连接到计算机上的设备(终端、磁盘驱动器、光驱及网卡等)的对应文件 (b 随机访问,c 线性访问)

/opt:第三方应用程序的安装位置.

/srv: 服务启动之后需要访问的数据目录,存放系统上运行的服务用到的数据,如www服务需要访问的网页数据存放在/srv/www内。

/tmp:存储临时文件, 任何人都可以访问,重要数据一定不要放在此目录下。

/usr: 应用程序存放目录,/usr/bin 存放保证系统拥有完整功能而提供的应用程序, /usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件,_/usr/local 存放软件升级包,第三方应用程序的安装位置,/usr/share/doc _系统说明文件存放目录。

/var :放置系统中经常要发生变化的文件,如日志文件。/var/log 日志目录及文件./var/tmp:保存系统两次重启之间产生的临时数据.

/proc: 用于输出内核与进程信息相关的虚拟文件系统,目录中的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间

**/sys **: 用于输出当前系统上硬件设备相关的虚拟文件系统.

2.1.1 ls命令

查看当前路径下的文件及目录

[root@localhost usr]# ls
bin  games    lib    libexec  sbin   src
etc  include  lib64  local    share  tmp

【注】查看某一个命令的帮助信息: 命令 --help

以列表的方式查看文件及目录,命令:

[root@localhost ~]# ls -l
总用量 48
-rw-------. 1 root root 1266 10月 29 22:13 anaconda-ks.cfg
-rw-r--r--. 1 root root  408 12月 22 18:37 hosts
-r-xr--r--. 1 root root  404 4月  12 15:47 id_rsa.pub_disen
-rw-r--r--. 1 root root  397 4月  12 15:47 id_rsa.pub_lq
-rw-r--r--. 1 root root  401 4月  12 15:47 id_rsa.pub_LT
-rw-r--r--. 1 root root  405 4月  12 15:47 id_rsa.pub_maosheng
-rw-r--r--. 1 root root  405 4月  12 15:47 id_rsa.pub_ruby
-rw-r--r--. 1 root root  408 12月 22 11:47 id_rsa.pub-slaver1
-rw-r--r--. 1 root root  408 4月  12 16:09 id_rsa.pub_zhangkui
-rw-------. 1 root root 1679 4月  12 16:00 ls
-rw-r--r--. 1 root root  408 4月  12 16:00 ls.pub
drwxr-xr-x. 3 root root   73 11月  7 15:09 mysql
-rw-r--r--. 1 root root    3 11月  5 17:21 pwd_secure.sql
drwxr-xr-x. 2 root root   28 11月  7 15:09 sql
drwxr-xr-x. 2 root root   19 12月 22 15:47 test1
drwxr-xr-x. 2 root root    6 11月  7 15:12 th_sql

查看文件的索引编号:

ls -li

查看文件,并以大小来排序, 文件大小以K字节表示:

ls -lS --block-size=K

SIZE => {K, M, G, T, P, E, Z, Y} 字节单位。

查看文件,并以最后修改时间排序(默认降序), 以升序方式显示:

ls -ltr

查看 /etc目录下的所有文件:

ls /etc -lS

查看当前目录所有文件(包含以点开头的隐藏文件),但不显示.当前目录和..父级目录信息:

ls -lA

查看当前目录文件,不显示文件名包含disen的文件及目录:

ls -l -I *disen*

查看/etc目录下所有的文件,文件名以逗号分隔:

ls -am

-a 显示所有的文件,包含...

2.1.2 cd命令

切换目录位置的命令

切换到 /etc/ssh 目录,命令:

cd /etc/ssh

如果当前路径在 /etc/sysconfig/network-scripts, 回到当前用户的home目录,命令:

cd ~

假如当前用户名是 disen, ~代表的目录位置是/home/disen

设:文件目录结构如下:

- /root
    |-- db  (当前目录)
    |-- config
    |-- bin
    	|-- a.py
    	|-- b.py

在当前的db目录下,直接切换到/root/bin目录(以相对路径):

cd ../bin

..表示相对于当前目录的父级目录名。

【提示】绝对路径: 从根目录开始描述的路径

2.1.3 pwd命令

显示当前完整的绝对路径

[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts

【重要】相对路径

.当前路径

.. 当前路径的父级目录

从当前路径切换到父级目录,命令:

cd ..

2.1.4 mkdir命令

创建文件目录(夹)

创建单个目录,命令:

mkdir ~/.ssh

代表,在当前用户的home目录下,创建.ssh目录。

创建多级目录,命令:

mkdir -p  ~/a/b/c/d/e/f

【说明】如果创建的子目录所在的父目录不存在,则通过-p参数自动创建父目录。

创建多个同等级别的子目录:

mkdir a b c d

在当前的目录下,同时创建四个子目录。

创建data目录,并指定文件目录的权限为665:

mkdir  data -m 665

默认的权限是755,即权限描述rwxr-xr-x, 665则为rw-rw-r-x

2.1.5 rmdir 命令

删除空目录

删除单个目录

rmdir 目录位置

删除多个级联目录

rmdir -p 父级目录/子集目录

2.1.6 rm命令

删除文件及目录

删除一个不为空的目录或文件

rm -rf 文件目录位置

删除一个不为空的文件

rm -f 文件路径

删除code目录下所有的.txt文件

rm -rf *.txt

【扩展】删除文件时,可以使用*通配符,*表示任意多个字符

2.1.7 touch命令

创建新的文件,若文件存在,则只更新它的修改时间。

创建a.txt空文件

touch a.txt

2.1.8 echo命令

打印文本的命令

打印输出一个Hi,Linux

echo "Hi, Linux"

【扩展】将输出的内容输入到文件中,可以使用>>>流重定向

echo "print(188)" > code/a.py

2.1.9 find命令

查找文件或目录

格式:

find 指定查找的目录  -name "*.py" 

【说明】从当前目录及子目录查找所有 python文件,如果没有指定目录时,默认为当前目录。

find ./  -name "*.py" 

【扩展】grep方式过滤文本

find . |grep .py

|管道符号,表示将find命令查找到的所有内容,按行进行过滤,只保留包含查找的内容。

统计/opt目录下所有py文件的个数

find /opt -name '*.py' | wc -l

wc -l按行统计个数。

统计当前目录下所有.py文件的代码行数:

find -name '*.py'|xargs cat|wc -l

2.1.10 cp命令

复制文件

复制一个文本文件(备份)

cp [-u] /etc/ssh/sshd_config  /etc/ssh/sshd_config.bak

【注意】如果目标文件已存在,则提示是否二次覆盖,输入 y即可。

【练习】

#!/bin/bash
mkdir code
cd code
touch a
echo "hi" > a
cat a
cp a a.bak
cat a.bak
echo "good" >> a
cat a
cp -u a a.bak
cat a.bak

可以将以上的所有内容,复制或写入到一个.sh文件中,并将此文件权限修改为可执行,然后./xx.sh.

复制一个目录

cp -r <源目录> <目标位置>

【注意】cp命令支持*通配符的,如将当前所有.py文件复制到code2(已存在)中

cp [-u] *.py code2 

2.1.11 mv命令

移动文件或目录, 具有重命名的功能

移动文件位置,如 将/root/code/a文件 移动到 /opt目录下

mv /root/code/a  /opt

移动目录的位置, 如 将/root/code 移动到 /opt目录下

mv /root/code /opt/

重命名文件或目录

cd /opt/code
mv a.bak a.backup

【注】如果文件在移动时,是同一目录,则结果是文件重命名的效果。

2.1.12 cat 命令

查看文本文件的内容的命令

查看a.txt文件:

cat a.txt

2.1.13 grep命令

grep [opt] PATTERN [文件] 从文件或输入流中查找(过滤)指定PATTERN匹配的内容。

从a.txt文件中,查找disen字符串

grep disen a.txt

从a.txt文件中,查找所有以数字开头和结束的内容:

grep -E ^[0-9]+$

【注意】grep的正则表达式分为标准正则(BRE)和扩展正则(ERE),但对正则的转义字符支持的不是特别友好。

grep命令的选项中可以使用-n 显示匹配的行号, -c显示匹配的行数, -v选择不匹配的部分

2.2 文件权限操作

2.2.1 文件权限组成

一个文件或目录的权限由三大部分组成的,分别是用户权限+用户组权限+其它组权限。每部分的权限又分为三小部分,分别是 r(读), w(写), x (执行),代表的数值分别是 r: 4, w:2, x: 1,如果权限值为0时,使用 -表示。

文件权限的部分是文件描述信息中从第二位开始,如下:

-rw-r--r--  a.txt

第一位是文件类型: -表示是文件, d表示目录, l文件的连接。

第一部分权限:rw- 表示用户对此文件具有读写权限

第二部分: r--表示用户所在组的其他用户具有的权限

第三部分: r--表示其他组的用户具有的权限

2.2.2 修改文件权限

使用chmod 命令

2.2.2.1 字符权限

格式: chmod [ugoa] <+|-> [r|w|x]

修改a.py文件的用户权限为 rwx

chmod u+rwx a.py

为a.py文件增加其他组用户的执行权限

chmod o+x a.py

取消a.py文件的组和其它组的执行权限

chmod go-x a.py
2.2.2.2 数值权限

r: 4

w: 2ch

x: 1

所有权限位上的数值相加为 7,

777 : 代表所有用户都具有所有权限(rwxrwxrwx)

666: 代表所有用户都具有读写权限(rw-rw-rw-)

400: 代表只有用户具有读权限 (r--------)

chmod 777 a.py

2.3 服务操作

服务: 后台运行的程序(没有界面),在Window中通过 Win+R输入services.msc可以打开服务管理器。在Linux中可以执行 top命令查看正在运行的服务。这些服务提供了客户端程序,通过客户端程序和服务进行交互。

2.3.1 systemctl命令

服务的启动、停止、重启以及启用(禁用)都需要使用systemctl命令

命令格式:

systemctl <start|stop|restart|enable|disable|status> <服务名>

常用的服务名: network(网络服务)、sshd(远程连接服务)

  • start 启动服务
  • stop 停止服务
  • restart 重新启动服务, 由于其服务的配置文件被更改,则需要重新加载配置文件。
  • enable 启用服务(第一次使用时),启用服务之后,系统重启之后,则自动启动服务
  • disable 禁用服务,系统不会自动启动服务。
  • status 查看服务状态

重启网卡服务:

systemctl restart network

启动sshd服务

systemctl start sshd

2.3.2 service命令

同systemctl一样,是管理服务,不同是命令在服务名的后面。

格式: service <服务名> <start|restart|stop|status>

查看sshd命令状态

service sshd status

重启sshd服务

service sshd restart

【注意】service最终重启服务还是使用(重定向)systemctl。两者之间区别正在service执行后有相应响应信息(执行结果或提示信息),而systemctl只有存在错误时,再反馈信息。

2.3.3 netstat命令

监测到网络数据流的工具, 默认情况,Centos没有安装,需要手动安装。

安装 net-tools 工具

yum install net-tools -y

install 安装

uninstall 卸载

search 搜索

【提示】如果yum提示被占用,则等待之前的yum执行完成。或者已确定无人使用yum,但还是被占用,则重启Centos操作系统(reboot 或 init 0)。

查看网络的统计信息

netstat -s

查看所有tcp协议的程序及端口号

[root@localhost yum.repos.d]# netstat -ltpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      15134/sshd      
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      22104/master    
tcp6       0      0 :::22                   :::*                    LISTEN      15134/sshd      
tcp6       0      0 ::1:25                  :::*                    LISTEN      22104/master 

查询 22端口是否被占用

netstat -ltpn |grep 22

参数说明:

  • l 显示Listen监听进程
  • t 代表tcp协议
  • u代表 udp协议
  • a代表所有已连接进程,包含listen和established
  • p代表进程的PID和程序名
  • s 统计数据包相关数据
  • n不显示名称,显示的是索引(用户)或端口号(服务)
  • e 显示扩展信息(extend),显示用户和INode索引节点。

2.3.4 ps命令

ps用于查看当前运行的进程

查看所有当前运行的进程信息

[root@localhost ~]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 11:07 ?        00:00:00 /usr/lib/systemd/systemd --switched-root --system --
root         2     0  0 11:07 ?        00:00:00 [kthreadd]
root         3     2  0 11:07 ?        00:00:00 [ksoftirqd/0]

结果说明:

  • UID 用户名
  • PID 进程ID
  • PPID 父进程ID
  • TTY 运行终端的描述符, ?表示后台服务
  • CMD 进程执行的命令

查看某一进程是否运行

[root@localhost ~]# ps -ef|grep sshd
root      2098     1  0 11:13 ?        00:00:00 /usr/sbin/sshd -D
root      2101  2098  0 11:13 ?        00:00:00 sshd: root@pts/0
root      2120  2098  0 11:13 ?        00:00:00 sshd: root@pts/1
root      2161  2098  0 11:16 ?        00:00:00 sshd: root@pts/2
root      2206  2098  0 11:20 ?        00:00:00 sshd: root@pts/3
root      2228  2098  0 11:21 ?        00:00:00 sshd: root@pts/4
root      2295  2098  0 11:27 ?        00:00:00 sshd: root@pts/5
root      2342  2105  0 11:30 pts/0    00:00:00 grep --color=auto sshd
[root@localhost ~]# who
root     tty1         2021-04-13 11:08
root     pts/0        2021-04-13 11:13 (10.36.174.51)
root     pts/1        2021-04-13 11:13 (10.36.174.43)
root     pts/2        2021-04-13 11:16 (10.36.174.39)
root     pts/3        2021-04-13 11:20 (10.36.174.37)
root     pts/4        2021-04-13 11:21 (10.36.174.66)
root     pts/5        2021-04-13 11:27 (10.36.174.61)

从所有正在运行的进程中只定位 sshd相关的进程。

如果查看某进程时,不显示最后一行的grep信息

ps -ef | grep dbus | grep -v grep

2.3.5 kill命令

杀掉某一进程

命令格式:  kill -<数字信号> <进程ID>

数字信号: 9 代表强制杀掉

如,强制杀掉 2295 进程

kill -9 2295
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值