Linux常用命令整合

Linux常用命令

命令格式

注意:下文中的 <command>在使用时请用真实命令代替,如 ls, rm

<command>[-option] [parameter]


[]表示可选,要用空格隔开各个参数

 

[-option] 中有的命令分为短版本和长版本,如 -a 和 --all

 

几个短命令可以组合,大多数时候不分顺序

 

举例:


# 删除当前文件夹下的 myFisrtPython.py

rm -r myFisrtPython.py


# 查看当前文件夹下所有文件,包括隐藏文件

ls -a

# 或者

ls --all


# 查看当前文件夹下所有文件(-a)详细信息(-l),以较为适合理解格式显示(-h)

ls -lha

查看命令帮助信息

<command>--help

man<command>

man 中查看文档操作

b和 f用的比较多,记成back和forward,向前向后

按键用处空格下一页回车下一行b上一页f下一页,同空格/word搜索word字符串,用你想搜的代替word

命令使用技巧

自动补全 一下 tab键

两下 tab键显示以这个开头的所有可选文件

曾经使用过的命令可以上下光标键切换 不想要就 Ctrl+c 新起一行

目录相关命令

ls


命令用处ls显示当前文件夹目录(横向)ls -a显示当前文件目录,包含隐藏文件ls Desktop显示Desktop文件夹目录ls -l详细信息(纵向)ls -lh详细信息,并且文件大小用K,M,G友好显示

 

注意事项:

 

ls会隐藏文件名以 .开头的文件与文件夹,用 ls-a才能看到

 

ls-h单独使用无意义,因为 ls默认不显示文件大小

 

ls-a显示的 .意思分别是当前文件夹, ..意思是父文件夹


ls-l结果详细解释

# 结果显示

-rw-r--r-- 1 root root 211 Dec 19 17:28 .bashrc

drwx------ 3 root root 4.0K Dec 19 17:48 .jupyter

drwxr-xr-x 5 root root 4.0K Dec 27 13:47 jupyter_run

drwxr-xr-x 3 root root 4.0K Dec 19 17:29 .local


第一个字母是 d意思是这是个文件夹(Directory),否则是文件

 

然后每三个一组,是三个不同类别用户对这个文件/文件夹的权限

 

以第三行结果为例:

 

drwxr-xr-x是个文件夹所属用户所属用户所在组其他用户组外用户

 

参数意思英文数字代号r可读取read4w可写入write2x可执行execute1

 

其他:


drwxr-xr-x5rootroot4.0KDec2713:47jupyter_run权限信息硬连接数所属用户所属用户组大小月日时间名称

ls和通配符一起使用

符号用处*代表任意个数,任意字符?代表任意一个字符,至少一个[]表示可以匹配字符组中的任意一个[a-f]匹配从a到f范围内的任意一个字符

# 列出以a开头,以.txt结尾的文件

ls a*.txt

cd命令

命令用途cd切换到当前用户的主目录cd ~切换到当前用户的主目录cd .到当前目录,无实用意义cd ..到上一级目录cd - 左右横跳在最近的两个目录之间来回切换

文件

touch <文件名>

不存在的话,创建空白文件

已存在,更新最后修改日期

rm [-r] <文件名>

rm会直接删除,不能恢复

-r 意思是recursive递归删除,删除文件夹必须要加上此参数

mkdir <目录名>

创建目录

mkdir -p a/b/c 递归创建目录

tree

以树状图列出文件目录结构

tree -d 只显示目录

复制移动

cp

cp 源文件 目标文件

如果不需要改名字,那么只用指定到文件夹级别

-i 覆盖文件前提示

-r 复制目录

mv

mv 源文件(夹) 目标文件(夹)

mv也可以用来重命名

最好用-i 防止误覆盖

查看文件内容

cat concatenate more 都是看文件内容

cat完整显示 文件内容比较少 -b 非空行编号 -n 编号

more 分屏显示 文件内容比较多 空格 回车 b f q

grep

