Linux 命令学习笔记
Linux主要目录:
/:根目录,一般根目录下只存放目录
/home:系统默认的用户家目录
/etc:系统配置文件存放的目录
/bin、/usr/bin:可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等
/bin:二进制执行文件目录,主要用于具体应用
/sbin:系统管理员专用的二进制代码存放目录,主要用于系统管理
/usr/bin:后期安装的一些软件
/usr/sbin:超级用户的一些管理程序
/lib、/usr/lib、/usr/local/lib:系统使用的函数库的目录。程序在执行过程中,调用一些额外的参数时,就需要函数库的协助
/boot:存放 Linux 系统启动时用到的一些文件。如 Linux 的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub
/dev:存放 Linux 系统下的设备文件。访问该目录下某个文件,相当于访问某个设备
~/.ssh:存放有关 SSH 配置信息
常用的Linux命令的基本使用:
查看目录内容
ls:查看当前文件夹下的内容
-a :显示指定目录下所有子目录与文件,包括隐藏文件
-l :以列表方式显示文件的详细信息。(r 读,w 写,x 执行)
-h :配合 -l 以人性化的方式显示文件大小。eg:ls -l -h,可以缩写为:ls -lh
切换目录
cd:切换文件夹
cd、cd ~ :切换到当前用户的家目录
cd . :保持在当前目录不变
cd .. :切换到上级目录
cd - :可以在最近两次工作目录之间来回切换
创建和删除操作
touch:如果文件不存在,则新建文件;如果文件存在,则修改文件的日期
rm:删除指定的文件名
-f :强制删除,忽略不存在的文件,无需提示
-r :递归删除目录下的内容,删除文件夹时必须加此参数
mkdir :创建目录
-p :可以递归创建目录。eg:mkdir -p a/b/c/d
拷贝和移动操作
tree:以树状图列出文件目录结构
-d :只显示目录
cp:复制文件或目录。eg:cp 源文件 目标文件
-i :覆盖文件前提示
-r :递归复制该目录下所有的子目录和文件
mv:移动文件或目录/文件 或者 目录重命名。eg:mv 源文件 目标文件
-i :覆盖文件前提示
查看文件内容
cat:查看文件内容、创建文件、文件合并、追加文件内容等功能
-b :对非空输出行编号。cat -b 等于 nl 命令
-n :对输出的所有行编号
more:分屏显示文件内容。适合查看内容较多的文本文件
grep:搜索文本文件内容
-n :显示匹配行及行号
-v :显示不包含匹配文本的所有行(相当于求反)
-l :忽略大小写
^a :搜寻以 a 开头的行
z$ :搜寻以 z 结尾的行
其他
clear:清屏
echo:在终端显示参数指定的文字,通常和重定向联合使用
重定向:
> :输出,会覆盖文件原有内容。eg:echo Hello Python > a
>> :追加,会将内容追加到已有文件的末尾
管道:
| :将一个命令的输出,可以通过管道作为另一个命令的输入。常与 more 和 grep 命令配合使用。eg:ls -lha ~ | grep Do
远程管理常用命令:
关机/重启
eg:shutdown 选项 时间
shutdown:不指定选项和参数,默认表示一分钟后关机
shutdown 20:25:系统在今天的 20:25 会关机
shutdown +10:十分钟后关机
shutdown -c:取消关机
shutdown -r:重启
shutdown -r now:现在重启
sudo:超级用户权限。eg:sudo shutdown -r now
查看或配置网卡信息
ifconfig:查看/配置网卡信息
ping ip地址:检测目标ip地址连接是否正常(数值越大,速度越慢)
ping 127.0.0.1:检查本地网卡工作是否正常
远程登录
eg:ssh [-p port] user@remote
user 是在远程机器上的用户名,不指定默认为当前用户
remote 是远程机器的地址,可以是 IP / 域名 / 别名
port 是 SSH Server 监听的端口,不指定默认为 22
SSH客户端/服务器:Linux 系统默认安装,Windows 系统需单独安装(所以在Windows系统中,不能使用该终端命令,可以安装 XShell 进行远程)。
SSH协议:对传输的数据进行加密和压缩,防止信息泄露和提高传输速度,也能够防止 DNS 欺骗和 IP 欺骗。专为远程登录会话和其他网络服务提供安全性的协议。
远程拷贝文件
eg:scp [-P port] user@remote:Deskop/0.1py 01.py( -P 为大写)
加上 -r 选项可以拷贝文件夹
scp -r user@remote:Desktop demo :把远程家目录下的 Desktop 复制到当前目录下的 demo 文件夹
scp -r demo user@remote:Desktop :把当前目录下的 demo 文件夹复制到远程家目录下的 Desktop
如果在Windows系统中,不能使用该终端命令。可以安装 PuTTY,使用 pscp 命令行工具或者安装 FileZilla 使用FTP 进行文件传输。FTP服务默认端口为 21 。
免密码登录
1.配置公钥:执行 ssh-keygen 即可生成 SSH 钥匙,一路回车即可
2.上传公钥到服务器:执行 ssh-copy-id -p port user@remote,可以让远程服务器记住我们的公钥
配置别名
在客户端 ~/.ssh/config 里面追加以下内容:
Host mac
HostName 服务器的ip地址
User 服务器的用户名
Port ssh端口
保存后,即可用 ssh mac 实现远程登录了,scp 同样可以使用
用户和权限:
sudo:
以其他身份来执行命令,预设的身份为 root。使用时必须先输入密码,且有效期为5分钟。
若未经授权的用户企图使用 sudo,则会发出警告邮件给管理员。
root 账号用于系统的维护和管理,对操作系统的所有资源具有所有访问权限,不建议直接使用 root 账号登录系统。
chmod:
可以修改用户/组对文件/目录的权限。eg:chmod +/-rwx 文件名|目录名
组管理:
groupadd 组名:添加组
groupdel 组名:删除组
cat /etc/group:确认组信息。组信息保存在 /etc/group 文件中
chgrp -R 组名 文件/目录名:递归修改文件/目录的所属组。
创建组/删除组的终端命令都需要通过 sudo 执行,除非 root 登录。eg:sudo groupdel dev
用户管理:
useradd -m -g 组 新建用户名:添加新用户
-m :自动建立起用户家目录
-g :指定用户所在的组,否则会建立一个同名的组
passwd 用户名:设置用户密码
如果是普通用户,直接passwd可以修改自己的账户密码
userdel -r 用户名:删除用户
-r :自动删除用户家目录
cat /etc/passwd | grep 用户名:确认用户信息。用户信息保存在 /etc/passwd 文件中
id 用户名:查看用户 UID(用户代号) 和 GID(组代号) 信息。不要用户名参数就是查看当前登录的用户信息
who:查看当前所有登录的用户列表
whoami:查看当前登录用户的账户名
usermod:设置用户的主组/附加组和登录Shell
-g :修改用户的主组。通常在新建用户时指定,在 ect/passwd 的第 4 列。eg:usermod -g 组 用户名
-G :修改用户的附加组。在 etc/group 中最后一列表示该组的用户列表,用于指定用户的附加权限
-s :修改用户登录 Shell。eg:usermod -s /bin/bash 用户名
修改后,需要重新登录后生效
which:查看执行命令所在位置。eg:which passwd
su -用户名:切换用户,并且切换目录。-可以切换到用户家目录,否则保持位置不变。不要用户名参数则是切换到 root
exit:退出当前登录用户
修改文件权限:
chown:修改拥有者。eg:sudo chown 用户名 文件名|目录名
chgrp:修改组。eg:sudo chgrp 用户名 文件名|目录名
chmod:修改权限。可以使用三个数字分别对应拥有着/组和其他用户的权限。数字对应如下
eg:sudo chmod -R 755 文件名|目录名
系统信息相关命令:
date :查看系统时间
cal :查看日历,-y 查看一年的日历
df -h :显示自盘剩余空间。-h 以人性化的方式显示文件大小
du -h [目录名] :显示目录下的文件大小
ps aux :查看进程的详细状况
默认 ps 只会显示当前用户通过终端启动的应用程序
a :显示终端上的所有进程,包括其他用户的进程
u :显示进程的详细状态
x :显示没有控制终端的进程
top :动态显示运行中的进程并且排序,q 退出
kill [-9] 进程代号:终止指定代号的进程,-9 表示强制终止。最好不要终止 root 身份开启的进程,可能导致系统崩溃
其他命令:
find:查找文件
find [路径] -name "*.py" :查找指定路径下扩展名是.py的文件,包括子目录
如果省略路径,表示在当前文件夹下查找
ln:建立文件的软链接(也就是快捷方式)
eg:ln -s 被链接的源文件 链接文件
没有 -s 选项建立的是一个硬链接文件。源文件被删除后,硬链接文件不会受影响
源文件要使用绝对路径,不能使用相对路径
打包文件和解包文件:
tar -cvf 打包文件.tar 被打包的文件/路径... :打包文件 eg:
c :生成档案文件,创建打包文件
v :列出归档接档的详细过程,显示进度
f :指定档案文件名称,f 后面一定是 .tar 文件,所以必须放选项最后
tar -xvf 打包文件.tar :解包文件
x :解开档案文件
tar 只负责打包文件,但不压缩。用 gzip 可以压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz
在 tar 命令中有一个选项 -z 可以调用 gzip,从而可以方便的实现压缩和解压缩的功能
压缩文件:tar -zcvf 打包文件.tar.gz 被压缩的文件/路径…
解压文件:tar -zxvf 打包文件.tar.gz
在 tar 命令中有一个选项 -j 可以调用 bzip2,从而可以方便的实现压缩和解压缩的功能
压缩文件:tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径…
解压文件:tar -jxvf 打包文件.tar.bz2
解压到指定路径:tar -zxvf 打包文件.tar.gz -C 目标路径
-C : 解压缩到指定目录,要解压的目录必须存在
软件安装:
sudo apt install 软件包 :安装软件
sudo apt remove 软件名 :卸载软件
sudo apt upgrade :更新已安装的包
根据情况设置镜像源
常见的服务默认端口号列表:
SSH 服务器:22
Web服务器:80
HTTPS:443
FTP 服务器:21
终端命令的格式:
command [-options] [parameter]
说明:
command:命令名
[-options]:选项,可用来对命令进行控制,可以省略
parameter:传给命令的参数,可以是零个、一个或者多个
如:rm -r 123.txt
[]代表可选
查阅命令帮助信息(两种):
command --help,如:mkdir --help
man command,如:man mkdir
b、f:上下反页、Enter键:滚动一行,q:退出
通配符:
* :代表多个字符
? :代表一个字符
[abc] :匹配 a、b、c 中的任意一个
[a-f] :匹配从 a 到 f 范围内的任意一个
其他:
/ 为根目录,~ 为家目录,. 为当前目录
eg:tree ~ :以树状图列出用户的家目录。cd / :切换到根目录
同一目录下,不允许有同名的文件或目录
小技巧:
ctrl + shift + = :放大终端窗口的字体显示
ctrl + - :缩小终端窗口的字体显示
tab :自动补全文件/目录/命令
ctrl + c :重新输入命令
学习途径:https://www.bilibili.com/video/BV1ex411x7Em?p=1