技术笔记:Linux学习笔记1

简介: 技术笔记:Linux学习笔记1

First Day


1、系统软件、应用软件、用户等之间的关系


与用户交流的是外壳。它以命令的形式与用户打交道。我们win7等是用图形界面同用户打交道。


2、比如说,bash---->对应着一个shell,每个shell可以理解为命令的名字。ctrl+c表示终止当前命令。


一个终端至少有一个shell,默认为bash。管理员中,根用户是root。具有最高权限。


exec ksh 表示切换到ksh这个shell。


3、linux是一个文件系统。什么东西都可以被找到。所有的文件都是一体的。


文件的路径可表示为:/dev/dri/…… 其中严格区分大小写。


4、绝对路径与相对路径


绝对路径就是文件的起始位置。该是什么就是什么。而相对路径是我们人为的将当前路径设为当前工作路径。以后就在这个环境下操作就ok了。


5、几个小命令


1)清屏 clear 或者ctrl+l


2)显示进程状态 ps :print status 每个程序执行一次都会有个进程。终端中进程编号唯一。pts/2 表示进程id。


打印当前工作目录 pwd :print working directory 。


改变当前工作目录 cd :change directory。 直接回到主目录。如果没带路径,其实就是相对路径。


~ : 表示主目录。 .:表示当前目录。 .. :表示上一级目录。../.. : 表示上一级的上一级。


3)列出文件列表 ls :list .


也可以登录远程终端:telnet 192.168.0.20 然后输入username passwd 之类的。但只可以修改自己的密码。


4)显示系统时间命令 date 。


注意:命令是可以带参数与选项的。命令 【选项】……【参数】……


5)命令的用户手册: 用man + 命令。查看命令的所有用法。 manual pages. 按q(quit)退出用户手册页。


6)id是可以查看的。 有用户id ,组id。 我们也可以man man ;man id 一下。。。


小结一下: 1、linux的文件系统为一体。2、绝对路径用 / 打头。它是从 / 开始的树状结构。3、相对路径是从当前路径开始的树状结构。 4、cd ./abc 5、username passwd uid gid 6、shell是与用户交互的部分,然后shell把命令转交给内核,然后内核返回给外壳,与用户进行交流。


命令: ps ; id ; pwd ; man ; ls ; clear ; crtl + l .


所谓的命令其实就是一些可执行的文件,类似于.exe。位于./bin 目录下。 我们可以用


ls -l /bin 命令,-l就是以横的形式排列这些文件。


ls -F /bin 命令,-F 就是标记文件。其中@表示软链接(就是快捷方式)表示可执行文件。


类似的,ls -a 列出所有文件和目录。其中以.打头的是隐藏文件。 在windows中,是以属性来区分的。


如何从命令行界面切换到图形界面: startx


Second Day


1、ls -al 显示文件属性。普通文件 "---"打头。


目录文件"d"打头。


.exe文件"l"打头。


管道文件"p"打头。


ls -lr /bin reverse 的意思。将文件顺序反过来。


ls -R 列出当前目录下的整个目录数。一级一级的。。。


2、硬连接与软连接 :


硬连接就是给文件起个别名,其实是一个引用。


软连接就是一个快捷方式。


命令: ln -s /bin/sleep bs (软链接)


ln /bin/sleep bs (硬链接)


然后 sleep 5 = ./bs 5 (和PATH有关)


目录名最末尾的 / 可有可无。当硬链接数变为0,则意味着文件内容被完全删除。


3、权限命令:


每一个级别又可以分为3个等级。W R X


readable wtitable execute .可读 、 可写 、 可执行


改变权限命令: chmod ugo + (user , grid , outer)


change + "-" 表示去掉权限。"+"表示加上权限。


chmod u-w,o+r ,g+w z.


所以,我们也可以用数字化表示:


chmod 755 z;


chmod a + x z 注:a = ugo。


4、建立目录


mkdir da dd dc ; make directory.


