首页 > 代码库 > 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
挂起状态:T?
运行状态:R?

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 ?与 ?! 代表本地。?

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;防止文件破坏。?

Linux学习笔记1