• linux指令学习小笔记,不断更新。


    都是一些零散的小知识,在学习中不断完善。


    知识一.

     解释执行:执行效率高,但与平台有关

     编译执行:执行效率低,但具有平台无关性

    知识二.

     gcc –Wall 选项:让GCC提供所有的警告信息。

    知识三.

     字符常量用单引号括起来,eg‘}’ (注意:单引号只能括一个字符

    知识四.

     在UNIX系统中,管道是一种先进先出的单向数据通路。利用管道符号“|”,可以把一个命令的标准输出连接到另一个命令的标准输入

        eg  ls /usr | wc –w

        (“-w”选项表示以字为单位进行计数)

    知识五.

     return 0 成功完成

        return 非0  失败

    知识六.

     重定向输出:

    eg ls –l > lsoutput.txt

    (把 ls 命令的输出保存到文件lsoutput.txt中,若文件已存在,则覆盖原文件)

    eg ls –l >> lsoutput.txt

    (把 ls 命令的输出保存到文件lsoutput.txt中,若文件已存在,则将信息添加到文件尾部)

    知识七.

      linux的通用“回收站”/dev/null来有效地丢弃所有的输出信息,如下所示:

    kill –l 1234 > /dev/null 2>&1

    (这条命令将把标准输出和标准错误输出都重定向到同一个文件中,注意操作符出现的顺序,这条命令的含义是“将标准输出重定向到文件/dev/null,然后将标准错误输出重定向到与标准输出相同的地方。”)

    知识八.

      grep –l POSIX * | more

    (搜索并输出当前目录下包含POSIX字符串的文件名)

     

    知识九.

     一般情况下,linux和UNIX很少利用文件扩展名来决定文件的类型。你可以为脚本使用.sh或者其他扩展名,但shell并不关心这一点。大多数预安装的脚本程序并没有使用任何文件扩展名,检查这些文件是否是脚本程序的最好方法是使用file命令,例如,file testshell 或 file /bin/bash。

    知识十.

    当编辑完shell文件(例如文件名为test)后,要用chmod +x test命令把它设置为可执行。

     

     

    知识十一.

     因为test命令在shell脚本程序以外用的很少,所以那些很少编写shell脚本的linux用户往往会将自己编写的简单程序命名为test。如果程序不能正常工作,很可能是因为它与shell中的test命令发生了冲突。(以后别用test做为文件名了

    知识十二.

     一般来说,如果需要循环至少执行一次,那么就使用while循环;如果可能根本都不需要执行循环,就使用until循环。

    知识十三.

     linux指令:touch file_one  (检查文件file_one是否存在,如果不存在就创建它)

                     rm –f file_two  (强制删除文件file_two,忽略不存在的文件,不提示确认)

    知识十四.

     echo命令总是返回true

    知识十五.

    kill命令:当需要中断一个前台进程的时候,通常是使用< Ctrl+c >组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令。该命令可以终止后台进程。kill命令是通过向进程发送指定的信号来结束进程的。如果没有指定发送信号,那么默认值为TERM信号。TERM信号将终止所有不能捕获该信号的进程。至于那些可以捕获该信号的进程可能就需要使用kill(9)信号了,该信号是不能被捕捉的。
    kill命令的语法格式很简单,大致有以下两种方式:
    kill [-s 信号 | -p ] [ -a ]进程号 ...
    kill -l [信号]
    -s 指定需要送出的信号。既可以是信号名也可以对应数字。
    -p 指定kill命令只是显示进程的pid,并不真正送出结束信号。
    -l 显示信号名称列表,这也可以在/usr/include/linux/signal.h文件中找到。

    应用实例一:
    1强行中止(经常使用杀掉)一个进程标识号为324的进程:
    kill-9324



    知识十六.

    Linux下NAT操作:

    案例

    1.源NAT(SNAT)

    比如,更改所有来自192.168.1.0/24的数据包的源ip地址为1.2.3.4

    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0-j SNAT --to1.2.3.4

    系统在路由及过虑等处理直到数据包要被送出时才进行SNAT

    有一种SNAT的特殊情况是ip欺骗,也就是所谓的Masquerading,通常建议在使用拨号上网的时候使用,或者说在合法ip地址不固定的情况下使用。比如

    # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

    2.目的NAT(DNAT)

    比如,更改所有来自192.168.1.0/24的数据包的目的ip地址为1.2.3.4

    iptables -t nat-A PREROUTING -s 192.168.1.0/24 -i eth1 -j DNAT --to1.2.3.4

    系统是先进行DNAT,然后才进行路由及过虑等操作。

    有一种DNAT的特殊情况是重定向,也就是所谓的Redirection,这时候就相当于将符合条件的数据包的目的ip地址改为数据包进入系统时的网络接口的ip地址。通常是在与squid配置形成透明代理时使用,假设squid的监听端口是3128,我们可以通过以下语句来将来自192.168.1.0/24,目的端口为80的数据包重定向到squid监听

    端口:

    iptables -t nat-A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT--to-port 3128




    知识十七.

    linux  指令:ifconfig -a              -----在所有接口报告的选项
                netstat -in              -----n e t s t a t( 1 )命令也提供系统上的接口信息。- i参数将打印出接口信息,-n参数则打印出I P地址,而不是主机名字。
                arp -a     -----用来检查arp高速缓存存放了最近I n t e r n e t地址到硬件地址之间的映射记录,参数-a的意思是显示高速缓存中所有的内容。

    添加路由表中的表项:
    route add default sun 1
    route add slip bsdi 1
    第3个参数(d e f a u l t和s l i p)代表目的端,第4个参数代表网关(路由器),最后一个参数代表路由的度量( m e t r i c )。r o u t e命令在度量值大于0时要为该路由设置G标志,否则,当耗费值为0时就不设置G标志。


    搜索无线接入点:
    iwlist wlan0 scanning
    接入指定无线接入点:
    iwconfig wlan0 essid "NETGEAR_11g(1)"

    数据包通过指定的网卡出去:
    route add 192.168.0.1 dev wlan0
    删除上面的操作:
    route del 192.168.0.1 dev wlan0
    设置IP
    sudo ifconfig eth0 133.133.133.190 netmask 255.255.255.0
    这样就算设置好了网卡eth0的IP地址和子网掩码


    重启网卡:/etc/init.d/networking restart


    网卡自动获取IP:dhclient wlan0


    知识十八

    每个账号都可以有多个用户组的支持


    知识十九

    chgrp:改变文件所属用户组

    例:chgrp -R users install.log

    其中-R表示进行递归(recursive)的持续更改,即连同子目录下的所有文件、目录都更新成为这个用户组。常常用在更改某一目录内所有的文件情况。

    chown:改变文件所有者

    chmod:改变文件的权限

    各权限的分数:r-4   w-2   x-1

    例: -rwxrwx---     分数则是owner = rwx = 4+2+1 = 7

    group = rwx = 4+2+1 = 7

    others=  ---  = 0+0+0 =0

    例:chmod 777 .bashrc


    知识二十    目录的相关操作

    cd:切换目录

    pwd:显示当前目录

    mkdir:新建一个新的目录

    rmdir:删除一个空的目录


    . 代表此层目录

    .. 代表上一层目录

    - 代表前一个工作目录

    ~ 代表“目前用户身份”所在的主文件夹

    ~accout 代表accout这个用户的主文件夹


    文件默认权限:umask

    文件隐藏属性:chattr    lsattr


    知识二十一 

    Linux系统中,标准输入的文件结束符是控制字符Ctrl-D。

  • 相关阅读:
    移动端跨平台方案对比:React Native、weex、Flutter
    js json处理 双引号
    jquery 发get post请求
    librtmp编译for android and ios 不要openssl
    mysql reset password重置密码
    pdf ppt word office转图片 教学白板
    使用阻塞队列实现生产者-消费者模型
    ThreadPoolExecutor线程池的分析和使用
    HashMap HashTable和ConcurrentHashMap的区别
    HTTP协议GET和POST请求的区别
  • 原文地址:https://www.cnblogs.com/fengty90/p/3768879.html
Copyright © 2020-2023  润新知