mkdir dd/de ;前提是dd已经存在。


mkdir -p dd/df/dv ; 建立多层目录。dd,df可以不存在。


我们可以用 ls -R dd 来查看dd下所有层。


5、建立文件


touch f1 f2 f3 f4


touch da/f7 ; 前提是da必须存在,不然建立不了。


我们一般先用cd命令,指定当前目录,然后建立文件。一般touch建立的文件是空文件。


那如何建立不空的文件呢???


6、拓展文件建立


> 、 ]


date > xy ; 把左边命令输出的内容写到xy(右边)(当前目录)文件中去。


两个特殊的文件: date > /dev/tty ; 表示输出到终端。


date > /dev/null ;表示空文件。linux中一切设备全当作文件看待。怎么都填不满。


cat xy ; 查看xy当中的内容。


如何不改变xy内容,然后追加内容呢?


pwd ] xy ;表示把左边命令产生的输出内容追加到右边文件中去。


7、如何随时随地,更自由的输出?


几个小命令: cal (calendar) 日历。


cal 10 2010 ;查看2010年10月的日历。必须是月、年的顺序。


更自由的输出命令: echo


8、如何执行多个命令


date;sleep 5;date ; 用;分隔开即可。


9、移动、删除、复制命令。


移动: mv (move)


mv x da dc ;把x和da 移动到dc文件夹中去。


mv db da/d2 ; 把db移动到d2当中。并改名为da。只有移动一个文件或目录的时候可改名。多个无法改名。


mv xy xy99 ; 移动文件相当于改名。


复制: cp(copy)


对于文件用 cp


对于目录用cp -r 用 -i 来用于提示和用户进行互动。interactive(互动的)


删除: rm


对于目录用rmdir


对于文件(目录) rm (-r)


rm -ri dc ; 交互是否删?


小结: 1、看目录 ls 2、看文件 cat (用猫将文件抓出来)


3、] 追加 > 写进去。


4、软硬链接 ln -s xx xx ; 硬链接必须在同一个分区当中。


5、移动 mv 复制 cp 删除 rm


Third Day


1、编辑器


1)gedit :图形化界面处理。不多讲。


2)kate : 图形化界面处理。不多讲。


cat katefile


3)vim vi


可视化编辑器


:q!表示强制退出。


快捷键:


移动光标命令:


行首: o I 注:O表示插入新的一行。


行尾: $ A home end


整体的首行:H ,x+H,表示移动到屏幕的x行。 整体的尾行 L 类似。


注:在此功能键也可以使用。


ctrl + f,在文件中向上移动一页(pageup)


ctrl + b,在文件中向下移动一页(pagedown)


:8 回到第8行。 :+ x 表示到某一行。


8 + G/M :表示到某一行去。


直接G 到文件末尾。 1G 到首行。类似于H的作用。


w 把光标移动到下一个单词的开头。{大小写都认}


B 把光标移动到上一个单词的开头。{大小写都认}


:set nu 显示行号。: set nonu 不显示行号。


方向键也可以使用。


替换和删除:


常见删除命令


删除一个字符:delete


x , 长按可以删除多个字符。


数字+ x,表示删除光标所指向的后 数字 个字符。不会影响到另一行。u表示可以恢复一次。


d + w,删除光标后面的单词。


d+ b, 删除光标前面的单词。


dd 本身就是删除。 删一行。 数字+ dd ,删除 数字行。


:9,18 表示删除9-18行。


粘贴和复制


p一下,其实3x之后,删除的字符在vi可视化编辑器的剪贴板中。p在光标之后插入。 P在光标之前插入。


数字+p :表示粘贴的次数。


yl 表示复制一个字符。 3yl表示复制3个字符。


yw复制一个单词,yy复制一行。


替换:字符: 8rk:替换8个k。replace。


cw表示替换整个单词。 cw + 单词。 会直接进入到插入状态。


~ :表示大小写翻转。J :连接俩行。


