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

原文地址:https://www.cnblogs.com/zhuxuekui/p/4190751.html