(不充分的)基础的linux知识:

linux分为内核(唯一的,联系硬件与操作系统)(只有一个版本,牢牢把握在linus手中)和发行版(使用已经封装好的内核间接调用硬件)(有许多版本)。

windows是单用户操作系统,用户操作的是盘符中的内容。UNIX和LINUX是多用户操作系统,不同的用户在各自的文件中进行操作。

Ubuntu的操作重点应该在home文件夹中,别的文件不要碰(bin是二进制文件,etc是重要的系统配置文件)。

终端命令行:

ubuntu命令行界面放大字体:ctrl   shift   =,缩小字体界面:ctrl   –

常用命令:rm删除文件,mkdir创建文件夹,pwd输出路径,ls输出列表下的内容,clear清空,touch创建文件,cd改变路径

     remove  ,make directory,   print work directory,       list                                                            change directory

 

 

命令格式commond [-option] [parameter]

中括号代表可有可无,option表示可以省略的选项,parameter表示参数。例如rm test01不能删除文件夹test01,但rm -r test01是可以奏效的,此时-r就是[-option](如果test01是文件夹名字的话)

 

如果忘记一个命令的参数或者选项应该怎么用了,用以下两个命令可以速查。假设我们要查mkdir的信息。

mkdir –help即可

man mkdir亦可,这时打开了mkdir的手册manual,space向下一行,enter向下一页,f向下一行(front),b向前一页(back),q退出(quit)

 

终端使用技巧:

1.自动补全:如果敲字母到一半不想敲了,那就按下TAB自动补齐,如果已有的首字母对应着多个选项的话就按两次tab,会得到一个带有所有备选项的目录,例如输入 cd D,再按两次TAB,会被提示Document,Download,Desktop等三个选项。

2.曾经使用过的命令:按上下方向键即可。

 

对ls命令的拓展:

凡是首位是.的文件都是隐藏文件,比如.123,ls不能显示这类文件,但ls -a可以,a代表all。

在ubuntu中          .代表当前目录             ..代表上一级目录。

-l是以列表list形式显示详细信息

-h与-l联合使用可以使得显示更加人性化

-l,-a,-h这三个参数可以联合使用,没有先后顺序,-alh,-ahl都可以。

ls通配符,指可以代表位置字符的符号

*,可以代表任意多个符号,0个也好,100个也好,输入ls 1*可以找到所有以1为开头的文件,输入ls *1可以找到所有以1为结尾的文件

?可以代表一个字符,不能是0个,不能是多个,只能是一个

[]表示一个字符组,只要存在于这个字符组中就可以提取出来,输入ls [12345]23可以找到123,223,323,423,523,ls[12345]可以用ls[1-5]表示

 

对cd命令的扩展:

~表示家目录,/表示根目录,cd ~或者cd 可以回到家目录,cd -可以在最近的两个cd中选一个(感觉没啥用,有上下键不就够了么)

相对路径:目前文件夹下面的文件,最前头不是/或者~

绝对路径:最前面是/或者~

 

vi编辑器:(51条消息) Linux——vi命令详解_傲骄鹿先生的博客-CSDN博客_linux的vi

 

对touch的扩展:

对于不存在的文件,创建出来;对于已经存在的文件,修改创建时间。

 

 

对于mkdir的扩展:

在同一个目录下,文件和文件夹不可以同名。

-p可以递归创建文件,mkdir -p a/b/c/d/可以创建出文件夹a,a中有b,b中有c,c中有d。

 

 

rm的扩展:

注意:rm一旦删除无法恢复!
rm -r 可以删除文件夹,删除文件夹a以后a中的所有文件都没了

rm -f强制删除,存在的文件直接删除,不存在的文件也不报错(f就是force)

如果你想删库跑路:在根目录/下rm -rf *

 

 

tree命令:以树形式显示目录结构

格式:tree[]

中括号中加上要显示的文件夹,不加[]的话就把所有文件显示出来。

扩展:-d只显示目录,不显示文件。

 

 

命令行中蓝色是文件夹,白色是文件

 

 

cp命令:

格式:cp 原文件 目标文件

如果不需要给原文件改名的话就cd test01 .即可,毕竟.就意味着当前目录

扩展:若原文件和现有文件不同,将原文件cp至现有文件会将现有文件覆盖。在命令中加入-i可以得到是否确定覆盖的提示

距离cp -i test01 .

cp不能直接复制目录,要复制目录的话就要加上-r

 

给命令起别名:

alias即可,例如

alias ll='ls -alh'
alias lll=ls

注意,空格前后不可有空格。

alias查看所有别名;

unalias取消别名:

unalias ll

ubuntu之文件移动:

命令mv是move的缩写,可以将一个文件移动到另一个地方,格式为mv 源文件 目标地址

mv text.txt a/b/c/会将text.txt放入a中的b中的c中;

mv text.txt demo.txt会将text.txt改名为demo.txt;

综上,mv会将一个文件从一处放入另一处,如果目标文件夹没有这个名字,那就创建,如果有那就覆盖,但此时有另一个问题:
若此时有a,b两个文件,mv a b会将b变成a,原本的b消失了。ubuntu中不能撤回对文件的操作,那怎么办呢?在mv时加上-i就会被提示覆盖信息。就像cp一样。