-n显示匹配行和行号 -v显示不包含匹配文本的所有行(求反 -i忽略大小写

grep as 123.txt


grep "hello python" 123.txt

用grep 模式查找(正则表达式)

^a 行首


ke$ 行尾

其他 echo 在终端中显示参数的文字 通常和重定向一起使用

echo Hello

echo Hello Python

重定向.

> 输出 ,会覆盖文件原有的内容

>> 追加,会将内容追加到文件的末尾

ls -lh > a

ls -lh >>a

echo 就能直接创建文件同时直接写入内容 比touch创建后再写入方便一点

管道的概念和基本使用 |Linux允许将一个命令的输出通过管道作为另一个命令的输入 左边输入,右边拿到之后进行操作之后输出

more 分屏显示 grep 找到包含文本的内容

ls -lha ~ | more

ls -lha ~ | grep vi

远程管理命令

关机重启

shutdown


shutdown 选项 [时间] 作用:关机/重新启动


shutdown -r 重新启动的意思

shutdown -c 一分钟之内输入这个取消


shutdown -r


shutdown 20:25 指定时间关机


shutdown +10 十分钟后关机

日常维护远程计算机的时候 一半用-r参数

不然没人帮着开计算机

查看或配置网卡信息

网卡是专门负责网络通讯的硬件设备

有线网卡 无线网卡

ip地址是设置在网卡上的地址信息,标识网卡

电脑-电话,网卡-sim卡,ip地址-电话号码 ip地址不能重复 不然不能通信

ifconfig

用处 configure a network interface

查看配置计算机当前的网卡配置信息,主要是ip地址

一个物理网卡和多个虚拟网卡 物理网卡通常以ensXX标识

ifconfig | grep inet 过滤出ip

 

以太网

本地环回


ping

ping ip地址

检测到目标ip地址的链接是否正常

一次发一次小的数据包,收到回执之后算时间 时间越小越好

检测本地网卡是否工作正常:

ping 127.0.0.1

ctrl + c停止

远程登陆和复制文件

ssh


scp

SSH基础

Secure Shell 数据加密压缩

win要单独安装客户端 linux和mac都可以直接连

域名:端口号

ip地址找到网络上的计算机,域名是ip的别名

端口号找到计算机上运行的应用程序

常用服务端口号:

SSH 22

Web 80

HTTPS 443

FTP 21

默认端口可以缺省

但是给错误端口号就链接不上去

ssh[-p port]user@remote

port是22可以省略,如果不是就要指定 不然连不上

sudo 是用超级用户的权限执行

最好exit退出

scp

secure copy

远程拷贝文件

他的地址格式和ssh基本相同,需要注意的是 端口是大写的-P不是小写的

不是绝对地址就以home为相对地址

scp -P port 01.py user@remote:Desktop/01.py 本地复制到远程

scp -P port user@remote:Desktop/01.py 01.py 从远程复制过来


scp -r demo user@remote:Desktop

scp -r user@remote:Desktop demo

演示:

scp -P 22 01.py python@172.16.140.138:Desktop/01.py


scp -P -r 22 python@172.16.140.138:Desktop demo

scp 只能再linux或者unix系统下使用 windows只能安装putty用pscp或者filezilla,端口号21

免密码登录 配置别名

有关ssh配置信息都保存在用户家目录下的.ssh目录下

known_hosts

免密码设置:

配置公钥 ssh-keygen一路回车

上传公钥到服务器:执行 ssh-copy-id-p port user@remote,可以让远程服务器记住我们的公钥

非对称加密算法

配置别名

创建 ~/.ssh/config在里面写入:

Host <name>

HostName <ip>

User <userName>

Port <22>

效果:

ssh myserver

scp -r ~/Desktop myserver:Desktop/demo

用户权限

用户和权限的基本概念

权限 英文 缩写 数字代号

读 read r 4

写 write w 2

执行excute x 1

ls-l

第一列是否是目录 后面三个一组 rwx 可读可写可执行 第一组 文件目录拥有者 第二组 文件目录对应的组名称 第三组 其他用户

第一列后面数字 硬连接数

有几种方式能到这个目录 考虑.和..

chmod +/-rwx 文件名或目录名


chmod +x 01.py

python执行的话要在文件开头

#! /usr/bin/python

可执行文件对目录的用处:

如果没有可执行 就不能cd和ls 不能执行终端命令

超级用户 root 对所有资源具有所有访问权限

不推荐直接使用root账号登录系统

su 意思是 substitute user sudo 默认是root

sudo输入密码后 有效时间五分钟

组管理终端命令

都要在前面写 sudo

groupadd 组名

groupdel 组名

cat /etc/group

chgrp -R 组名 文件/目录名 是修改文件目录所属组(递归修改)

用户管理终端命令

useradd-m-g组新建用户名

添加新用户 -m 自动建立用户家目录 -g 指定用户所在的组 不指定就建立同名组

passwd设置用户密码

权限不够记得sudo

删除用户:

userdel -r

会删除home目录


cat /etc/passwd|grep 用户名

查看用户信息

id 用户名 查看用户UID和GID

passwd文件

/etc/passwd 文件存档的是用户的信息,由6个分号组成的7个信息,分别是:

用户名

密码(x,表示密码已加密)

UID(用户表示)

GID(组标识)

用户全名或本地帐号

家目录

登录使用的shell,就是登录之后,使用的终端命令,ubuntu默认是dash

who 查看当前所有登录的用户列表

whoami 查看当前登录用户的账户名

主组和附加组 usermod 用来设置用户的主组或者附加组和登录shell

主组: 通常在新建用户时指定,GID对应的组

附加组: /etc/group中最后一列表示该组的用户列表,用于指定用户的附加权限

usermod -g 组 用户名 用的少

usermod -G 组 用户名 附加权限 用的多

更改过后要重新登录

shell 是一个软件

usermod -s /bin/bash 用户名

xshell中用bash比用dash好

/etc/passwd 是用于保存用户信息的文本

/usr/bin/passwd 是用于修改用户密码的程序

bin和sbin /bin 是binary /sbin 是system binary

/usr/bin 后期安装的一些软件 /usr/sbin 超级用户的一些管理程序

切换用户

su - 用户名 切换用户并且切换目录 没有减号不切换目录

修改文件权限

chown 修改拥有者 chgrp 修改组 chmod 修改权限

chown zhangsanPython学习

chmod最常用的格式:

之前:chmod+/-rwx文件名或目录名

chmod-R755文件名或者目录名

rwx421

## 系统信息相关命令

方便通过远程终端维护服务器时候,查看服务器上当前系统日期和时间/磁盘空间占用情况/程序执行情况

基本都是查询命令

时间和日期

命令用处date查看系统时间calCalendar 查看日历 -y选项可以查看一年的日历

磁盘信息

命令用处df -hdisk free 显示磁盘剩余空间du -hdisk usage显示目录下的文件大小-h是为了人性化显示文件大小(M,B)

进程信息

所谓进程,通俗地说就是正在执行的一个程序

命令用处ps auxprocess status查看进程的详细状况top动态显示运行中的进程并且排序kill [-9] 进程代号终止指定代号的进程,-9表示强行终止

ps 不带参数默认只会显示当前用户通过终端启动的应用程序

ps 选项说明功能(不用带减号)

命令用处a显示终端上的所有进程,包括其他用户的进程u显示进程的详细状态x显示没有控制终端的进程

ps aux会截断command行

ps-ef不会阶段command行

后续用 grep管道的时候推荐用 ps-ef

想退出 top按一下 q

其他命令

查找文件

命令用处find [路径] -name "*.py"查找指定路径下扩展名是.py的文件,包括子目录

find Desktop/ -name "*1*"

find -name "*.txt"

find -name "1+"

软连接

命令用处ln -s 被链接的源文件 链接文件建立文件的软链接,也就是类似于win下面的快捷方式,注意源文件推荐使用绝对路径。

演示:

ln -s demo/b/c/01.py 01_xiangdui

ln -s /home/python/Desktop/demo/b/c/01.py 01_juedui

如果没有 -s就会创建一个硬链接而不是软链接


硬链接简介

链接指向的文件被删除也可以用


Linux 文件名和文件数据是分开储存的

软链接的文件名指向软链接文件数据

软链接文件数据内容是指向文件名

文件名指向文件数据

文件数据的硬链接和文件名都是直接指向文件数据,大名小名

日常工作中几乎不会建立文件的硬链接 知道了解就行

软链接使用的频率高得多

打包压缩


打包压缩是日常工作中备份文件的一种方式

 

不同操作系统的打包压缩方式不同

 

win里面常用rar

 

mac常用zip

 

linux常用tar.gz

 

tar是linux中最常用的备份工具,此命令可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件


# 打包文件

tar -cvf 打包文件.tar 被打包的文件/路径...


# 解包文件

tar -xvf 打包文件.tar

选项含义c生成档案文件创建打包文件x解开档案文件v列出归档解档的详细过程,显示进度f指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后

注意 f选项必须放在最后,其他选项顺序可以随意。


tar只负责打包不负责压缩

 

压缩要gzip,扩展名是xxx.tar.gz

 

使用tar命令的时候 加上-z选项就可以一行打包压缩/解压缩


# 压缩文件

tar -zcvf 打包文件.tar.gz 被压缩的文件/路径


# 解压缩文件

tar -zxvf 打包文件.tar.gz


# 解压缩到指定路径

tar -zxvf 打包文件.tar.gz -C 指定路径(路径必须存在)

bzip2 也是一种压缩方式

# 压缩文件

tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径


# 解压缩文件

tar -jxvf 打包文件.tar.bz2

软件安装


apt AdvancedPackagingTool是Linux下的一款安装包管理工具

 

可以在终端中方便的安装/卸载/更新软件包


# 1. 安装软件

sudo apt install 软件包

# 2. 卸载软件

sudo apt remove 软件包

# 3. 更新已安装的包

sudo apt upgrade

安装演练

# 一个小火车提示

sudo apt install sl

# 一个比较漂亮的查看当前进程排名的软件

sudo apt install htop

配置软件源

什么叫做软件源,主服务器就是放这些我们install软件的文件的地方。

镜像源,就是把主服务器的内容拷贝来。因为在国内所以更快。

Linux常用命令整合

上一篇:linux-clean


下一篇:实验2:Hadoop安装与配置(下)