1、man 查看帮助文档
格式:man command #显示 command 命令的帮助信息;
例如:man ls #展示ls命令的帮助文档;
说明:
1、查阅 command 命令的使用手册;
2、man 是 manual 的缩写,是 Linux 提供的一个 手册,包含了绝大部分的命令、函数的详细使用说明;
使用 man 的操作键:
空格键 #显示手册页的下一屏;
Enter 键 #一次滚动手册页的一行;
b #回滚一屏;
f #前滚一屏;
q #退出;
/word #搜索 word 字符串;
1、help 查看帮助文档
格式:command --help #显示 command 命令的帮助信息;
例如:ls --help #展示ls命令的帮助文档;
1、ls 查看目录内容
说明:ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS 下的 dir 命令;
Linux 下文件和目录的特点
1、Linux文件或目录名称最长可以有 256 个字符;
2、以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示;
3、. 代表当前目录;
4、.. 代表上一级目录;
ls 常用选项
参数 含义
-a 显示指定目录下所有子目录与文件,包括隐藏文件;
-l 以列表方式显示文件的详细信息;
-h 配合 -l 以人性化的方式显示文件大小;
计算机中文件大小的表示方式:
单位 英文 含义
字节 B(Byte) 在计算机中作为一个数字单元,一般为 8 位二进制数
千 K(Kibibyte) 1 KB = 1024 B,千字节 (1024 = 2 ** 10)
兆 M(Mebibyte) 1 MB = 1024 KB,百万字节
千兆 G(Gigabyte) 1 GB = 1024 MB,十亿字节,千兆字节
太 T(Terabyte) 1 TB = 1024 GB,万亿字节,太字节
拍 P(Petabyte) 1 PB = 1024 TB,千万亿字节,拍字节
艾 E(Exabyte) 1 EB = 1024 PB,百亿亿字节,艾字节
泽 Z(Zettabyte) 1 ZB = 1024 EB,十万亿亿字节,泽字节
尧 Y(Yottabyte) 1 YB = 1024 ZB,一亿亿亿字节,尧字节
ls 通配符的使用:
通配符 含义
* #代表任意个数个字符;
? #代表任意一个字符,至少 1 个;
[] #表示可以匹配字符组中的任一一个;
[abc] #匹配 a、b、c 中的任意一个;
[a-f] #匹配从 a 到 f 范围内的的任意一个字符;
ls 示例:
ls xx* #查找以xx开头的文件;
ls *xx #查找以xx结尾的文件;
ls ?.c #只找第一个字符任意,后缀为.c的文件;
[abc] #匹配a、b、c中的任意一个;
[a-f] #匹配从a到f范围内的的任意一个字符;
ls [af]* #找到从a到f范围内的的任意一个字符开头的文件;
ls a-f #查找文件名为a-f的文件,当“-”处于方括号之外失去通配符的作用;
ls \*a #查找文件名为*a的文件;
ls -a #显示所有内容详情,包括隐藏文件,隐藏文件以.开头;
ls /-a /root #显示root目录下所有内容;
ls -l或ll #以列表的形式显示内容详情;一行只显示一个文件/目录的详细信息;
ls / #列出根目录(\)下的所有目录;
\ #如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用;
1、cd 切换目录
1、cd 是英文单词 change directory 的简写,其功能为更改当前的工作目录,也是用户最常用的命令之一;
2、注意:Linux 所有的目录和文件名都是大小写敏感的;
常用命令:
cd #切换到当前用户的主目录(/home/用户目录);
cd ~ #切换到当前用户的主目录(/home/用户目录);
cd . #保持在当前目录不变;
cd .. #切换到上级目录;
cd - #可以在最近两次工作目录之间来回切换;
cd ../.. #切到当前目录的上两级目录;
cd /home #切到/home目录;
相对路径和绝对路径:
1、相对路径在输入路径时,最前面不是 / 或者 ~,表示相对当前目录所在的目录位置;
2、绝对路径在输入路径时,最前面是 / 或者 ~,表示从根目录/家目录开始的具体目录位置;
1、touch 创建文件或修改文件时间
1、如果文件不存在,可以创建一个空白文件;
2、如果文件已经存在,可以修改文件的末次修改日期;
touch 1.txt #创建文件(如果kr.txt文件已存在,会修改文件的时间属性,不存在则创建文件)
touch 1.txt 2.txt 3.txt #一次性创建3个文件
touch test2/1.txt #创建文件,test2目录不存在会报错;
touch test #创建test目录(如果test2目录已存在,会修改test2目录的时间属性,但是test2目录下内容的属性不会被修改,不存在则创建test2)
1、rm 删除文件或目录
1、使用 rm 命令要小心,因为文件删除后不能恢复;
2、选项含义
-f 强制删除,忽略不存在的文件,无需提示;
-r 递归地删除目录下的内容,删除文件夹时必须加此参数;
1、rmdir 删除目录
rmdir 目录名1 #删掉目录名1
rmdir -p 目录名1/目录名2/目录名3 #依次删掉目录名1/目录名2/目录名3
1、mkdir 创建一个新的目录
1、新建目录的名称不能与当前目录中已有的目录或文件同名;
2、选项含义
-p 可以递归创建目录;
mkdir 目录名 #创建一个目录
mkdir -p 目录名1/目录名2/目录名3 #连续创建3个目录
1、tree 以树状图列出文件目录结构
选项含义
-d #只显示目录
1、cp 把给出的文件或目录复制到另一个文件或目录中,相当于 DOS 下的 copy 命令;
选项含义
-i #覆盖文件前提示;
-r #若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名;
1、mv 移动文件或目录,也可以给文件或目录重命名
选项含义
-i 覆盖文件前提示
1、cat 查看文件内容、创建文件、文件合并、追加文件内容等功能
1、cat 会一次显示所有的内容,适合查看内容较少的文本文件;
2、Linux 中还有一个 nl 的命令和 cat -b 的效果等价;
选项含义
-b 对非空输出行编号
-n 对输出的所有行编号
1、more 分屏显示文件内容,每次只显示一页内容
1、more适合于查看内容较多的文本文件;
使用 more 的操作键:
操作键 功能
空格键 #显示手册页的下一屏;
Enter键 #一次滚动手册页的一行;
b #回滚一屏;
f #前滚一屏;
q #退出;
/word #搜索 word 字符串;
1、grep 文本搜索工具
1、grep允许对文本文件进行模式查找,所谓模式查找,又被称为正则表达式;
选项含义
-n 显示匹配行及行号;
-v 显示不包含匹配文本的所有行(相当于求反);
-i 忽略大小写;
常用的两种模式查找
^a 行首,搜寻以 a 开头的行;
a$ 行尾,搜寻以 a 结束的行;
1、shutdown 安全关闭或重新启动系统
命令:shutdown 选项 时间 #关机/重新启动
选项含义:
-r 重新启动
提示:
1、不指定选项和参数,默认表示 1 分钟之后关闭电脑;
2、远程维护服务器时,最好不要关闭系统,而应该重新启动系统;
常用命令:
shutdown now #立刻关机,其中now表示现在,shutdown会给别的用户提示;
shutdown 20:25 #系统在今天的 20:25 会关机;
shutdown +10 #系统再过十分钟后自动关机;
shutdown -c #取消关机
shutdown -r now #重新启动操作系统,其中 now 表示现在;
shutdown -h now #立刻关机,其中now相当于时间为0的状态
shutdown -h 10 #10分钟后自动关机
shutdown -h 10:00 #定时在10点关机
shutdown -h -t 30 #30秒后安全的关机
1、reboot 开机
1、ifconfig 查看或配置网卡信息
命令 对应英文 作用
ifconfig configure a network interface 查看/配置计算机当前的网卡配置信息
ping ip地址 ping 检测到目标 ip地址 的连接是否正常
1、网卡 和 IP 地址
1、网卡
1、网卡是一个专门负责网络通讯的硬件设备;
2、IP 地址是设置在网卡上的地址信息;
3、我们可以把电脑比作电话,网卡相当于SIM卡,IP地址相当于电话号码;
2、IP 地址
1、每台联网的电脑上都有IP地址,是保证电脑之间正常通讯的重要设置;
2、注意:每台电脑的 IP 地址不能相同,否则会出现 IP 地址冲突,并且没有办法正常通讯;
1、ifconfig 查看/配置计算机当前的网卡配置信息
提示:
1、一台计算机中有可能会有一个物理网卡和多个虚拟网卡,在Linux中物理网卡的名字通常以ensXX表示;
2、127.0.0.1 被称为本地回环/环回地址,一般用来测试本机网卡是否正常;
ifconfig #显示网络设备信息
ifconfig | grep inet #查看网卡对应的 IP 地址
ifconfig eth0 down #关闭指定网卡
ifconfig eth0 up #启动指定网卡
ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 #为网卡设置IPv6地址
ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 #为网卡删除IPv6地址
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE #修改MAC地址
ifconfig eth1 hw ether 00:1D:1C:1D:1E #关闭网卡并修改MAC地址
配置IP地址
ifconfig eth0 192.168.1.56 #给eth0网卡配置IP地址
ifconfig eth0 192.168.1.56 netmask 255.255.255.0 #给eth0网卡配置IP地址,并加上子掩码
ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255 # 给eth0网卡配置IP地址,加上子掩码,加上个广播地址
启用和关闭ARP协议
ifconfig eth0 arp #开启
ifconfig eth0 -arp #关闭
设置最大传输单元
ifconfig eth0 mtu 1500 #设置能通过的最大数据包大小为 1500 bytes
1、ping 查看网络连接情况(网络接口);检测当前计算机到目标计算机之间的网络是否通畅,数值越大,速度越慢;
ping IP地址 #查看ip/域名连通状况,手动终止Ctrl+C
ping 127.0.0.1 #检测本地网卡工作正常
ping -c 次数(3) ip/域名 #指定接收包的次数,收到3次包后,自动退出。
ping -i 3 -s 1024 -t 255 g.cn(ip/域名) #多参数使用,-i 3 发送周期为 3秒 -s 设置发送包的大小 -t 设置TTL值为 255
1、ping 的工作原理与潜水艇的声纳相似,ping 这个命令就是取自声纳的声音;
2、网络管理员之间也常将 ping 用作动词,ping 一下计算机X,看他是否开着;
3、原理:网络上的机器都有唯一确定的 IP 地址,我们给目标 IP 地址发送一个数据包,对方就要返回一个数据包,根据返回的数据包以及时间,我们可以确定目标主机的存在;
4、提示:在 Linux 中,想要终止一个终端程序的执行,绝大多数都可以使用 CTRL + C;
1、ip 显示或设置网络设备
ip比ifconfig 命令更强大;
ip link show #显示网络接口信息
ip addr show #显示网卡IP信息
ip link list #显示网络设备的运行状态
ip route list #显示核心路由表
ip neigh list #显示邻居表
ip route show #显示系统路由
ip route list #看路由信息
ip -s link list #显示更加详细的设备信息
ip link set eth0 up #开启网卡
ip route del default #删除默认路由
ip link set eth0 down #关闭网卡
ip link set eth0 mtu 1400 #设置网卡最大传输单元
ip route del 192.168.4.0/24 #删除192.168.4.0网段的网关
ip link set eth0 promisc on #开启网卡的混合模式
ip link set eth0 promisc offi #关闭网卡的混个模式
ip link set eth0 txqueuelen 1200 #设置网卡队列长度
ip addr add 192.168.0.1/24 dev eth0 #设置eth0网卡IP地址192.168.0.1
ip addr del 192.168.0.1/24 dev eth0 #删除eth0网卡IP地址
ip route add default via 192.168.1.254 #设置系统默认路由
ip route add default via 192.168.0.254 dev eth0 #设置默认网关为192.168.0.254
ip route delete 192.168.1.0/24 dev eth0 #删除路由
ip link | grep -E '^[0-9]' | awk -F: '{print $2}' #获取主机所有网络接口
ip route add 192.168.4.0/24 via 192.168.0.254 dev eth0 #设置192.168.4.0网段的网关为192.168.0.254,数据走eth0接口
1、远程登录和复制文件
ssh 用户名@ip #对应英文:secure shell 关机/重新启动
scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 #对应英文:secure copy 远程复制文件
1、ssh 初级
1、在 Linux 中SSH是非常常用的工具,通过SSH客户端,我们可以连接到运行了SSH服务器的远程机器上;
2、SSH 客户端是一种使用 Secure Shell(SSH) 协议连接到远程计算机的软件程序;
3、SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议;
4、利用 SSH 协议可以有效防止远程管理过程中的信息泄露;
5、通过 SSH 协议可以对所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗;
6、SSH 的另一项优点是传输的数据可以是经过压缩的,所以可以加快传输的速度;
1、域名:由一串用点分隔的名字组成,例如:www.itcast.cn;是IP地址的别名,方便用户记忆;
2、端口号
IP 地址:通过 IP 地址找到网络上的计算机;
端口号:通过端口号可以找到计算机上运行的应用程序;
SSH 服务器的默认端口号是22,如果是默认端口号,在连接的时候,可以省略;
3、常见服务端口号列表:
序号 服务 端口号
01 SSH 服务器 22
02 Web 服务器 80
03 HTTPS 443
04 FTP 服务器 21
1、scp
1、scp 就是 secure copy,是一个在 Linux 下用来进行远程拷贝文件的命令;
2、它的地址格式与ssh基本相同,需要注意的是,在指定端口时用的是大写的 -P 而不是小写的;
3、选项含义
-r #若给出的源文件是目录文件,则 scp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名;
-P #若远程 SSH 服务器的端口不是 22,需要使用大写字母 -P 选项指定端口;
注意:
1、scp 这个终端命令只能在 Linux 或者 UNIX 系统下使用;
2、如果在 Windows 系统中,可以安装 PuTTY,使用 pscp 命令行工具或者安装 FileZilla 使用 FTP 进行文件传输;
#把本地当前目录下的 01.py 文件复制到远程家目录下的 Desktop/01.py;
#注意:`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径;
scp -P port 01.py user@remote:Desktop/01.py
#把远程家目录下的 Desktop/01.py 文件复制到本地当前目录下的01.py;
scp -P port user@remote:Desktop/01.py 01.py
#加上 -r 选项可以传送文件夹;
#把当前目录下的 demo 文件夹复制到远程家目录下的Desktop;
scp -r demo user@remote:Desktop
#把远程家目录下的Desktop复制到当前目录下的 demo 文件夹;
scp -r user@remote:Desktop demo
FileZilla
官方网站:https://www.filezilla.cn/download/client
FileZilla 在传输文件时,使用的是 FTP 服务,而不是 SSH 服务,因此端口号应该设置为 21
3.3、SSH 高级
1、免密码登录;
2、配置别名;
提示:有关 SSH 配置信息都保存在用户家目录下的 .ssh 目录下;
1)免密码登录
1、配置公钥:执行 ssh-keygen 即可生成 SSH 钥匙,一路回车即可;
2、上传公钥到服务器:执行 ssh-copy-id -p port user@remote,可以让远程服务器记住我们的公钥;
非对称加密算法
使用 公钥 加密的数据,需要使用 私钥 解密;
使用 私钥 加密的数据,需要使用 公钥 解密;
2) 配置别名
1、每次都输入 ssh -p port user@remote,时间久了会觉得很麻烦,特别是当 user, remote 和 port 都得输入,而且还不好记忆;
2、而配置别名可以让我们进一步偷懒,例如用:ssh mac 来替代上面这么一长串,那么就在 ~/.ssh/config 里面追加以下内容:
Host mac
HostName ip地址
User itheima
Port 22
保存之后,即可用 ssh mac 实现远程登录了,scp 同样可以使用;
1、用户和权限的基本概念
1、用户是 Linux 系统工作中重要的一环,用户管理包括用户与组管理;
2、在 Linux 系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限;
3、在 Linux 中,可以指定每一个用户针对不同的文件或者目录的不同权限;
对文件/目录的权限包括:
序号 权限 英文 缩写 数字代号
01 读 read r 4
02 写 write w 2
03 执行 excute x 1
1、组
1、为了方便用户管理,提出了组的概念,如下图所示;
2、在实际应用中,可以预先针对组设置好权限,然后将不同的用户添加到对应的组中,从而不用依次为每一个用户设置权限;
1、ls -l 扩展
ls -l 可以查看文件夹下文件的详细信息,从左到右依次是:
drwxr-xr-x.3 root root 4096 Mar 24 18:48 opt解析
权限 #第1个字符,- #普通文件、d #目录
硬链接数 #通俗地讲,就是有多少种方式,可以访问到当前目录/文件
拥有者 #家目录下 文件/目录 的拥有者通常都是当前用户
组 #在 Linux 中,很多时候,会出现组名和用户名相同的情况;
大小 #文件的大小
时间 #日期和时间
名称 #文件名
权限
user u 拥有者的权限
group g 所在组的权限
other o 其他组的权限
1、超级用户
1、Linux 系统中的 root 账号通常用于系统的维护和管理,对操作系统的所有资源具有所有访问权限;
2、在大多数版本的 Linux 中,都不推荐直接使用 root 账号登录系统;
3、在 Linux 安装的过程中,系统会自动创建一个用户账号,而这个默认的用户就称为“标准用户”;
sudo:
1、su 是 substitute user 的缩写,表示使用另一个用户的身份;
2、sudo 命令用来以其他身份来执行命令,预设的身份为root;
3、用户使用 sudo 时,必须先输入密码,之后有 5 分钟的有效期限,超过期限则必须重新输入密码;
4、若其未经授权的用户企图使用 sudo,则会发出警告邮件给管理员;
1、组管理终端命令
提示:“创建组/删除组”的终端命令都需要通过 sudo 执行;
命令 作用
groupadd 组名 添加组;
groupdel 组名 删除组;
cat /etc/group 确认组信息;
chgrp -R 组名 文件/目录名 递归修改文件/目录的所属组;
提示:
1、组信息保存在 /etc/group 文件中;
2、/etc 目录是专门用来保存“系统配置信息”的目录;
3、在实际应用中,可以预先针对“组”设置好权限,然后把不同的用户添加到对应的组中,从而不用依次为每一个用户设置权限;
1、用户管理终端命令
提示:创建用户/删除用户/修改其他用户密码的终端命令都需要通过 sudo 执行;
1、创建用户/设置密码/删除用户
命令 作用 说明
useradd -m -g 组 新建用户名 添加新用户 -m 自动建立用户家目录
-g 指定用户所在的组,否则会建立一个同名的组
passwd 用户名 设置用户密码 如果是普通用户,直接用 passwd 可以修改自己的账户密码
userdel -r 用户名 删除用户 -r 选项会自动删除用户家目录
cat /etc/passwd | grep 用户名 确认用户信息 新建用户后,用户信息会保存在 /etc/passwd 文件中
提示:
1、创建用户时,如果忘记添加-m选项指定新用户的家目录->最简单的方法就是删除用户,重新创建;
2、创建用户时,默认会创建一个和用户名同名的组名;
3、用户信息保存在 /etc/passwd 文件中;
1、查看用户信息
命令 作用
id [用户名] 查看用户 UID 和 GID 信息
who 查看当前所有登录的用户列表
whoami 查看当前登录用户的账户名
(1)passwd 文件
/etc/passwd 文件存放的是用户的信息,由6个分号组成的7个信息,分别是
1、用户名;
2、密码(x,表示加密的密码);
3、UID(用户标识);
4、GID(组标识);
5、用户全名或本地帐号;
6、家目录;
7、登录使用的 Shell,就是登录之后,使用的终端命令,ubuntu 默认是 dash;
(2)usermod
usermod 可以用来设置用户的主组/附加组和登录Shell,命令格式如下:
1、主组:通常在新建用户时指定,在 etc/passwd 的第4列 GID 对应的组;
2、附加组:在 etc/group 中最后一列表示该组的用户列表,用于指定用户的附加权限;
提示:设置了用户的附加组之后,需要重新登录才能生效!
usermod -g 组 用户名 #修改用户的主组(passwd 中的 GID)
usermod -G 组 用户名 #修改用户的附加组
usermod -s /bin/bash 用户名 #修改用户登录 Shell
(3)which
提示:
1、/etc/passwd 是用于保存用户信息的文件;
2、/usr/bin/passwd 是用于修改用户密码的程序;
which 命令可以查看执行命令所在位置,例如:
which ls
# 输出
# /bin/ls
which useradd
# 输出
# /usr/sbin/useradd
(4)bin 和 sbin
1、在Linux中,绝大多数可执行文件都是保存在 /bin、/sbin、/usr/bin、/usr/sbin;
2、/bin(binary)是二进制执行文件目录,主要用于具体应用;
3、/sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理;
4、/usr/bin(user commands for applications)后期安装的一些软件;
5、/usr/sbin(super user commands for applications)超级用户的一些管理程序;
提示:cd 这个终端命令是内置在系统内核中的,没有独立的文件,因此用which无法找到cd命令的位置;
1、切换用户
命令 作用 说明
su - 用户名 切换用户,并且切换目录; 可以切换到用户家目录,否则保持位置不变;
exit 退出当前登录账户;
su 不接用户名,可以切换到root,但是不推荐使用,因为不安全;
exit 示意图如下:
1、修改文件权限
命令 作用
chown 修改拥有者
chgrp 修改组
chmod 修改“用户/组”对“文件/目录”的权限
命令格式
chown 用户名 文件名|目录名 #修改文件|目录的拥有者;
chgrp -R 组名 文件名|目录名 #递归修改文件|目录的组;
chmod -R 755 文件名|目录名 #指定文件/目录为所有用户可读、写、执行的权限;-R递归变更;
chmod -R 644 dir/ #将dir目录下的所有文件权限设置为644;-R递归变更;
chmod og-x file1 #给该文件所在组和其他组删掉可执行的权限;
chmod g-x file1 #给该文件所在组删掉可执行的权限;
chmod o=r file1 #给该文件的其他组权限设置为可读的权限;
chmod u=rwx file1 #给该文件的拥有者权限设置为可读、写、 执行的权限;
chmod u+rwx file1
chmod 777 file2 #指定文件file2为所有用户可读、写、执行的权限;
chmod ugr+rwx file2
chmod 在设置权限时,可以简单的使用三个数字分别对应“拥有者/组”和“其他”用户的权限;
#直接修改文件|目录的“读|写|执行”权限,但是不能精确到“拥有者|组|其他”;
chmod +/-rwx 文件名|目录名
提示:以上方式会一次性修改“拥有者/组”权限;
常见数字组合有(u表示用户;g表示组;o表示其他):
777 ===> u=rwx,g=rwx,o=rwx
755 ===> u=rwx,g=rx,o=rx
644 ===> u=rw,g=r,o=r
1、时间和日期
命令 作用
date 查看系统时间
cal calendar 查看日历,-y 选项可以查看一年的日历
1、磁盘信息
命令 作用
df -h disk free 显示磁盘剩余空间
du -h [目录名] disk usage 显示目录下的文件大小
选项说明:
-h 以人性化的方式显示文件大小
1、进程信息
1、所谓进程,通俗地说就是当前正在执行的一个程序;
2、默认只会显示当前用户通过终端启动的应用程序;
命令 作用
ps aux process status 查看进程的详细状况;
top 动态显示运行中的进程并且排序;q 退出;
kill [-9] 进程PID 终止指定代号的进程,-9 表示强行终止;
选项含义
a 显示终端上的所有进程,包括其他用户的进程;
u 显示进程的详细状态;
x 显示没有控制终端的进程;
提示:使用 kill 命令时,最好只终止由当前用户开启的进程,而不要终止 root 身份开启的进程,否则可能导致系统崩溃;
1、find 查找文件或目录
说明:find 命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件;
格式:find [路径] -name "*.py" #查找指定路径下扩展名是.py 的文件,包括子目录。
注意:如果省略路径,表示在当前文件夹下查找。
命令
find [路径] -name "*.py" #查找指定路径下扩展名是.py 的文件,包括子目录;
find -name "*1*" #在当前目录下查找名字包含t的文件/目录;
find . -name '*1*' #在当前目录下查找所有名字包含1的文件/目录;
find -name "*.txt" #在当前目录下查找所有以.txt为扩展名的文件;
find -name "1*" #在当前目录下查找所有以数字1开头的文件;
find / -name 文件/目录 #在根目录下查找文件/目录;
find / -amin -10 #查找在系统中最后10分钟访问的文件(access time);
find / -atime -2 #查找在系统中最后48小时访问的文件;
find / -mtime -1 #查找在系统中最后24小时里修改过的文件;
find / -mmin -5 #查找在系统中最后5分钟里修改过的文件(modify time);
find / -empty #查找在系统中为空的文件或者文件夹;
find / -group cat #查找在系统中属于group为cat的文件;
find / -user 用户名1 #查找在系统中属于用户名1的文件;
find / -size +10000c #查找在系统中大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB);
find / -size -1000k #查找在系统中小于1000KB的文件;
1、软链接&硬链接
格式:
ln -s 被链接的源文件 链接文件 #建立文件的软链接,类似于Windows下的快捷方式;
ln 被链接的源文件 链接文件 #建立文件的硬链接;
注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
注意:
1、在使用 ln 创建链接时,如果没有-s选项,创建的是一个硬链接,而不是软链接;
2、源文件要使用绝对路径,不能使用相对路径,这样可以保证链接文件在被移动后仍然能够正常使用;
3、硬链接的特点:两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接;
文件软硬链接的示意图
在Linux中,文件名和文件的数据是分开存储的;
提示:
1、在Linux中,只有文件的硬链接数 == 0 才会被删除;
2、使用 ls -l 可以查看一个文件的硬链接的数量;
1、压缩解压文件
打包压缩是日常工作中备份文件的一种方式,在不同操作系统中,常用的打包压缩方式是不同的,例如:
1、Windows 常用 rar
2、Mac 常用 zip
3、Linux 常用 tar.gz
1、zip 压缩解压文件
zip -q -r 压缩包名.zip 路径 #压缩指定路径下所有内容
zip -q -r 压缩包名.zip * #压缩当前路径下所有内容
zip 压缩包名.zip 要压缩的文件名 #压缩文件
zip -r 压缩包名.zip 要压缩的目录名 #压缩目录
unzip 压缩包名 #解压
zip -dv 压缩包名.zip 文件名 #从压缩包中删除文件
1、gzip 压缩解压文件
gzip 要压缩的文件/目录 #压缩文件/目录压缩成gz格式,并删除原文件
gunzip gz压缩包名 #解压,不保留原压缩包
gzip -rc 目录名>目录名.gz #压缩目录成gz格式,并保留原目录
gunzip -rc gz压缩包名>文件名 #解压成文件,保留原压缩包
gzip -c 要压缩的文件名>压缩包名.gz #压缩文件成gz格式,并保留原文件
gunzip -c gz压缩包名>文件名 #解压成文件,保留原压缩包
1、tar 压缩解压文件
tar 是 Linux 中最常用的备份工具,此命令可以把一系列文件打包到一个大文件中,也可以把一个 打包的大文件恢复成一系列文件;
命令格式:
tar -cvf 打包文件.tar 被打包的文件/路径... #打包文件
tar -xvf 打包文件.tar #解包文件
命令格式:
tar -czvf xx.tar.gz 文件名 #压缩文件
tar -xzvf xx.tar.gz #解压文件
tar -tzvf xx.tar.gz #列出压缩文件内容
tar -zxvf 打包文件.tar.gz -C 目标路径 #解压缩到指定路径;-C #解压缩到指定目录,注意:要解压缩的目录必须存在;
选项说明:
c #生成档案文件,创建打包文件;
x #解开档案文件;
v #列出归档解档的详细过程,显示进度;
f #指定档案文件名称,f 后面一定是 .tar 文件,所以必须放选项最后;
注意:f 选项必须放在最后,其他选项顺序可以随意;
1、gzip 压缩解压文件
1、tar 与 gzip 命令结合可以使用实现文件打包和压缩;
2、tar 只负责打包文件,但不压缩;tar用于压缩并备份文件;
3、用 gzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz;
4、在 Linux 中,最常见的压缩文件格式是: xxx.tar.gz;
5、在 tar 命令中有一个选项 -z 可以调用 gzip,从而可以方便的实现压缩和解压缩的功能;
1、bzip2 压缩解压文件
1、tar 与 bzip2 命令结合可以使用实现文件打包和压缩(用法和 gzip 一样);
2、tar 只负责打包文件,但不压缩;
3、用 bzip2 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.bz2;
4、在 tar 命令中有一个选项 -j 可以调用 bzip2,从而可以方便的实现压缩和解压缩的功能;
命令格式:
tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径... #压缩文件
tar -jxvf 打包文件.tar.bz2 #解压文件
1、apt 安装、卸载软件
1、apt 是 Advanced Packaging Tool,是 Linux 下的一款安装包管理工具;
2、apt 可以在终端中方便的“安装/卸载/更新软件包”;
sudo apt install 软件包 #安装软件
sudo apt remove 软件名 #卸载软件
sudo apt upgrade #更新已安装的包
1、yum 安装、卸载、更新、查看软件
yum install lrzsz>输入y->安装完成 #安装lrzsz工具包
在线安装
yum install 应用名称
yum install mysql-server
在线卸载
yum remove 应用名称
yum remove mysql-server
源码包安装
将源码包放入linux系统,解压即可;
源码包卸载
把包删除即可;
更新应用
yum update 应用名称
查看"应用"安装包是否存在
yum list |grep 'XX应用名*'
yum list |grep 'musql*'
查看"应用"是否安装成功
service 应用名称 status
service mysqld status
2、配置软件源
1、如果希望在 ubuntu 中安装软件,更加快速,可以通过设置镜像源,选择一个访问网速更快的服务器,来提供软件下载/安装服务;
2、所谓镜像源,就是所有服务器的内容是相同的(镜像),但是根据所在位置不同,国内服务器通常速度会更快一些!
提示:更换服务器之后,需要一个相对比较长时间的更新过程,需要耐心等待。更新完成后,再安装软件都会从新设置的服务器下载软件了;
1、echo
1、echo会在终端中显示参数指定的文字,通常会和重定向联合使用;
2、格式:echo 文字内容;
1、重定向 > 和 >>
1、Linux允许将命令执行结果重定向到一个文件,将本应显示在终端上的内容输出/追加到指定文件中;
> 表示输出,会覆盖文件原有的内容;如果不存在内容,则创建;
>> 表示追加,会将内容追加到已有文件的末尾;
1、管道 |
1、Linux允许将一个命令的输出可以通过管道做为另一个命令的输入;可以理解现实生活中的管子,管子的一头塞东西进去(写),另一头取出来(读),这里 | 的左右分为两端,左端塞东西(写),右端取东西(读);
2、常用的管道命令有:
more:分屏显示内容;
grep:在命令执行结果的基础上查询指定的文本;
3、示例
ls / | more
1、grep 对文本文件进行模式查找
格式:grep [-选项] ‘搜索字符串’ 文件名
指令:
grep -n '^x' 1.txt #^x,行首,搜寻以 m 开头的行
grep -n 'x$' 1.txt #x$,行尾,搜寻以x结束的行
grep -n '[Ss]igna[Ll]' 1.txt #搜寻匹配单词signal、signaL、Signal、SignaL的行
#[Ss]igna[Ll],匹配 [] 里中一系列字符中的一个
grep -n 'e.e' 1.txt #匹配e和e之间有任意一个字符,可以匹配 eee、eae、eve、但是不匹配 ee、eaae
#.(点)匹配一个非换行符的字符
grep 'a' 1.txt
1、df 显示目前在Linux系统上的文件系统磁盘使用情况统计
格式:df [选项]... [FILE]...
df #显示文件系统的磁盘使用情况统计
df 文件名 #显示磁盘使用的文件系统信息
df -i #显示inode信息而非块使用量
df --total #显示所有的信息
df -h #产生可读的格式df命令的输出
1、tree 以树状图的形式查看目录结构
tree #以树状图的形式查看目录结构。
tree -version #查看tree版本
yum install tree #安装tree工具的命令
tree -L 1 >/home/tree.txt #将根目录下的1级目录导出到 /home下的tree.txt文件
1、last 显示用户最近登录信息
last #一般显示方法
last -n 5 -R #简略显示,并指定显示的个数
last -n 5 -a -i #显示最后一列主机IP地址
1、ps 显示当前进程的状态
ps -A #显示进程信息
ps -a #查看所有系统与终端相关的进程
ps -e #查看所有系统与终端相关的进程
ps -f #显示UID,PPIP,C与STIME栏位
ps -ef #查看系统所有进程(守护进程)
ps -u root #显示root进程用户信息
ps -ef |grep 进程名或者PID进程号 #查看某一进程的情况
1、top 实时查看系统进程情况
top #动态显示进程信息;
top -c #显示完整命令;
top -b #以批处理模式显示程序信息;
top -S #以累积模式显示程序信息;
top -n 3 #更新3次后终止更新显示;
top -d 3 #每3秒刷新一次页面;
top -p 进程号 #显示指定的进程信息;
top -s #使用者将不能利用交谈式指令来对行程下命令;
1、uname 显示系统信息
uname -a #显示系统全部信息
uname -m #显示计算机类型
uname -n #显示计算机名
uname -r #显示操作系统发行编号
uname -s #显示操作系统名称
uname -v #显示系统版本与时间
1、who 查看当前所有登录系统的用户信息
显示系统中有哪些使用者、使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等;
who #显示当前登录系统的用户
who -H #显示标题栏
who -l -H #显示用户登录来源
who -T -H #显示终端属性
who -m -H #只显示当前用户
who -q #精简模式显示
1、whoami 显示用户名
说明:显示当前的用户是root还是其他用户,本指令相当于执行"id -un"指令;
格式:whoami
1、passwd 更改使用者的密码
passwd -S 用户名 #显示用户密码信息
passwd -d 用户名 #删除用户密码
userdel -r 用户名 #删除用户名以及用户文件
whoami #显示当前的用户
修改用户的密码
passwd 用户1 #设置用户1的密码
Enter new UNIX password: #输入新密码,输入的密码无回显
Retype new UNIX password: #确认密码
passwd: password updated successfully
创建用户名密码
useradd 用户名 #新建一个用户
adduser 用户名 #新建一个用户
passwd 密码 #设置一个密码
注:使用adduser 命令增加用户账号时系统会自动在/home目录中为用户建立同名的用户主目录。
新建一个用户wang,密码设为123456
Useradd wang
Password 123456
1、su 切换用户,除 root 外,需要键入该使用者的密码
su -c ls root #切换帐号为root ,并在执行ls 指令后退出,变回原使用者;
su root -f #切换帐号为root ,并传入-f 参数给新执行的shell;
su - clsung #切换帐号为clsung 并改变工作目录至 clsung 的家目录(home dir);
su root #切换到root用户;
su -用户1 #切换到用户1;若不指定此用户,则默认变更为root用户;
1、id 显示用户的ID,以及所属群组的ID
id #显示当前用户ID
id -g #显示用户群组的ID
id 用户1 #显示指定用户1信息
1、netstat 显示网络状态
netstat -i #显示网卡列表
netstat -g #显示组播组的关系
netstat -s #显示网络统计信息
netstat -l #显示监听的套接口
netstat -a #显示详细的网络状况/端口号,以二进制的方式显示
netstat -n #端口号使用数字的方式进行显示
netstat -p #显示占用该端口号的进程号
netstat -nu #显示当前户籍UDP连接状况
netstat -apu #显示UDP端口号的使用情况
netstat -anp #显示系统所有的端口信息
netstat -anp |grep 端口号 #显示系统某个端口号占用情况
1、rpm 管理套件
rmp -qa 包名 #查看系统上的包
rpm -ivh rpm格式的安装包(例:kr.rpm) #安装软件
rpm -qi rpm格式的安装包(例:kr.rpm) #显示软件安装信息
rpm -e rpm格式的安装包(例:kr.rpm) #卸载软件
rpm -Uvh rpm格式的安装包(例:kr.rpm) #升级软件
1、chkconfig 检查\设置系统的各种服务
chkconfig -list #列出chkconfig所知道的所有的服务的情况
chkconfig "服务应用" on #启动开机自启
chkconfig "服务应用" off #关闭开机自启
chkconfig --list | more
chkconfig --list | grep mysql
chkconfig --list | grep vsftpd
1、service 服务
chkconfig --list #列出所有的服务项
service "服务应用" start #启动服务
service "服务应用" stop #关闭服务
service "服务应用" restart #重启服务
1、常用的服务应用
mysql #Mysql数据库的服务
vsftpd #vsFTP服务器的服务
iptables #防火墙的服务
sshd #ssh的服务
httpd #http的服务
1、日志
/var/log
/var/log/dmesg /核心启动日志
/var/log/messages /系统报错日志
/var/log/maillog /邮件系统日志
/var/log/xferlog /FTP服务用日志
/var/log/secure /安全信息,系统登陆与网络连接的信息
/var/log/wtwp /登录记录
1、查看硬件信息
uname -a # 查看内核/操作系统/CPU信息
head -n 1 /etc/issue # 查看操作系统版本
cat /proc/cpuinfo # 查看CPU信息
hostname # 查看计算机名
lspci -tv # 列出所有PCI设备
lsusb -tv # 列出所有USB设备
lsmod # 列出加载的内核模块
env # 查看环境变量资源
free -m # 查看内存使用量和交换区使用量
df -h # 查看各分区使用情况
du -sh # 查看指定目录的大小
uptime # 查看系统运行时间、用户数、负载
cat /proc/loadavg # 查看系统负载磁盘和分区
mount | column -t # 查看挂接的分区状态
fdisk -l # 查看所有分区
swapon -s # 查看所有交换分区
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE # 查看启动时IDE设备检测状况网络
ifconfig # 查看所有网络接口的属性
iptables -L # 查看防火墙设置
route -n # 查看路由表
netstat -lntp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接
netstat -s # 查看网络统计信息进程
ps -ef # 查看所有进程
top # 实时显示进程状态用户
w # 查看活动用户
id # 查看指定用户信息
last # 查看用户登录日志
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l # 查看当前用户的计划任务服务
chkconfig –list # 列出所有系统服务
chkconfig –list | grep on # 列出所有启动的系统服务程序
rpm -qa # 查看所有安装的软件包
cat /proc/partitions # 查看硬盘和分区
cat /proc/meminfo # 查看内存信息
cat /proc/version # 查看版本,类似uname -r
cat /proc/ioports # 查看设备I/O端口
cat /proc/interrupts # 查看中断
cat /proc/pci # 查看pci设备的信息
cat /proc/swaps # 查看所有swap分区的信息
tail -f /var/log/messages # 查看最近发生的信息
grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量
1、shell
bash #切换到bash
csh #切换到 C shell
ksh #切换到k shell
sh #最原始的shell
bsh #切换到bsh
filenum=`ls -l|wc -l` #统计文件个数