c与s:把一个字符换成一段内容。c与s之后进入插入模式。光标会变成$符号。


查找:


/ :表示查找,从当前位置向后查找。n(ext) :n一下,表示继续查找。


/str1 :正向查找字符串str1.


n :继续查找。


?str1 :反向查找。


撤销和重复


u :撤销前一条命令的结果。


. : 重复最后一条命令。


插入文件


:r xyz 将当前文件插入到光标位置之后。


替换


实现字符串的替换 :5-8 s/wf/妻子/g 在5-8行,用妻子替换wf。 g表示所有出现的字符。


:s/str1/str2/ 没有g表示首次出现的字符。


:5,$ s/str1/str2/g 表示用str2替代从第5行开始到末尾所有出现的str1.


:% s/str1/str2/g 全部替换。


保存于退出


:w 表示保存vi文件。 :w saveas + 名字。表示另存为。


:q 表示退出vi文件。


:wq 保存并退出。


shell与vi之间的切换


:! command :! ls 会在终端中显示内容。


Fourth Day


1、一些命令的深化


ps -l 显示 进程id PID 。父进程id PPID 。


注:一个进程是谁创造的,那么这个谁就是这个进程的父进程。


s 表示状态。 程序按时间片执行。


睡眠状态:S(leep)


挂起状态:T ()


运行状态:R (un)


2、 创建后台任务


sleep 10 & 指定id。


ps -e 更详细点。


僵尸进程 : 程序执行完了,但没有回收。变成 z 状态。


ps -e -l | grep z 查找z状态。


ps -f 查看命令开始时间。。


ps -f -p 1487 :查看进程id为1487的副进程的父进程是谁。


3、查看后台任务


命令:jobs


注: + - 表示优先级。


4、将命令放入 前/后 台执行


fg 一下,默认为"+"的。放入前台 ;继续执行。


fg + 编号,表示选择执行哪个任务。即指定任务。f forward


bg + 编号,表示选择执行哪个任务。并放入后台执行。 b backward


4、终止进程


kill + 进程号。 有些是致命的,有些不一定致命。


比如: sleep 100& ; fg (ctrl + z :表示将该进程挂起);kill 9090


通过发信号使进程终止。


kill也可以终止后台进程 :kill % 编号。


5、查找


grep VS find


grep :从文件中搜索。


find :+ 目录 + 条件【命令】 在指定目录下按条件查找。


find . -name f1 : 在当前目录下按名字查找f1文件。


也可以加通配符。 find . -name f ;


find . -name "*.c" -exec cp { } db \; 解释:exec 表示切换命令,追加命令。 { }表示前面命令所有输出的内容。


\; 表示";"本身,不表示其他意思。";"表示语句结束的标志。我们可以用"\;" ,也可以用';'。因为';'本身有特殊含义。


找人: who 。


查看谁在使用这个服务器。可以有相同的用户名,但终端编号必须不同。


可以只显示自己,who am i ; 只显示用户名 whoami


只关心用户我们可以用 users , 若要更详细,用w命令。


查找ip相同范围内的名字: who | grep 192.168.24.


6、一些技巧


history命令,查看以前敲入的所有命令。


!+ 编号; 表示重新执行该命令。


其实命令历史在.bash/history中。


7、和磁盘有关的命令


du (diskusage) : 查看磁盘空间使用情况。


du -k :以kb为单位显示空间使用情况。


du -h :显示的空间使用情况,全部带上了单位。


du -h -s :只看使用的总和。


8、和文件有关的命令


df (diskfile) :查看文件系统中各部分的使用情况。


df -h : 带上单位,查看文件系统中各部分的使用情况。


Fiveth Day


1、与网络相关的命令


1)ping 看看各个部分是否正常工作。 可以ping自己,也可以ping其他人的ip。


2)查看ip用ifconfig。在windows中,用ipconfig。


3)ftp 命令:ftp> bye 表示退出。


