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软件的文件的地方。
镜像源,就是把主服务器的内容拷贝来。因为在国内所以更快。