linux--初见

来源:互联网 发布:爬虫软件有哪些 编辑:程序博客网 时间:2024/05/01 02:04
Shell Prompt命令提示符: craftsman@dog:~$ + command(命令)
  explain:craftsman:username,用户名
          dog:machinename,机器名
          ~$:current working directory,当前工作目录.
          ~ :user home,即用户主目录. --> /home/craftsman

Command命令:rm -r ttt/
  rm:命令本身.
  -r:参数.
  ttt/:操作对象.

  ge: man rm: 通过man命令打开一个命令手册.
              之后查看某个具体参数的使用敲击:begin with"/-" ,因为参数都是以-开头的.
              查找下一处敲击键盘n,
              eg: /-r    


2.在ubuntu文件中跳转:
  windows有分区.
  ubuntu只有一棵倒挂的树.
  Root Directory:根目录.
  current working directory,当前工作目录.可以使用pwd在ubuntu的terminal中打印出来.
  /home/craftsman
 
3.绝对路径(absolute path):start with "/"  .eg:Devices下面的Computer,下面的bin文件件的绝对路径就是:/bin
                           .eg:Devices下面的Computer,下面的home文件下下的craftsman文件夹的绝对路径就是:/home/craftsman
  相对路径:start with "." or ".." ...
           相对于当前工作目录产生的路径.
           . 表示当前工作目录:current working dir
           ..表示当前工作目录的上一级目录 :parent dir(directory) of current working dir
4.cd 命令:Change (working) Directory
          改变当前工作目录.
          有两种方式: cd 绝对路径,cd 相对路径
           cd - :回到上一次的目录的用户目录.(这样可以来回切换)
          
 terminal:ctrl+l:清屏.
 直接敲:cd 会回到用户主目录:/home/craftsman (in my VMware)
 
5.走马观花看命令:
     copy: $ cp file1 file2(copy file)
           $ cp -r dir1 dir2(copy directory, need parameter:-r)
     move: $ mv file .. (把文件移动到上一级目录)
           $ mv file dir/ (把文件移动到当前目录的dir目录中)
     rename: $ mv file1 file2
             $ dir1 dir2   # dir2存在,则为移动操作
     remove: $ rm file (文件)
             $ rm -r dir (目录)
     create a file: $ touch a.txt  (将会创建在当前目录下)
                    $ >a.txt
                    $ touch .jj.xml (在当前目录下创建隐藏文件)
        
     create a directory: $ mkdir dir
                         $ mkdir .mydir(在当前目录下创建隐藏目录)
     在当前目录下list隐藏文件(夹):$ ls -a
     查看文件: $ cat file
     查看文件类型: $ file a.txt
6.通配符:
7.打包压缩:
8.重定向.
    8.1 三个重要文件
       note:in linux,everything is a file...所有的东西都是文件.
       linux下面有三个文件很特殊,这三个文件是一直打开的.系统就给这三个文件
       分配了固定的描述符(file descriptor).
       file descriptor:为0的文件叫做标准输入文件, stdin
       file descriptor:为1的文件叫做标准输出文件, stdout
       file descriptor:为1的文件叫做标准错误文件, stderr
    8.2 拐弯的各种方式
           输出重定向(redirect stdout),输出重定向符: >
           标准错误输出(redirect stderr):2>
           标准输入(redirect stdin):<
    8.3 管道线  
