zoukankan      html  css  js  c++  java
  • 对Linux(Unix)的基础知识归纳

    前言,不论是原生APP(Android&IOS),还是大型架构级基础环境(.NET&J2EE,或LAMP阵营等),

    基本都不可避免的涉及到Linux(Unix),故还是觉得有必要把自己的一些相关知识归纳下。。

    PS,Linux(Unix)更偏向程序(命令),而不是操作(界面)的系统。

    给我感觉就像做事风格:踏实稳重,也有点简单实在了,当然地就有点‘土’------不过我喜欢!哈哈~

    首先,还是Linux系统一点情况介绍,这个有点。。。

    Linux诞生的故事就不说了,其实就是用c山寨unix,也可认为Liunx衍生至unix。所以Linux与unix的基础命令几乎一模一样的,

    最明显的就是,IOS(越狱后的Unix)命令几乎和Android(root后的Linux)是一个鸟语的---所以下面说道Liunx可等同unix。

    不过,Liunx是开源的。当然地,和windows一样,作为操作系统必然有多任务、多用户等特点,

    以及包含自己系统运行的内核(核心程序)、文件系统(ext、nfs等)、还有调用的接口(shell、命令&图形界面、应用程序等)。

    与windows不同的:目录只有一个盘(根目录)、没有图形化的界面(当然也能用X-windows集成)、可移植等。

    Linux有N多版本,其中以偏桌面的Ubuntu(源于Debian)与偏服务器的CentOS(源于redhat)为主。

    这里也提下国内多用CentOS的几个原因(本人比较认同的):1.国内网络不行;2.基本教材、资料都是redhat的;3.发布版本稳定性。

    接着,就是Linux目录结构,这是个基础,不过~其实Linux就是个小基础的东四。----下面用Ubuntu举例,看图

    再者,就是Linux的常用命令,

    1.文件目录:mkdir 创建目录;touch 生成文件;echo 生成待内容文件;cat/tac 现实文件内存

          rm 删除文件;cp 复杂文件;mv 移动文件;find 查找文件;grep 查找字符串

          wc 统计文字;pwd 当前目录;tree 显示目录树;ln 连接文件;ls、cd。。。

    2.系统管理:stat 显示指定文件信息;netstat 网络状态;man 命令帮助;

          who、w 在线用户;whoami 用户自身身份;ifconfig 网络端口;

          hostname 显示主机名;uname 系统信息; top 系统资源使用信息(性能优化常用!);ps 瞬时进程;ping、clear、kill。。。

     

    还有,就是有些常用操作,如VIM,软件包管理(解/压缩),用户、文件(夹)权限,SSH等,

      1.VIM:编辑模式-》插入模式(输入i)-》命令模式(输入:)

         几个保存命令:q直退;wq保退;q!强退;w file 保存成其他文件

      2.压缩/解压文件、文件夹:

         gzip(后缀gz)与bzip2(后缀bz2)

         tar(可完全替换上两个) [-cxzjvf],c压缩&x解压;z用gzip压缩&j用bzip2压缩;v显示压缩文件;f压缩文档

      3.软件包管理:

         dpkg软件包(.deb后缀文件,等同redhat的.rpm后缀文件): sudo dpkg -i pkg_file.deb 安装;sudo dpkg -r pkg_file 卸载

         APT自动处理依赖文件:sudo apt-get install pkgname 安装;sudo apt-get remove pkgename 卸载;

                    sudo apt-get update 获取包列表;sudo apt-get upgrade 升级更新;

      4.用户、文件(夹)权限:(ls -l 显示)

         su 切换用户;id 显示用户id;groups显示用户组;

         chmod 更改操作权限  [u 属主 g 所属组用户 o 其他用户 a 所有用户][+ 加权限 – 减权限 =加权限同时将原有权限删除] [rwx] 文件或目录名,如 chmod g+w file。

         chown&chgrp 更改属主及属组 [ -R ] 属主 [ :所属组 ] { 文件|文件夹},如: chown -R jiyilee:build /tmp/src, chgrp jiyilee test.txt。

      5.SSH: 安全shell,远程连接登录用到的,其实就是个安全协议,里面用到一些加密算法,不过一般都是用就行的。常用到一些工具,如putty、WinSCP等

    最后,就是个shell,也就是linux下的脚本,类似windows的bat,有些js&Python等脚本特点。

    其实蛮简单的语言(基本能称得上),有变量、函数、循环、控制等,一般起码要能看懂及作小修改就行。

    总结,用惯了windows就如习惯了C#的简洁和灵活一样,再看java就不顺了,再用linux就不感冒,其实习惯就好~都是个操作系统,都是个开发语言而已。。。

    真正热爱技术的技术人员不应该偏执某一技术,可专注不应狭隘!所以玩.net也好,java也罢,

    最好了解下Linux,了解下DBA与运维的也是很有必要的,了解大数据吧,了解Python,了解管理,了解...

    当然不可能都用到,也不是要面面俱到、盲目追新,更不可能样样精!只是更好的都需要对比和借鉴,一旦需要时可以很快上手、不至于傻乎乎~

    技术是纯的、可确定的(不像管理等),应无界限,需点大气才是~~~

    若转载,请注明@jiyilee.cnblogs.com 珍惜生活,努力工作!!!
  • 相关阅读:
    mysql 查询重复 去除重复等等
    css 控制行数 多出的省略
    php修改SESSION的有效生存时间
    php 冒泡排序
    spring---------配置文件的命名空间
    POM(project Object Model) Maven包管理依赖 pom.xml文件
    输入一个网站地址到网站展现的过程以及APR协议(鬼知道中间经历了什么)
    Apache CXF 入门详解
    Python中协程Event()函数
    Scikit Learn安装教程
  • 原文地址:https://www.cnblogs.com/jiyilee/p/4980418.html
Copyright © 2011-2022 走看看