zoukankan      html  css  js  c++  java
  • linux笔记4(压缩、bash、系统监视、进程、用户管理)

    压缩

    gzip

    [root@redhat root]# gzip test1.txt    //压缩

     

    gunzip

    [root@redhat root]# gunzip test1.txt.gz    //解压

    [root@redhat root]# gzip -d test1.txt.gz    //解压

     

    [root@redhat root]# zcat test1.txt.gz        //直接查看gz文件

    十月 2011

    1

    1

    02 3 4 5 6 7 8

    09 10 11 12 13 14 15

    09 10 11 12 13 14 15

    16 17 18 19 20 21 22

    compress, uncompress

    unix上一种较老的压缩工具。

     

    bzip2

    [root@redhat root]# bzip2 test1.txt    //压缩

     

    bunzip2

    [root@redhat root]# bunzip2 test1.txt.bz2        //解压

    [root@redhat root]# bzip2 -d test1.txt.bz2    //解压

     

    tar

    [luowei@redhat luowei]$ tar -cvf test.tar test    //test目录打包成test.tar

    [luowei@redhat luowei]$ tar cvf aaa.tar allout test.tar        //allouttest.tar文件打包到aaa.tar文件中

    [luowei@redhat luowei]$ tar xvf test.tar        //解包

    [luowei@redhat luowei]$ tar tf test.tar        //查看test.tar包文件中的内容

    [luowei@redhat luowei]$ tar cvf bbb.tar stdout -C /home/luowei/test    stdout打包成bbb.tar并存放到 /home/luowei/test目录下

     

    [root@redhat root]# tar zcvf test.tar.gz test    //test目录打包,并添加到压缩文件

    [root@redhat root]# tar zxvf test.tar.gz        //对压缩文件解压并解包

     

    [root@redhat root]# tar jcvf test.tar.bz2 test    //test目录打包并压缩成bz2文件

    [root@redhat root]# tar jxvf test.tar.bz2        //对打包压缩后的bz2解压并解包

     

    dump

    [root@redhat root]# dump -0 -f /tmp/dump1 /root/test    //test目录备份到dump1文件

    [root@redhat /]# dump -0u -f /tmp/bootdump /boot        //将顶层分区boot备份到bootdump文件

     

    [root@redhat /]# cat /etc/dumpdates        //查看到分区的备份记录

    [root@redhat root]# dump -0 -f /tmp/test2dump test2.txt        //备份文件test2.txt

     

    [root@redhat root]# restore -tf /tmp/test2dump    //查看备份文件的内容

    [root@redhat root]# restore -rf /tmp/dump1    //dump1还原到当前文件夹下

     

    bash

    shell

    shell:命令行解释器,是用户与系统沟通时的媒介。在unix系统中有各种shell,linuxbash为默认shell。系统可以使用的shell记录在 /etc/shells中。

    如:

    [root@redhat root]# cat /etc/shells

    /bin/sh

    /bin/bash

    /sbin/nologin

    /bin/bash2

    /bin/ash

    /bin/bsh

    /bin/tcsh

    /bin/csh

    [root@redhat root]# a=luowei    //设置变量a的值为luowei

    [root@redhat root]# echo $a    //显示a变量的值

    luowei

    [root@redhat root]# echo ${a}    //显示a变量的值

    luowei

    [root@redhat root]# a=$a123    //这样不能把a赋成luowei123

    [root@redhat root]# echo $a

     

    [root@redhat root]# a=luowei

    [root@redhat root]# a=${a}123    //这样可以把a赋成luowei123

    [root@redhat root]# echo $a

    luowei123

    [root@redhat root]# unset a    //删除a变量

     

    环境变量

    使用set可以查看本地变量和环境变量,如:

    [root@redhat root]# set    //查看本地变量与环境变量

    [root@redhat root]# env    //查看环境变量

    预定义环境变量

    系统通过预定义的环境变量来定义shell环境,用户可以用setenv查询当前的环境变量。

    常用的预定义环境变量:

    HOME:当前用户的主目录

    PATH:当前用户的可执行文件搜索路径

    LANG:程序应该使用的默认语言

    PS1:行提示符

    如:

    [root@redhat /]# cd $home        //进入到家目录

    [root@redhat root]# LANG=en    //更改在英文语系

    [root@redhat root]# echo $PS1    //显示PS1中的值

    [\u@\h \W]\$

    \u:显示当前用户的名称

    \h:仅列出主机名的第一个名字

    \W:显示当前工作目录的最后个目录名称

    [root@redhat root]# basename /etc/X11        //截取目录的最后一个目录名

    [root@redhat root]# PS1='[\u@\H \w \A \#]\$'        //设置PS1

    [root@redhat ~ 16:44 32]#

    \H:显示完整的主机名

    \w:显示当前完整工作路径,家目录用~表示

    \A:显示当前时间

    \#:显示当前是第几条命令

    \$:显示提示符

    [root@redhat root]# export a        //a变量转换成环境变量

     

    History

    History:可以查询用户以前的过往操作

    如:

    [root@redhat root]# history    //列出用过的命令

    [root@redhat root]# history 10        //列出最后使用过的10条指令

    内存中记录的过往指令数由环境变量HISTSIZE而定。History表存储在内存中,在用户logout时会记录用户主目录下的.bash_history文件中。在下次login时载入。 .bash_history中的指令由环境变量中的HISTFILESIZE而定。

    如:

    [root@redhat root]# echo $HISTSIZE

    1000

    [root@redhat root]# echo $HISTFILESIZE

    1000

    [root@redhat root]# history –w        //将历史指令强制写入.bash_history文件中

     

    调用过往指令

    使用 来调用过往指令:如

    !!:重复执行上一条指令

    !a:重复执行上一条以a为首的的指令

    !number:重复执行上一条在history表中记录号码为number的指令

    !-number:重复执行前第number条指令

    可以用<ctrl+r>来在history表中查询过往指令

    例:

    [root@redhat root]# !e        //执行最近的以 e 开头的指令

    [root@redhat root]# !$        //截取上一条指令的最后一个参数

    127.0.0.1

    -bash: 127.0.0.1: command not found

    [root@redhat root]# ping !$    //直接ping 127.0.0.1,因为 !$ 截取到的是127.0.0.1

    ping 127.0.0.1

    PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

     

    Alias(别名)

    例:

    [root@redhat root]# alias        //列出系统中目前存在的别名

    alias cp='cp -i'

    alias l.='ls -d .* --color=tty'

    alias ll='ls -l --color=tty'

    alias ls='ls --color=tty'

    alias mc='. /usr/share/mc/bin/mc-wrapper.sh'

    alias mv='mv -i'

    alias rm='rm -i'

    alias vi='vim'

    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

    [root@redhat root]# alias a='ls -al'        //设置 a ls –al 的别名

    [root@redhat root]# unalias a        //删除a 这条别名

     

    命令行表达式

    命令行输出——" "

    将一串字符当成一个字符串对待,如果字符串中包含特殊含义的字符(/,`,$,!),则转义。

    命令行输出——' '

    将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,不转义。

    执行引用符——` `

    引用命令的执行结果

    例:

    [root@redhat root]# echo "$PWD"

    /root

    [root@redhat root]# echo '$PWD'

    $PWD

    [root@redhat root]# ls -l `PWD`    //列出当前目录下的详细信息

    数学运算——$[]

    在中括号内的表达式会被数学计算

    逸脱符——\

    用于取消命令行中字符的特殊含义

    用于表示一行未结束

    例:

    [root@redhat root]# echo $[1+4]

    5

    [root@redhat root]# echo \$[1+4]

    $[1+4]

    [root@redhat root]# mkdir a\ b        //建立一个名为"a b"的目录,\取消了空格的间隔作用

    [root@redhat root]# ls \        // \表示一行未结束

    > /home

    luowei test1

    [root@redhat root]#

     

    命令行结束符——;

    用于在一行内分隔几个独立命令,表示一行已结束,作用相当于回车键。

    shell激活——()

    在小括号内的命令行表示激活一个子shell后在子shell中运行。

    [root@redhat root]# ls;pwd;ls –a        //依次分别执行这三条指令

    [root@redhat root]# echo $HOME

    /root

    [root@redhat root]# HOME=/usr

    [root@redhat root]# echo $HOME

    /usr

    [root@redhat root]# HOME=/root

    [root@redhat root]# (HOME=/usr)        //表示这个HOME=/usr 在子shell中运行

    [root@redhat root]# echo $HOME

    /root

    [root@redhat root]#

     

    逻辑运算符

    &&:当前一条指令执行成功时再执行后一条指令

    ||:当前一条指令执行失败时再执行后一条指令

    例:

    [root@redhat root]# ls /home && touch /home/test1    //如果存在/home则建立/home/test1

    [root@redhat root]# ls /root/test1 || mkdir /root/test1        //如果不存在/root/test1,则建立 /root/test1目录

    [root@redhat root]# ls /root/test && echo "exist" || echo "no exist"

    ls: /root/test: 没有那个文件或目录

    no exist

    [root@redhat root]#

     

    定制登录shell

    Bash在用户登录时从四个文件中读取环境,设定:

    全局设置文件:/etc/profile ,    /etc/bashrc

    用户设置文件:~/.bashrc    ,    ~/.bash_profile

    其他shell设定文件

    ~/.bash_logout:在用户logout的时候自动执行。

    ~/.bash_history:用户login时自动读取其内容并加载到内存history记录中,logout时将内存history记录写入。

    /etc/profile.d/*.sh:/etc/profile中被执行,其中的环境设定,也会被全局引用。

     

    常用快捷键

    Ctrl+d:输入已结束。在shell下相当于一个exit

    Ctrl+c:键盘中断请求。

    Ctrl+s & ctrl+q:暂停/恢复屏幕输出。

    Ctrl+l:清屏,相当于clear

    Tab:自动补完命令行与文件名。

    Tab键双击可以列出所有可能匹配的选择。

    例:

    [root@redhat ~ 20:22 35]#cat > test2.txt

    cat > test2.txt

    hello ,i'm luowei.

    welcome to linux's world!        //ctrl+d结束输入

    [root@redhat ~ 20:23 36]#cat test2.txt

    cat > test2.txt

    hello ,i'm luowei.

    welcome to linux's world!

    [root@redhat ~ 20:24 37]#

     

    系统监视

    了解系统状况

    uname:显示系统信息

    hostname:显示主机名

    last:列出最近的用户登录

    lastlog:列出每一个用户的最近登录情况

    free:显示内存使用状况

    vmstat:详细列出内存使用状况

    top:系统监视器

    例:

    [root@redhat root]# top -d 3    //top默认是5秒刷新一次,这设置成3秒刷新一次

    [root@redhat root]# top -b -n 2 > top.txt        //top刷新两次的结果存到top.txt

    [root@redhat root]# cat top.txt

     

    进程

    系统通过进程来完成工作,每个进程都有一个独立的进程号,系统通过调用进程号来调度操控进程。系统的原始的原始进程是initinitPID总是1。一个进程可以产生另一个进程,除了init以外,所有的进程都有父进程。

    例:

    [root@redhat root]# ps –l        //列出与ps进程相关相关的进程

    F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

    4 S 0 2311 2309 0 75 0 - 1384 wait4 pts/0 00:00:00 bash

    0 R 0 2408 2311 0 80 0 - 781 - pts/0 00:00:00 ps

    [root@redhat root]# ps aux        //查看所有有效进程

    [root@redhat root]# pstree –a        //以树状结构显示所有进程

    [root@redhat root]# pstree –aup    //以树状结构显示所有进程,并显示所属用户和PID

    控制进程

    Kill,语法:kill [-signal] PID ,向进程传送一个特定的讯号,默认为15,列出所有可以由kill传递的讯号。

    [root@redhat root]# kill –l        //列出所有可以由kill –l 传递的讯号

    [root@redhat root]# ps -ef|grep "top"        //筛选出所有含有top的指令

    [root@redhat root]# kill -9 4634        //删除一个进程号为4634的进程

    使用nicerenice改变进程的优先级。

    [root@redhat root]# renice 10 4709        //4709号进程的优先级改为4709

    [root@redhat root]# ps -l | grep top        //显示top进程的详细信息

    第二种修改进程优先级的方法,直接打开top命令,在top界面内直接敲入 R ,然后直接输入进程号,再输入优先级的值。

    将进程丢入后台运行

    Command & :将一个进程直接丢入后台运行。

    nohup command &:将一个进程直接丢入后台运行,而且在该控制台退出后,进程仍不挂断。

    Ctrl + z :将一个正在运行的前台进程暂停,并丢入后台。

    例:

    [root@redhat root]# top &        //top进程放到后台执行

    [1] 2405

    [root@redhat root]# vi top.txt

    CPU0 states: 0.0% user 0.1% system 0.0% nice 0.0% iowait 99.0% idle

    CPU1 states: 0.0% user 0.0% system 0.0% nice 0.0% iowait 100.0% idle

    Mem: 254664k av, 59076k used, 195588k free, 0k shrd, 22052k buff

    48112k actv, 172k in_d, 224k in_c

    Swap: 522104k av, 0k used, 522104k free 20612k cached

     

    PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND

    1 root 15 0 472 472 420 S 0.0 0.1 0:04 0 init

    2 root RT 0 0 0 0 SW 0.0 0.0 0:00 0 migration/0

    ………………                    //按下ctrl+z

    [2]+ Stopped vim top.txt

    [root@redhat root]#

     

    工作

    jobs:列出系统当前的后台进程

    fg:将后台进程拉回前台

    bg:激活后台暂停的进程

    例:

    [root@redhat root]# jobs –l    //查看后台作业

    [1]- 2405 Stopped (tty output) top        //作业的状态为Stopped

    [2]+ 2411 Stopped vim top.txt

    [root@redhat root]# fg %1        //将后台的1号作业,放到前台来执行

    [root@redhat root]# bg %1        //1号作业,放到后台执行

    [1]+ top &

    [root@redhat root]# bg %1 ;jobs

    [1]+ top &

    [2]+ Stopped vim top.txt

    [1]- Running top &

    /proc目录

    /proc目录是一个虚拟的文件系统,包含了来自正在运行着的核心的信息。

    用户可以通过cat /proc/下的文件来获得系统的信息。

    这些信息包括系统硬件、网络设置、内存使用,及其他一引些东西。

    /proc/sys目录下的文件,允许系统管理员更动,这些变动会直接影响当前核心。

    例:

    [root@redhat root]# ls -l /proc/        //查看/proc/目录下的文件

    [root@redhat root]# cat /proc/cpuinfo        //查看cpu的信息

    [root@redhat root]# echo "" > /proc/sys/net/ipv4/icmp_echo_ignore_all        //忽略所有ping消息

    系统日志存放在 /var/log 目录下

    常用的系统日志:

    /var/log/dmesg 核心启动日志

    /var/log/messages 系统报错日志

    /var/log/maillog 邮件系统日志

    例:

    [root@redhat root]# tail -f /var/log/messages    //查看最近的系统日志

    [root@redhat root]# cat /var/log/maillog        //查看邮件服务信息

    /var/log/xferlog    //FTP服务用日志

    /var/log/secure        //安全信息,系统登录与网络连接的信息

    /var/log/wtmp        //登录记录

    例:

    [root@redhat root]# last        //显示最近登录的用户

     

    检查用户身份

    who:查询当前登录的用户

    groups:查询用户所属的组

    id:显示当前用户信息

    finger:查询用户信息

    例:

    [root@redhat root]# groups        //显示当前系统存在的用户组

    [root@redhat root]# id root    //显示root用户的详细信息

    [root@redhat root]# finger luowei        //显示luowei这个用户的详细信息

    [root@redhat root]# whoami        //显示当前的用户

    [root@redhat root]# w            //显示当前用户的详细信息

     

    添加用户

    用指令添加命令:

    useradd <username>

    passwd <password>

    系统添加用户的标准步骤:

    1. 编辑 /etc/password /etc/group
    2. 创建用户主目录
    3. /etc/skel拷贝文件与目录
    4. 让新用户获得其主目录与文件的拥有权限
    5. 给新用户一个密码

     

    更改/删除用户

    1.更改用户的资料可以通过:

    redhat-config-userskusers之类的图形界面工具来完成,在字符界面下可以使用usermod指令来更改。

    2.系统管理者可以用userdel指令来删除已存在的用户

    参数-r可以帮助系统将一个用户的目录等一并删除。

    例:

    [root@redhat root]# usermod -c "this is luowei's username" luowei    //修改luowei的全名

    [root@redhat root]# finger luowei

    Login: luowei Name: this is luowei's username

    Directory: /home/luowei Shell: /bin/bash

    Last login Mon Oct 24 17:32 (CST) on :0

    No mail.

    No Plan.

    [root@redhat home]# mkdir tst1

    [root@redhat home]# usermod -d /home/tst1 test1        //test1的家目录改到tst1

    [root@redhat home]# cd ~test1        //切换到test1的家目录

    [root@redhat tst1]# cd ..        //切换上层目录

    [root@redhat home]# chown test1.test tst1        //修改tst1目录的属主

    [root@redhat home]# chmod 700 tst1        //修改tst1的权限

    [root@redhat tst1]# usermod -e "2012-01-01" test1    //设置test1用户的过期时间为2012-01-01

    [root@redhat tst1]# id test1

    uid=501(test1) gid=501(test) groups=501(test)

    [root@redhat tst1]# usermod -G root test1        //test1加入到root用户组

    [root@redhat tst1]# id test1

    uid=501(test1) gid=501(test) groups=501(test),0(root)

    [root@redhat tst1]# usermod -g root test1        //修改test1gid改成root组的

    [root@redhat tst1]# id test1

    uid=501(test1) gid=0(root) groups=0(root)

    [root@redhat tst1]# usermod -g 501 test1        //test1gid改成501

    [root@redhat tst1]# id test1

    uid=501(test1) gid=501(test) groups=501(test),0(root)

    [root@redhat tst1]# usermod -s /bin/csh test1    //test1的默认shell改为csh

    [root@redhat tst1]# usermod -u 504 test1        //修改test1uid

    [root@redhat tst1]# usermod -p 1234 test1        //test1的密码设置为1234

    [root@redhat tst1]# usermod -L test1        //锁定test1用户

    [root@redhat tst1]# passwd -S test1        //查看test1用户的状态

    Password locked.

    [root@redhat tst1]# useradd jack            //添加jack用户

    [root@redhat tst1]# ls /home

    jack luowei test1 tst1

    [root@redhat tst1]# userdel jack            //删除jack用户

    [root@redhat tst1]# id jack

    id: jack: No such user

    [root@redhat tst1]# ls /home

    jack luowei test1 tst1

    [root@redhat tst1]# useradd tom

    [root@redhat tst1]# ls /home

    jack luowei test1 tom tst1

    [root@redhat tst1]# userdel -r tom        //删除tom用户及以tom相关的其它信息

    [root@redhat tst1]# ls /home

    jack luowei test1 tst1

    [root@redhat tst1]#

    /etc/password文件

    password文件中记录的是用户的登录信息,每一行代表一个用户。

    例:

    [root@redhat root]# vi /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    bin:x:1:1:bin:/bin:/sbin/nologin

    …………

    luowei:x:500:500:this is luowei's username:/home/luowei:/bin/bash

    test1:x:504:501::/home/tst1:/bin/csh

    tom:x:505:505::/home/tom:/bin/bash

    [root@redhat root]# cat /etc/passwd|wc –l        //显示passwd文件中共有多少行

    39

    [root@redhat root]#

    ----------------------------------------

    password文件详细信息(分别表示)

    login name:登录用户名

    passwd:密码

    uid:用户身份编号

    gid:登录默认所在组编号

    full name:用户全名或注释

    home directory:用户主目录

    shell:用户默认使用shell

    ----------------------------------------

    login.defs中的create home选项决定系统在建立用户的时候是否同时创建其主目录,系统在建立用户主目录时,会将/etc/skel下的内容复制到新目录下,最后系统会使该目录与其下的文件归属于新用户。

    ----------------------------------------

    Red Hat Linux默认将用户密码存储在/etc/shadow文件中,passwd文件默认权限为644shadow文件默认权限为400shadow文件支持密码过期设定等功能,shadow文件中每一行表示一个系统用户的密码记录,用 :号分隔。用户可以通过authconfig来设定是否使用shadow文件及md5加密。

    shadow文件的每一行中的每一项具体来说:

    登录用户名

    用户密码(一般经md5加密)

    197011日起到密码上一次被更改的时间

    密码再过几天可以被变更(0表示随时可被变更)

    密码再过几天必须被变更(999999表示永不过期)

    密码过期前几天系统提醒用户(默认为一周)

    密码过期几天后账号会被取消

    197011日算起,多少天后帐号失效

    ---------------------------------

    [root@redhat root]# groupadd gp1         //添加群组

    [root@redhat root]# groupdel gp1        //删除群组

    [root@redhat root]# groupmod -n jack tom        //将名称为tomr的群组重命名为jack

    [root@redhat root]# cat /etc/group    //查看所有的群组

    [root@redhat root]# groupmod -n tom jack         //将名称改回来

    [root@redhat root]# gpasswd tom        //tom群组设置密码

    Changing the password for group tom

    New Password:

    Re-enter new password:

    [root@redhat root]# useradd jack        //添加一个jack用户

    [root@redhat root]# passwd jack

    Changing password for user jack.

    New password:

    BAD PASSWORD: it is too short

    Retype new password:

    passwd: all authentication tokens updated successfully.

    [root@redhat root]# groups jack        //添加jack群组

    jack : jack

    [root@redhat root]# gpasswd -a jack tom        //jack添加到tom群组中

    Adding user jack to group tom

    [root@redhat root]# vi /etc/group

    …………

    luowei:x:500:

    test:x:501:jack        //手动添加jacktest群组

    tom:x:505:jack

    jack:x:506:jack

    "/etc/group" 48L, 659C written

    [root@redhat root]# cat /etc/passwd

    …………

    luowei:x:500:500:this is luowei's username:/home/luowei:/bin/bash

    test1:x:504:501::/home/tst1:/bin/csh

    tom:x:505:505::/home/tom:/bin/bash

    jack:x:506:501::/home/jack:/bin/bash    后边一个501表示初始群组gid

    [root@redhat root]# su - jack

    [jack@redhat home]$ groups        //列出当前用户的群组

    test tom jack

    [jack@redhat home]$ cd

    [jack@redhat jack]$ touch test

    [jack@redhat jack]$ ls -l

    total 0

    -rw-r--r-- 1 jack test 0 Nov 5 17:20 test

    [jack@redhat jack]$ newgrp jack        //修改当前用户的有效群组

    [jack@redhat jack]$ groups

    jack test tom

    [jack@redhat jack]$ touch test1

    [jack@redhat jack]$ ls -l

    total 0

    -rw-r--r-- 1 jack test 0 Nov 5 17:20 test

    -rw-rw-r-- 1 jack jack 0 Nov 5 17:23 test1

    [jack@redhat jack]$ su -

    Password:

    [root@redhat root]# useradd -u 600 -g test -G jack jim    //建立jim用户,并设置其uid600,初始群组为test,并且还将其加入jack群组中。

    [root@redhat root]# useradd lucy -s /bin/csh        //创建lucy并将它的默认shell改为csh

    [root@redhat root]# useradd -M test2        //创建test2目录但不创建它的家目录

    [root@redhat root]# ls /home

    jack jim lucy luowei test1 tom tst1

    [root@redhat /]# useradd test3 -d /test3        //创建test3并设置它的家目录为 /test3

    [root@redhat /]# finger test3

    Login: test3 Name: (null)

    Directory: /test3 Shell: /bin/bash

    Never logged in.

    [root@redhat root]# useradd -r lucy_sys        //创建一个名为lucy_sys的系统用户

    [root@redhat root]# cat /etc/passwd

    …………

    luowei:x:500:500:this is luowei's username:/home/luowei:/bin/bash

    test1:x:504:501::/home/tst1:/bin/csh

    tom:x:505:505::/home/tom:/bin/bash

    jack:x:506:501::/home/jack:/bin/bash

    jim:x:600:501::/home/jim:/bin/bash

    test2:x:602:602::/home/test2:/bin/bash

    test3:x:603:603::/test3:/bin/bash

    lucy_sys:x:100:101::/home/lucy_sys:/bin/bash

    [root@redhat root]# groupadd -r lucygp_sys        //创建系统群组

  • 相关阅读:
    【BUG】android.content.res.Resources$NotFoundException: File res/drawable-xxhdpi/toolbar_line.png from
    关于 折半查找 while 条件 &lt; , &lt;=
    Unity3D——加入剑痕效果(PocketRPG Trail插件)
    用外部物理路由器时使用Neutron dhcp-agent提供的metadata服务(by quqi99)
    项目经理之项目经理注意事项
    让你提前认识软件开发(37):研发流程初探
    1.RunLoop是什么?
    列表类型内置方法
    字符串类型内置方法
    数字类型内置方法
  • 原文地址:https://www.cnblogs.com/luowei010101/p/2245132.html
Copyright © 2011-2022 走看看