9.权限.
    9.1 三种权限
         reading -- r 读
         writing -- w 写
         executing- x 执行

         the owner, group, world has which permission of r,w,x

    9.2 文件模式,file mode
          文件:
               $ ls -l a.xml (可以查看文件权限信息)
               :-rw-rw-r-- 1 craftsman craftsman 6  3月 20 20:15 a.xml
                -:file type: - file(-就是文件), l sym link(符号链接), d directory(目录),.....
                1:link number
                the first craftsman:owner
                the second craftsman:group
                6:size in byte, means the size of the file.
                3月 20 20:15:the last modify time.

                rw-rw-r--:file mode(对文件的权限情况)
                  the first rw-:owner(文件拥有者对该文件用于r,w权限,后面是-,表示没有执行(executing)的权限)
                  the second rw-:group
                  r--:world(只有r的权限)
            目录:
                $ ls -ld myFolder(可以查看目录权限信息)
                :drwxrwxr-x 2 craftsman craftsman 4096  3月 20 14:11 myFolder
 
    9.3 chmod(change file mode,改变文件模式)
            改变一个普通文件的加执行权限是毫无意义的
            所以打开vim编辑器.创建一个脚本程序文件: $ vim a.sh
            编辑:echo hello
            然后esc 退出编辑
            然后大写ZZ
            这样得到一个合法的程序,a.sh
            执行 $ ./a.sh
            提示信息:bash: ./a.sh: Permission denied
            执行命令:$ ls -l a.sh 查看得到:-rw-rw-r-- 1 craftsman craftsman 11  3月 20 21:18 a.sh
            得知我这个owner是没有执行(executing)权限的(the first rw-).
            获取对该脚本程序执行权限:$ chmod +x a.sh
            然后:$ ls -l a.sh
            发现:-rwxrwxr-x 1 craftsman craftsman 11  3月 20 21:18 a.sh
            我这个owner有了执行权限(the first rwx).so now i got the permission to execute the a.sh
            现在再来执行:$ ./a.sh
            成功打印 hello.

            now:有一个文件:
            新建一个文件:touch a.txt
            向文件中写内容: echo helloworld > a.txt
            then: $ ls -l a.txt
            info: -rw-rw-r-- 1 craftsman craftsman 11  3月 20 21:40 a.txt
            这时:操作的既不是craftsman本人,也不是craftsman这个小组中的组员,
                 我想给他加上写权限. 即 将r--变成 rw-
            $ chmod -rw-rw-rw- a.txt 不是合法的命令.
            $ chmod -110110110 a.txt 也不是合法的
            $ chmod 666 a.txt 这是合法的... 在terminal输入该合法命令
            输入命令之后
            查看该本文权限信息 命令:$ ls -l a.txt
            info:-rw-rw-rw- 1 craftsman craftsman 11  3月 20 21:40 a.txt
            成功!!!

            我们对文件的owner和group做修改来改变某个用户对该文件权限信息:chown命令可以实现.

10.进程
    10.1.获取进程号. 进程号:PID(Process ID).
         $ man ps 查看ps命令信息.
         ps - report a snapshot of the current processes.
         查看当前系统所有进行运行情况:$ ps aux
         $ ps aux|less
         $ ps aux|grep vim    直接查看vim进程信息
         info:craftsm+ 29380  0.0  1.8 256672 18696 pts/9    Sl+  22:02   0:00 vim
              craftsm+ 29435  0.0  0.2  15944  2436 pts/0    S+   22:09   0:00 grep --color=auto vim

        kill vim进程:$ kill 29380(进程号,上面两个的第一个进程会被杀死).
    10.2.后台执行. ????
    10.3.kill命令结束进程. ?

11.查找
    11.1.locate:在系统范围内定位文件. eg: $ locate vimrc(系统所有文件名包含vimrc的文件)
          但是我们可能会找不到我们刚刚新建的文件.
          why?  file system-->updatedb(每天更新一次)-->databases-->locate-->results
          解决办法:$ sudo updatedb   更新
          然后再来:$ locate a.sh (在更新之前新建的一个a.sh) 就可以找到了.
    11.2.find:在一个目录范围内定位文件.
           定位到桌面目录下,$ find .命令会列出该目录下的所有文件:craftsman@dog:~/Desktop$ find .
            找到当前目录下的java文件:$ find .|grep .java (|是管道符, grep .java 筛选java文件)
            只看查找出来的文件:$ find . -type f
            只看查找出来的目录:$ find . -type d
    11.3.grep:字符串查找利器.


12网络操作. pass i have no server...
    12.1.远程操作
    12.2.数据传输
13.脚本编程.
    指定解析器
    语句即命令
    位置参数
    脚本不在当前shell执行
    循环控制
    远程执行
    确认执行
    其他语言写脚本
























0 0
原创粉丝点击