ubuntu之文件查看:

which xxx查看xxx的目录(类似pwd,但不需要在xxx在即可使用)

 

 

cat命令是concatenate缩写,意为连接,cat test可以将test的内容一次性显示出来。

more可以将文件的第一页显示出来,文件操作同man,空格是翻一页,f是翻一页,b是倒退一页,回车是翻一行。

综上,cat用来显示内容比较少的文件,more用来显示内容比较多的文件。

对cat命令的扩展:
-b对非空行加上行号

-n对文件加上行号

 

grep命令可以查找指定内容:

grep as test可以在test中查找带有as行

对grep的扩展

-n可以将行号显示出来

-v相当于取反,会显示文件中不包含as行

-I可以使查找忽略大小写

grep ^f test 在test中查找f在行首的行

grep f$ test在test中查找f在行尾的行

 

echo命令:将后面的内容显示在终端中

重定向:
>在文件中覆盖式地写入

>>在文件中追加

放在一起用:

echo hello >> test在test中加入hello

ls -ahl >> test在test中加入ls的结果(如果test不存在的话,先创建再写入) 

 

|管道标志,将一个命令的输出作为另一个文件的输入。

ls -alh | more将ls的内容分屏显示

ls -alh | grep -n do将ls中含有do的内容逐行显示

 

 

ubuntu之系统信息:

时间信息:

date显示当前时间

cal显示当前月的日历,即calender

cal -y可以显示一整年的日历

磁盘信息:

df 

disk free可以显示磁盘使用情况,剩余空间大小

du []

disk usage已经使用的磁盘,[]中加上目录可以表示指定目录中的使用情况

以上两个命令加上-h可以在显示文件大小时带上单位(正如ls的扩展功能一样)

进程(正在进行的程序):

ps [aux]

process status,a显示终端上所有程序(all),包括其他用户的程序;u显示进程的详细情况;x显示没有终端控制的进程

一旦使用了x会看到很多很多进程,可能会造成比较大的心理压力,可以使用clear或者ps aux | more缓解一下

top命令:

动态(时刻刷新着)排序(占比最大的最靠前)显示各个进程。

按q就可以退出了,进入以后不要紧张

kill PID

中止某一个进程,PID可以在pa au中看到

[-9]是一个强制删除的扩展,用来对付一些正常情况下删不掉的进程

 

不好分类的屑命令们:

 find [路径] -name “”

在指定路径中查找文件,如果不加路径,就在当前路径下查找。

find -name “*123*”在当前路径查找名字中有123的文件

软链接(类似windows中的快捷方式):

ln -s 源文件 链接文件

一定要加-s,不加的话就是硬链接,相当于复制了一次(啥也不是,不如cp)

源文件记得用绝对路径,别用相对路径(用了相对路径的话只能在当前位置使用,一旦发生了移动就全失效了)

小知识:linux中文件数据和文件名是分开存储的,软链接是链接到源文件名的,硬链接是链接到文件数据的。

Ubuntu之打包压缩:

linux中常常将一大堆文件打成一个tar包(tar只负责打包不负责压缩)。

打包命令tar cvf 打包文件 被打包的文件/路径

解包命令tar xvf 打包文件

选择c创建打包文件x解开档案文件v列出归档和解档的过程,列出进度f放在最后,指定打包文件格式一定是.tar(f必须放在最后,其余的随你)

gizp压缩:

将tar文件压缩为tar.gz格式,只要在tar中加上一个扩展-z即可:

tar -zcvf 打包文件.tar.gz 被打包的

tar -zxvf 打包文件.tar.gz -C 解压后的目标路径名

(有没有-C都可以,有的话很不错,没有的话就解压缩到当前路径)

bzip2压缩:

将tar文件压缩为tar.gz格式,只要在tar中加上一个扩展-z即可:

tar -jcvf 打包文件.tar.bz2 被打包的

tar -jxvf 打包文件.tar.bz2 -C 解压后的目标路径名

(有没有-C都可以,有的话很不错,没有的话就解压缩到当前路径)

 

Ubuntu之软件安装

apt 是advanced packaging tool缩写

sudo apt install 安装包,安装

sudo apt remove 安装包,卸载

sudo apt update 安装包,更新

推荐两个安装包:sl一个呜呜呜小火车

htop漂亮的显示进程

 

在ubuntu中运行python文件

找一个xxx.py文件,在其中储存代码
使用解释器python3运行该代码,将xxx.py的文件名以参数的形式传给python3
即python3 xxx.py

 

在解释其中交互式运行:
在终端中输入python3即可进入交互式形式。
交互式的缺点:代码是在python3的shell中输入的,虽然可以即时得到结果,但一旦退出就什么也不剩了
如何退出交互式:在shell中输入exit()或者ctrl+D
官方的解释器python3功能简陋,建议使用ipython3解释器:(I代表交互INTERFACE)
ipython3可以使用自动补全,可以直接输入linux命令,输入exit(没有小括号)或ctrl+d即可退出
sudo apt install ipython3即可安装

 

