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 与 ! 代表本地。
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;防止文件破坏。