ftp环境下,现在一般用ftp软件进行文件的上传及下载工作。


上传: put + 文件名 mput 表示上传很多文件。


下载:get + 文件名 mget 表示下载很多文件。会有提醒,prompt 表示关闭提示。


ftp> !ls 表示执行查看本地的文件。


在ftp 服务器上,我们也可以进行文件的各种操作。


ftp > l cd 表示进入本地目录下。local 与 //代码效果参考:http://hnjlyzjd.com/xl/wz_24789.html

! 代表本地。

gftp 工具进行文件的下载与上传。


2、输出命令的拓展


echo $UID


" X " 值可能会变。而'x' 值不会变。echo 输出什么就是什么。


3、环境变量


env(ironment) : 环境变量。


$ + 环境变量的名字 就是那个环境变量的值。


几个重要的环境变量:


1)PS1 用来指定命令提示符; echo $ PS1


可以更改其值,也可以更改回来。但必须将其作为一个整体。不然肯定不行。


2)PATH :路径。


一个命令对应的.exe,并不是从当前目录(路径)下去找,而是从PATH目录(路径)中去找。


date vs ./da


PATH = /bin : . 其中.表示当前目录。:表示分隔作用,或者连接符,起附加作用。


此时再键入ls 已经不管用了。 ls 它的原始路径在/.bashrc 文件中的。


我们可以尝试查找 which / whereis cal :表示找到cal所在的那一堆目录。


然后将其所在目录的路径加入到PATH中来。


这样麻烦了,我们可以用 PATH = $PATH:. 来解决这个问题。


但这样之后,重新打开终端,恢复到原始态,最终是治标不治本,我们希望其一直有效,那么必须将上面命令写入到初始化文件中去。~/.bashrc 文件。. 表示隐藏文件。


在此,我们也可以给命令起别名。 alias c = clear alias ps = "ps -l "


若起在初始化文件中,则下次打开终端这些命令(新起的别名)依然有效。


4、如何打开 bashrc?


用命令 vi ~/.bashrc (其实就是写脚本文件) 我们可以用vi my.sh 写自己的脚本文件。


source my.sh 表示执行这个文件。 当我们不加source 时,提示权限不够,我们可以通过命令chmod 修改权限。


ls -l my.sh 查看权限。


注:当我们执行vi my.sh其实my.sh已经生产了。


备份的作用: bak = $PATH ; PATH = XXX ; PATH = bak;防止文件破坏。

相关文章
|
1月前
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
126 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
2月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
1月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
84 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
1月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(三):Linux下操作指令大全
Ubuntu学习笔记,介绍了Linux操作系统中常用的命令和操作,如文件管理、系统信息查看、软件安装等。
46 3
|
1月前
|
Linux 虚拟化
Vmware 傻瓜式安装(不可不知道的Linux基础知识和技术 01)
本文介绍了VMware虚拟机的下载与安装步骤。首先,通过提供的网盘链接下载VMware安装包。接着,详细描述了安装流程,包括接受协议、选择安装路径(建议避免系统C盘)、取消更新选项等。最后,输入许可证密钥完成安装,并展示了打开虚拟机后的主界面。整个过程简单易懂,适合新手操作。
140 1
|
2月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
2月前
|
安全 Linux Android开发
Linux CFI (Control-flow integrity)技术相关资料汇总
Linux CFI (Control-flow integrity)技术相关资料汇总
|
3月前
|
存储 监控 Linux
在Linux中,如何进行虚拟化技术的应用?
在Linux中,如何进行虚拟化技术的应用?
|
3月前
|
存储 分布式计算 负载均衡
在Linux中,什么是集群,并且列出常见的集群技术。
在Linux中,什么是集群,并且列出常见的集群技术。
|
3月前
|
Linux KVM 虚拟化
在Linux中,什么是虚拟化?并且列出常见的虚拟化技术。
在Linux中,什么是虚拟化?并且列出常见的虚拟化技术。
下一篇
无影云桌面