集成开发环境:(IDE)(intergrated developed environment)
pycharm:
运行:右上角的绿色三角;
调试:右上角的绿色小虫子可以运行到断点处,然后在console控制台中单步执行即可简单调试
调试中可用绿色小三角继续执行,红色方块终止程序将调试释放掉
创建新文件时的interpreter编译器选择:在anaconda3的文件夹中选择python.exe文件即可

 

在.py文件的第一行加上

#! 解释器(比如python3)的绝对地址

再用chmod给文件加上可执行权限即可在命令行中直接运行.py文件


 

注意,以下内容主要用于服务器管理,用不到,而且不全面,可抛弃

ubuntu之远程管理(用来玩坏你的好朋友的电脑)

shutdown命令可以关机

shutdown 20:25今天20:25关机

shutdown +10十分钟以后关机

shutdown now现在就关机

shutdown -r重启

shutdown -c取消之前的关机计划

 

网卡:

每部手机都有一张电话卡,一个电话号码

每台电脑都有一张网卡,一个ip地址

ifconfig命令可以查看当前网卡的配置信息,但信息很多

ifconfig | grep -n inet可以按行显示配置信息中有关ip地址的信息

 

ping命令用来检验网络连接

ping 173.147.175.176可以检测本机到173.174.175.176的速度

ping 加上回环地址可以检查本机的网络是否正常

原理:发送一个数据包,收到目标地址主机的反馈,检测这之间的时间,时间越长说明网速越慢。

 

域名是ip地址的别名。比如www.baidu.com

我们访问百度首页时,先用ip地址或者域名访问到百度的服务器,再通过端口号访问该服务器上的web软件。如果不输入端口号,则使用目标服务器的默认端口号。

 

想要退出一个命令行的过程就用ctrl+c

 

ssh命令可以从一台电脑上访问另一台电脑(secure shell)

格式ssh [-p port] 用户名@域名/ip地址  port参数是端口,没有的话就默认22

 

linux上自带ssh控制软件,windows上需要额外下载putty或者xshell,然后就可以操作别人的系统啦哈哈哈哈

 

scp命令远程复制文件(secure copy)

scp -P port 源文件 user@ip:/Desktop/test(参数中P大写)

可以将源文件从本地放到目标电脑的test文件夹中

也可以从远程放到本地:

scp -P port user@ip:/Desktop/test .

 

在windows系统上也可以使用filezilla通过ftp协议将文件在linux和windows之间进行传输。

 

退出一个ssh中的远程文件:exit即可

 

在linux中,每一个用户都有各自的权限,为了避免为每一个用户都设置一次权限的麻烦,开发组的概念,为一个组设置权限,在同一个组中的用户享受相同的权限。

对ls -l进行扩展:每个文件的前面有10个字母,第一个字母表示是否目录,是d则是目录,-则不是目录;对于后九个字母:r可读w可写x可执行,每三个字母是一个组的权限,三个组分别是拥有者权限,组权限,和其他用户权限

十个字母后面的一个数字是硬连接数:有几种方法可以到达该文件。一个目录可以通过绝对路径进入,在本身之中通过 cd .进入;在子目录中通过 cd ..进入,总而言之,一个目录的子目录越多,硬连接数就越大

 

修改目录或者文件的权限chmod:

chmod +x ip 给ip加上x权限

chmod -r ip 给ip减去权限

 

执行一个文件:

./test即可执行test文件

 

x可执行权限对于目录的意义:如果没有这个权限的话,连用ls查看这个目录的内容都做不到

 

sudo是ubuntu的超级用户root,拥有许多默认用户所没有的权限(默认用户就是我们平时使用的用户,其只能在家目录下活动)。

实际上su是substitute user的意思,即替代用户,ubuntu的默认替代用户就是超级用户root

使用sudo需要输入密码,输入一次以后的五分钟内都不用再输入

 

ubuntu之组的管理:

添加组:sudo groupadd dev可以开发一个组dev

删除组:sudo groupdel dev可以删除这个组

查看组的信息(有没有添加或者删除成功)cat /etc/group

根目录下的etc是用来储存系统配置信息的目录

修改一个文件或者目录的组别:

sudo chgrp -R 组名 目录名/文件名

-R的作用是递归将目录中所有的文件和目录全部放入这个组

chgrp是change group的缩写

 

ubuntu之用户管理:

sudo useradd -m -g 组名 用户名

即可创建一个新用户,-m的作用是自动创建家目录,-g的作用是放到一个指定组中去,否则计算机会自动创建一个和用户名同名的组

sudo passwd 用户名

即可设置密码

sudo userdel -r 用户名

即可删除一个组

确定用户信息:用户信息保存在/etc/passwd文件夹中

 

 id指令可以显示出ark的用户带号UID,组代号GID

/etc/passwd中储存的是用户名,密码(已加密,所以看不见),UID,GID,用户名或本地帐号,家目录

查看用户信息:

who查看有哪些用户登陆了本电脑

whoami看看自己是谁

 

版权声明:本文为-ark原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/-ark/p/16531584.html