一、linux 简要介绍
- linux 的基本思想:一切皆文件
- linux 的特点:多用户、多任务、多平台
二、linux 发行版
- 概念:linux的本质只是操作系统的核心,人们以linux核心为中心再集成各种各样的系统管理软件或应用工具组成一套完整的操作系统,便成为linux发行版
- 常见linux发行版:redhat(企业级收费)、centos(企业级免费–基于rehat重构)、ubuntu
三、linux 磁盘分区与目录结构
- vmware12+ubuntu16 虚拟机安装
- 挂载与目录
- / 下的目录说明
四、linux 常用命令
-
linux 命令提示符详解
-
linux 绝对路径与相对路径
- 绝对路径:由根目录/开始写起的文件名或目录名称
- 相对路径:相对当前路径的文件名写法
- . :代表当前路径
- …:代表上一层路径
- - :代表上一个工作目录
- ~:代表用户的home目录,eg: /home/hadoop
-
linux 命令格式(选项以 - 开始,多个选项用一个 - 连起来)
-
linux 常用命令
-
帮助及查找
- 帮助命令:
man + 需查询的命令
or需查询的命令 --help
- 查找命令:
find dir -name expression # expression 支持正则匹配
,eg:find / -name "*.log"
- 图片绝对路径or相对路径写入文件:
ls -R /workspace/data/*.jpg > file.txt
orls -R *.jpg > file.txt
- locate 快速查找文件和目录:
安装:sudo apt install mlocate && sudo updatedb 使用:locate *file*
- 帮助命令:
-
切换用户 (root)
- sudo 命令:sudo allows a permitted user to execute a command as the superuser or another user, as specified by the security policy
- su 命令:change user ID or become superuser
- su username:切换到 username
- sudo su root(sudo -i):输入密码后便成为 root 用户
-
查看磁盘、内存、显存等信息
- df -h:report file system disk space usage(-h, --human-readable)
- du -sh 文件或目录名称 : Summarize disk usage of each FILE, recursively for directories( -s, --summarize,display only a total for each argument)
du -sh *
:查看当前目录下每个目录所占的空间- free -h/m/g:查看 CPU 内存的大小及占用情况
- 在 free 命令的输出中,有一个 free 列,同时还有一个 available 列。这二者到底有何区别?
- free 是真正尚未被使用的物理内存数量。至于 available 就比较有意思了,它是从应用程序的角度看到的可用内存数量。
Linux 内核为了提升磁盘操作的性能,会消耗一部分内存去缓存磁盘数据,就是我们介绍的 buffer 和 cache
。所以对于内核来说,buffer 和 cache 都属于已经被使用的内存。当应用程序需要内存时,如果没有足够的 free 内存可以用,内核就会从 buffer 和 cache 中回收内存来满足应用程序的请求
。所以从应用程序的角度来说,available = free + buffer + cache
。
- fdisk -l:List the partition tables
- parted -l:lists partition layout on all block devices
- nvidia-smi:查看 GPU 显存的大小及使用情况
- watch -n 1 nvidia-smi:每过一秒刷新一次 GPU 显存的大小及使用情况
- tree -L 3:只显示三层,
tree -d
只显示目录
-
监控系统状态、kill 进程
- w :Show who is logged on and what they are doing
- sudo fuser -v /dev/nvidia*: 查看 GPU 的详细占用情况
- kill -9 pid_num:用 top 命令查看进程的pid号,然后使用kill命令即可把此进程kill掉。
- ps -fp pid_num :查看此 pid 所对应的用户和命令(先
nvidia-smi
查到pid
号,然后再使用命令查看每块显卡上跑的什么程序) - ps -ef/aux: 显示所有运行中的进程
ps -ef/aux | grep python
:查找当前实例中的 所有python 进程- killall nautilus:文件系统卡死时,重启
- htop :
sudo apt-get install htop
,然后就可以查看(虚拟内存:VIRT,物理内存:RES,共享内存:SHR)的具体使用情况了 - top : The top program provides a dynamic real-time view of a running system
-
编辑、显示及命令快捷键
- cat:concatenate files and print on the standard output
- vim:Vi improved, a programmers text editor
- echo:在屏幕上显示信息,相当于 print 函数
- pwd:print name of current/working directory
- Tab : 命令补全,连续按两次列出所有可能的结果
- Ctrl + r(reverse-i-search) : 先按住
Ctrl+r
,然后输入命令的前几个字符,可以按住Ctrl 并不断点击 r
进行从后往前进行模糊查找,也可以不按Ctrl+r
接着输入字符,让其实现自动智能命令补全。Note:找到命令后,按Enter键直接执行命令,按左/右键让其在命令行等待执行。
-
终端及系统程序
- Ctrl + Alt + T:打开新终端
- Ctrl + l (clear) : 清屏
- Ctrl + c :中断当前程序的运行
- Ctrl + d :关闭linux系统,相当于exit
- sudo shutdown now:马上关机
- sudo reboot now:重启
- ssh 连接:
-
scp 在两台服务器间传输文件
- 本机文件夹
test
拷贝到远程主机/home/manzp
目录下:scp -r -P 6690 test manzp@ip:/home/manzp # 6690 为远程主机端口
- 从远程主机拷贝文件夹
/home/manzp/test
到本机/home/manzp
目录下:scp -r -P 6690 manzp@ip:/home/manzp/test /home/manzp # 6690 为远程主机端口
- 本机文件夹
-
删除 ubuntu 连接到服务器的记录
- 在终端输入:
vim ~/.config/nautilus/servers
- 删除
<bookmark>
之间的内容就好了
- 在终端输入:
-
解决 :sudo:/etc/sudoers 可被任何人写:
pkexec chmod 0440 /etc/sudoers
-
五、linux 网络配置相关命令
# 查看当前所有 up 状态的网卡信息(尤其是网卡的名称,下面要用的,有的可能不是 eth0)
ifconfig # 若没有显示内容,安装一下网络工具 sudo apt install net-tools
# 关闭 eth0 网卡
ifconfig eth0 down
# 用 ifconfig 修改网卡 eth0 MAC 地址
ifconfig eth0 hw ether FE:AD:39:F2:4B:24
# 用 ifconfig 修改网卡 eth0 IP 地址
ifconfig eth0 10.67.72.137
# 用 ifconfig 修改网卡 eth0 子网掩码
ifconfig eth0 netmask 255.255.252.0
# 用 route 添加、删除、查看网关(gateway)
route add default gw 10.67.75.254
route del default gw 10.67.75.254
route -n
# 启动 eth0 网卡
ifconfig eth0 up
# 配置 DNS 服务器
sudo echo "nameserver 8.8.8.8" >> /etc/resolv.conf
sudo echo "nameserver 8.8.8.7" >> /etc/resolv.conf
# 确认网络是否通畅
ping 10.67.72.137