网上看一个两小时突击linux的教程,就想补充一下linux的知识。想着一天抽出俩小时立马就能学完呢,结果乱七八糟的事情拖了四五天,实际完成某项任务的时间超出预期完成任务的两部不止。好了,"牢骚到此为止"。

1、linux用户

  • 超级用户 root 只有一个,home目录在 /root 下,拥有最高权限。
  • 普通用户 user 可以多个,home目录在 /home/user 下,拥有部分权限。

  添加用户  useradd  user1

  切换用户  su - user1  (加中间"-"的好处在于切换后就能进入用户home目录,也可以不加)

  修改密码  passwd [uname] (不加uname,默认是当前用户)

2、环境变量PATH

  我理解为windows下环境变量path,作用也相同

  执行某命令时,会从PATH包含的目录和当前的目录寻找该命令,如果没找到,则会提示 command not found ;执行命令也可以用相对路径或绝对路径的方式执行,比如执行  ../test 、 /usr/local/mycmd/test

  临时修改PATH: export PATH=$PATH:/usr/local/mycmd/test ,这种方式只对本次登录有效

  永久修改PATh:在 /etc/profile 文件的末尾添加  export PATH=$PATH:/usr/local/mycmd/test  ,系统重启后对所有用户永久生效;在  ~/.bashrc 文件的末尾添加 export PATH=$PATH:/usr/local/mycmd/test  ,重新打开一个终端窗口或执行 source ~/.bashrc 命令只对当前用户永久生效

  

3、linux文件权限

  

  1. -rwxrwxr-x 一共10位,第一位表示文件类型,"-"是文件,"d"是文件夹,其余位表示三种用户权限,前三位owner的权限,中三位属于owner用户组的权限,后三位其他用户的权限。

    修改文件的权限  chmod filepath ,linux文件有三种权限  r 读  、  w 写 、   x 执行 ,每种权限用一位二进制表示,用户权限的表示就用三位二进制,转成八进制就是[7,0]

    文件夹的 r权限表示可以 ls , w权限表示可以touch创建文件, x权限表示可以cd进入

    rwx = 4+2+1=7,故 chmod 777 filepath修改的权限为 rwxrwxrwx。

  2.  liuchw liuchw 前者表示owner,后者表示group(用户组)

4、文件的操作

   创建一个文件  touch helloworld.c

  创建目录   mkdir directory

  查看文本文件内容  cat helloworld.c

  查看文件类型  file helloworld.c (文件的类型只取决于文件内容,和文件后缀无关)

  删除文件   rm -rf helloworld.c

  编辑文件   vim  helloworld.c

  复制文件   mv ./helloworld.c ./cp/helloworld_copy.c

  复制整个目录   /home/ (如果目录 /home/2 不存在,会自动创建)

  重命名文件和复制文件一样,放在同一个目录中即可

5、 打包压缩命令

  打包(多个文件合并为一个文件,文件总体大小不会改变)

    tar cf mytar.tar file1 file2 ... fileN

  压缩 

     tar cjf mytar.tar file1 file2 ... fileN

  其中 c 表示create创建,f表示file文件,j表示某种压缩算法

  查看打包压缩文件内容  tar tvf mytar.tar

  解压 tar xf mytar.tar -C dir 将压缩文件解压到目录中,参数-C必须大写

6、 搜索命令

  我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:

  • which 查看可执行文件的位置
  • whereis 查看文件的位置
  • locate 配合数据库查看文件位置
  • find 实际搜寻硬盘查询文件名称

   which 命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。如: which pwd 、 which which

   whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。 但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。 如: whereis ls

   locate 命令让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。在一般的 distribution 之中,数据库的建立都被放在 crontab 中自动执行。如: locate pwd 、 locate /etc/sh 搜索 /etc目录下以sh开头的文件。

   find 命令在目录结构中搜索文件,并执行指定的操作。命令格式: find pathname -options [-print -exec -ok ...]

  1. find dir [-type [f|d]] -name "xxx"  -type表示文件类型,文件或是目录;-name表示文件名称,可以使用通配符*

  2. ind dir -name "*.c" -exec wc -l {} \;   -exec表示运行其后面的命令;wc全名word count, wc -l  统计文件行数;{}指一条匹配结果;\; 转义分号

  如:查找并删除n天以前的文件,  find . -type f mtime +n -exec rm {} \;

  3.  find dir -name "*.c" >> count ; wc -l count ; rm count ;  >> 将执行结果导入后面的文件。这句代码是查找出.c文件并将结果写入count文件,然后执行后面的命令。

  4. find dir -name "*.c" | wc -l  | 管道命令,把上一个命令的执行结果作为下一个命令的输入

  

  

最新文章

  1. Nginx服务器之 Nginx的基本配置
  2. sqlserver实现数据库读写分离介绍
  3. php 连接mongodb 增查改删操作
  4. java webservice的多种实现方法汇总
  5. BZOJ 2751: [HAOI2012]容易题(easy) 数学
  6. 转载 C#结构体(struct)和类(class)的区别
  7. HDOJ-ACM1061(JAVA) Rightmost Digit
  8. ubuntu server编译安装nginx
  9. 【转载备忘】PowerDesigner16.5基本使用
  10. 移除 iview的Input组件默认background效果
  11. spring统一错误响应设置
  12. VM安装centos7
  13. 软件推荐----截图软件Snagit
  14. python常用的十进制、16进制之间的转换
  15. 26. SpringBoot 初识缓存及 SimpleCacheConfiguration源码解析
  16. js跳转 -- 转
  17. volatile和synchronized
  18. kafka集群管理工具kafka-manager部署安装
  19. [转] nginx配置HTTPS
  20. PAT甲题题解-1001. A+B Format (20)-字符串处理,水

热门文章

  1. python组件之wtforms
  2. Python--day24--单继承关键字super
  3. 【t093】外星密码
  4. Redux 认识之后进阶
  5. H3C FTP主动数据传输方式
  6. IDEA开发 工具IC和IU的区别
  7. 性能测试基础-HTTP用例设计
  8. 【2016常州一中夏令营Day3】
  9. HP Z420 工作站主板(X79 , C602)折腾笔记
  10. Google老师亲授 TensorFlow2.0实战: 入门到进阶