#Linex和Windows对比#
文件系统差别:Windows可以有多个盘: C盘D盘E盘F盘,Linex只有一个根目录即一个盘
Linex根目录内常用目录: 红色 要点
/home (用户的家目录) 蓝色 注释
/etc (系统全局配置文件,对所有用户都有影响) 黄色 举例
/root (超级用户的主目录,拥有最高权限)
用户管理差别:Windows对于用户概念比较模糊,即使打不开某软件也可以已管理员权限打开
Linex通过用户权限来指定不同的用户对文件的使用权限
应用方向差别:Windows更多的是代替纸质书写的办公,提高交流效率,且为闭源,看不到原码
只能通过指定功能操作
Linex更多的是面对网络服务,有很多不同的桌面系统,且为开源,公开原码,可自行修改
Linex下载:
sudo apt(apt linex系统管理库) install(install 下载并安装) (后面加上安装软件)
卸载: sudo apt remove (后面加上卸载软件,只能卸载自行下载软件)
下载Python第三方库:
sudo pip(pip python系统管理库) install (后面加上安装插件) -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
卸载: sudo pip uninstall(uninstall 卸载) (后面加上安装插件)
因下载渠道默认为国外网址,国外网址速度比较缓慢,若想自行指定网址则通过 -i 去修改网址
-i https://pypi.douban.com/simple (在下载时,插件后 -i 连接网址,举例为豆瓣网址)(该操作称换源)
查看系统管理库:
apt list 或 pip list (让指定数据库以列表形式展开查看)
#基本常用命令#(ctrl+L 清屏)
前导:打开Linex 进入之前定义好的Ubuntu18主页点进终端
who (查看当前登录系统的用户) 结果:bd(用户名) :0(当前终端) 2021-08-05 11:10(:0)(时间)
pwd (获取当前路径) 结果:/home/bd(/home家目录的/bd目录下)
cd (回到最开始目录/home/bd)
cd PythonEmnv (可跳转到PythonEmnv路径下,注意路径大小写)
cd .. (回到上一级目录) cd - (回到上一次打开目录)
ls (查看当前路径下非隐藏目录和文件)
ls -a (查看当前路径下全部目录和文件,包括隐藏)
ls -l (查看当前路径下全部目录和文件,以列表形式显示)
ls -t (以更改时间排序显示) ls -k (以文件大小排序显示)
man ls (获取较完善的帮助文档,按Q退出)
ls --help (查看简单的帮助文档,且最后自动退出)
历史命令 (终端内输入的命令会自动进行存储)
history (查看历史命令)
history -c (临时清除历史命令)
vim .bash_history (进入该文件清空并保存即可彻底删除)
#基本文件操作# (终端内文件夹通常蓝色显示,文件白色显示)
touch test.txt (tuoch 当前路径下添加新文件test.txt,必须加上后缀名)
rm test.txt (rm 当前路径下删除文件test.txt,必须加上后缀名)
cp test.py cy.py (cp 当前路径下复制文件test.py给新文件cy.py)
cat cy.py (cat 查看cy.py文件内的内容)
mv cy.py /home/bd(mv 移动cy.py到/home/bd路径下)
mkdir cy (mkdir 创建文件夹cy)
rmdir cy (rmdir 删除空文件夹cy)
rm -rf cy (rm -rf 强制删除文件夹cy)
#用户介绍#
root (超级用户) bd (自行创建的普通用户)
su root (su 切换到root用户,需输入密码,默认情况下root没有密码)
sudo passwd (sudo 执行后面命令时临时切换root用户权限,需输入bd的密码)
exit (exit 退出当前权限)
硬件管理
shutdown
shutdown -t 1 (-t 1分钟后关机) shutdown -r (-r 重启) shutdown -h (-h 关机后关闭电源)
shutdown -c (-c 取消关机倒计时)
磁盘管理
df -h (df-h 可读形式显示当前磁盘空间)
du -ch (du-ch 查看当前目录下各磁盘用量)
du -chs(du-chs 查看总用量)
du -ah(du-ah 显示全部目录和其次目录下每个档案所占磁盘空间)
#Ubuntu软件管理#
sudo(提权) apt(apt软件命令) -y(-y默认允许) update(update更新) (进入更新源)
sudo -y configure -a (修复不完整安装包)
sudo apt -y upgrade (更新已安装的包)
sudo apt -y dist-upgrade(升级系统)
sudo apt -get autoremove(卸载自动安装且不在使用的安装包,会有残留)
sudo apt autoclean (卸载已经删除还残留在磁盘的安装包)
lrzsz (有一定瑕疵)
安装后,可以方便主机和虚拟机互传文件,不能是文件夹,且不是所有连接工具都支持,比如Windows自带的cmd不支持
MobaXterm (对比lrzsz更方便)
支持主机和虚拟机互传文件和文件夹,且所有连接工具都支持
打开MobaXterm点击Session后点击SSH依次在Remote host*括号内填入IP地址127.0.0.1,在Specify username前面打勾括号内填入Ubuntu用户名bd,Port括号内填入端口1234
#用户和用户组#
sudo useradd -m cyh (创建新用户cyh,创建用户时同时创建同名用户组 -m 创建同名家目录)
vim /etc/passwd (进入配置文件查看用户)
1.su root2.vim /etc/passwd3.找到cyh把光标挪到尾部sh的s按i去输入ba
4.按Esc后输入 :wq 5. su cyh (提权打开后修改cyh用户关闭保存后切换到该路径)
groups (查看当前用户所在组的组内成员)
sudo userdel -r cyh (删除该用户,默认删除同名用户组 -r 彻底删除,包括同名家目录)
groupadd cyh11 (创建用户组cyh11)
sudo usermod -G cyh11 cyh (把cyh切换到用户组cyh11)
newgrp cyh11 (切换到用户组cyh11)
sudo groupdel cyh11(删除用户组cyh11)
文件权限
前导:先输入 ls -l 去查看当前路径下的目录和文件,以列表形式显示:
- rw -r - -r - - 1 bd bd 8980 10月 26 2019 examples.desktop
drwxrwxr - x 2 bd bd 4096 8月 5 21:57 pycharm_pro
第一列(文件或目录类型): - (表示普通文件) d (表示目录) l (表示软链接)
第二列(文件或目录权限) (3种权限 3列一种):
第1至3列(文件或目录所属者权限) r (表示可读) w (表示可写入修改) x (表示可以执行)
第4至6列(当前文件所在组其他用户权限) 第7至9列(其他组其他用户权限)
第三列(表示文件或目录内拥有文件和链接个数): 1 (表示1个) 2 (表示2个)
第四列(表示文件或目录的所属者): bd 第五列(表示文件或目录所属用户组): bd
第六列(表示文件或目录内存大小): 8980 (表示8980kb)(单位为kb)
第七列(表示文件或目录上一次修改时间):
10月 26 2019 (2019年10月26) 8月 5 21:57 (8月5日21:57)
第八列(表示文件或目录名和类型): examples.desktop(文件名)
(颜色为白色则文件,蓝色为目录,绿色为可执行文件,淡蓝色为软链接)
更改文件权限命令
chmod u+x examples.desktop(chmod 文件权限更改,u 所属者权限,添加,可执行权限,文件名)
chmod u-x examples.desktop (去除该权限)
chmod g+x examples.desktop (g 组内其他成员权限,添加,可执行权限,文件名)
chmod o+x examples.desktop (o 其他组其他成员权限,添加,可执行权限,文件名)
sudo chown root examples.desktop (chown 更改所属者,把examples.desktop所属者变成root)
sudo chgrp root examples.desktop (chgrp 更改所在组,把examples.desktop所在组变成root)
sudo chown -R root:bd examples.desktop (-R 同时更改所属者和所在组)
#文件编辑#Vim
前导:先cd pycharm_pro , ls查看文件内所属文件tesy.py,然后 vim test.py 编辑该文件(文件名
写错了就会创建新空文件,无责增)
命令模式 (进入默认为命令模式)(其他模式下 按 Esc返回到命令模式)
按 gg (gg 光标移至当前文件行首) 按 G (G 光标移至当前文件行尾)
按 h j k l (h j k l 光分别进行左 下 上 右移动) 按 0 $ (0 $分别到当前行行首 行尾)
按 Ctrl +V (选中需要复制内容) 再按 y (复制选中内容)
增: 按 yy (yy 复制当前行) 按 3yy (复制当前行以下3行) 按 p (p 粘贴)
按 y$ (y$ 复制当前到行尾) 按 y0 (y0 复制当前到行首) 按 yw (y$ 复制一个单词)
删: 按 dd (dd 删除当前行) 按 3dd (删除当前行以下3行) 按 x (x 删除当前字符)
按 X (X 删除前一个字符) 按 D (D 删除当前到行尾) 按 J (J 删除换行符)
改: 按 r (r 替换当前字符) 按 R (R 替换多个字符) 按 C (C 替换当前至末尾字符)
查: 按 /123 (/ 向前搜索123) 回车后 按 n (n 继续向后查找) 按 N (N 继续向前查找)
按 ?123 (? 向后搜索123) 回车后 按 N (N 继续向后查找) 按 n (n 继续向前查找)
插入模式
按 i (i 当前字符插入内容) 按 a (a 当前字符后插入内容) 按 o (o 下行插入内容)
按 l (l 行首插入内容) 按 A (A 行尾插入内容) 按 O (O 上行插入内容)
:set nu (显示行号)
末行模式
前导:先按Esc返回命令模式
:wq (: 进入末行模式,w 保存,q 退出) :q! (! 不保存,强制退出) :q (未修改内容则直接退出)
寄存器 (寄存器分为字母a-z和数字0-9寄存器,也有一些特殊寄存器)
3"ayy (" 寄存器,把当前行以下三行复制到a寄存器里)
:reg (:reg 查看寄存器及内容,命令模式下输入)
"ap (粘贴a寄存器里内容)
#命令查找#
whereis ls(whereis 查看ls命令位置,帮助文档) 结果:ls: /bin/ls /usr/share/man/man1/ls.1.gz
which ls (which 查看ls命令的位置) (常用) 结果:ls: /bin/ls
find命令(查找文件)
前导:cd pycharm_pro ,touch a1.py a2.py,cp test.py test1.py
find -name '*.py' (find 查找当前路径文件名字后缀名为.py的文件)
find pycharm_pro/ -name '*.py' (bd用户pycharm_pro/路径下查找)
find -type l(L小写字母) (l 链接文件,查找当前路径的链接文件)
find pycharm_pro/ -size -100(查找pycharm_pro路径下小于100kb文件,反之+大于)
xargs命令
find -name '*.py' | xargs cat (查找当前路径下py文件的文件内容)
(| 管道符表示前面内容以后面输出,xargs 接受前面匹配到文件)
find -name '*.py' | xargs python (查找当前路径下py文件并以Python进行运行)
grep命令(查找文件内容)
前导:cd pycharm_pro
grep 123 -c test.py (grep 查找test.py文件内含有123的列数,-c 列数)
grep 123 -n test.py (-n 查找所有含有123内容,且行首标明列数)
grep 123 -v test.py (-v 查找除123其余内容)
grep 123 -o test.py (-o 查找所有123内容)
#文本传输#
管道(可以将前面命令的输出作为后面命令的输入,用| 管道符连接)
find ./ -type f -name '*.txt' -print | xargs rm
(f 普通文件, 查找当前路径下类型为普通文件名字为.txt进行统一删除)
(若电脑中病毒,了解病毒格式为.txt,直接查找该文件内所有对应文件删除)
输入重定向(从键盘输入换成从指定文件输入)
wc -l test.py (wc 统计 -l 行数,统计test.py文件内容行数) 结果: 1 test.py
wc -l < test.py (< 输入重定向) 结果: 1
输出重定向(把命令输出到终端显示器换成输出至文件内)
echo 123 (echo 终端的输出语句,输出123) 结果: 123
echo 123 > test.py (> 输出123到文件内test.py会覆盖文件原内容)
echo 123 >> test.py (>> 不会覆盖文件原内容,追加内容)
输出至终端
前导:打开MobaXterm连接远程终端
tty (tty 查看当前终端信息)终端输入返回: /dev/pts/0 远程终端则是: /dev/pts/1
在远程终端里输入: echo 123 >> /dev/pts/0 (输出到终端)(ctrl + C 退出输出)
在终端里输入: echo 123 >> /dev/pts/1 (输出到远程终端)
#文件传输#
文件别名(运行代码赋值别名为简化代码,输入别名即可运行对应代码)
alias ll (alias 文件别名,查看ll这个别名的全名) 结果: alias ll='ls -alF'
type ll (查看ll这个别名的全名) 结果:ll是'ls -alF'的别名
vim .bashrc (进入.bashrc查看定义完的别名)
alias cpy='cd pycharm_pro' (临时定义'cd pycharm_pro'别名为cpy)(重启终端则无效化)
永久定义则vim .bashrc进入后下滑找到 alias开头位置,按 o 在下行以临时定义形式插入后,
返回命令模式, :wq 保存并退出,重启终端或输入 source .bashrc 重新加载该配置文件
unalias cpy (unalias 临时删除该别名,若已经永久定义则需重新打开.bashrc删除)
郑重声明以下特殊别名谨慎定义
$ alias cd='rm -rfv' (当想cd进入该文件时,会rm -rfv强制删除该文件)
$ alias sudo='sudo halt' (当想sudo提权,会rm -rfv关机)
$$ alias vim='vim +q' (当想vim进入打开文件或者修改别名时,会vim +q退出,造成循环闪退)
文件打包 tar
前导: cd pycharm_pro
tar -cvf cyh.tar test.py(-c 建立新压缩包(必要) v 打印打包文件的文件名 f 打包进入包名
(f结尾,其他参数写其前)表示把test.py文件打包进cyh.tar包)(后缀名为.tar)(未压缩)
tar -zcvf cyh.tar.gz test.py (z 调用gzip 压缩该文件,进行打包并压缩)(后缀名为.tar.gz)
tar -zxf cyh.tar.gz (x 解压该文件至当前目录下,压缩调用z解压就也要)
综合使用
tafind ./PythonEnv/ -name '*.sh' >> a.list (PythonEnv路径下查找所有sh脚本,记录到a.list文件)r -T a.list -zcvf a.tar.gz (把该文件内的所有脚本压缩打包)
软链接(软连接定义原文件快捷方式,信息同步,原文件删除软链接本身也会消失)
ln -s test.py test.soft(ln -s 创建软链接,创建test.py 的软链接名为test.soft)(后缀名为.soft)
硬链接(硬链接创建新文件且和原文件信息同步,原文件删除硬链接本身还可使用)
ln test.py test.hard(ln 创建硬链接,创建test.py 的硬链接名为test.hard)(后缀名为.hard)
#进程管理#
ps命令 (显示执行时当时的进程)(静态)
ps -aux (a 显示用户进程 x 显示后台进程 u 按用户和启动时间排序)
top命令(默认每隔五秒更新显示进程)(动态)
top (动态监控)(Q 退出)
top -d 1 (-d 时间,定义每隔1秒更新显示进程)
#进程停止和杀死#
Linex 的进程分为前后台进程,前台进程占用终端端口,而后台进程不占用,要让程序后台运行
只需要在启动进程是,在命令后加上&符号即可
在 vim test.py 回车一瞬间 按Ctrl + Z (Ctrl + Z 让正在前台执行的进程停止)
ps -aux | grep vim (查看vim占用进程)
kill -9 2413 (kill -9 表示杀死进程,2413 为该进程ID号)
杀死后再次打开该文件 按 d 回车则变回该文件
Shell介绍
Shell不只是一种解释器,还是一种编程工具,成为脚本语言
Shell脚本分为交互和脚本模式(终端既是Shell的交互模式)
echo $SHELL (查看当前shell的版本) 结果:/bin/bash (bin目录下的bash版本)
cd pyhtonEnv (进入pyhtonEnv,ls查看内含两个脚本)
(start mode.sh 切换到桌面模式)(configure.sh 执行配置)
vim cyh.sh (vim 没有该文件则会创建,创建cyh.sh的脚本模式)
可以给脚本添加可执行权限,使其可自行执行:
chmod u+x cyh.sh (给cyh.sh 添加可执行权限)
./cyh.sh (当前路径下自行运行该脚本)
Linex
于 2021-08-04 19:45:16 首次发布