zoukankan      html  css  js  c++  java
  • 20210206-1 Linux基础与应用(上)

     

    一、安装与配置

    千万不要点击 “我已复制该虚拟机”,会引起MAC地址的冲突,因为每一台linux服务器都有一个MAC地址,如果复制,MAC地址也会被拷贝

    可以通过Xshell 进行远程连接

     

    node1 node2 node3 在以后做 大数据开发中可以作为三个hadoop节点

    现在需要打开 node3 后续会安装 docker应用

    为node3设置ip,选择网卡时,可以直接按 Tab 键,自动补全存在的网卡

    [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33

    BOOTPROTO=dhcp    意思是计算机启动时,分配ip 是动态分配,dhcp指动态分配

    TYPE=Ethernet

    PROXY_METHOD=none

    BROWSER_ONLY=no

    # BOOTPROTO=dhcp

    BOOTPROTO=static

    DEFROUTE=yes

    IPV4_FAILURE_FATAL=no

    IPV6INIT=yes

    IPV6_AUTOCONF=yes

    IPV6_DEFROUTE=yes

    IPV6_FAILURE_FATAL=no

    IPV6_ADDR_GEN_MODE=stable-privacy

    NAME=ens33

    UUID=7bfe3a1c-3e6c-476c-bf7e-4be727e6602c

    DEVICE=ens33

    ONBOOT=yes

    DNS1=192.168.56.2

    IPADDR=192.168.56.130

    GATEWAY=192.168.56.2

    Ip地址每台不同,DNS1和Gateway node1 node2 node3和CentOS 6这些台都是相同的

     

    ip地址改完后,需要输入以下命令

    [root@localhost ~]# service network restart

    就会把修改的配置重新加载,才能成功

     

    如果想修改主机名

    [root@localhost ~]# vi /etc/sysconfig/network

    # Created by anaconda

    NETWORKING=yes

    HOSTNAME=node3

    [root@localhost ~]# vi /etc/hosts

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

    :1         localhost localhost.localdomain localhost6 localhost6.localdomain6

    192.168.56.130 node3

    这样以后就可以不用通过ip访问,而是可以直接通过主机名访问了

     

    安装操作系统

    ● 设置IP:

    ● VM:编辑>虚拟网络编辑器

    ● vi/etc/sysconfig/network-scripts/ifcfg-eth0

    ● 删除UUID和MAC地址

    ● ONBOOT=yes

    ● BOOTPROTO=static

    ● IPADDR=172.16.233.131

    ● NETMASK-255.255.255.0

    ● GATEWAY=172.16.233.2

    ● DNS1=172.16.233.2

    ● rm-fr/etc/udev/rules.d/70-persistent-net.rules

    拷贝虚拟机,MAC地址会改变,刚刚选择已移动,所以vmware自动解决了这个问题,如果是 老版本的vmware或者不小心选择我已复制,则 需要删除规则,使它失效,目前是没有必要用 rm-fr/etc/udev/rules.d/70-persistent-net.rules 处理的

     

    ● VM:

    ● 默认维护,每一台克隆,或新建的虚拟机,MAC地址不重复

     

    ● 如果虚拟机保留/etc/udev/rules.d/70-persistent-net.rrules这个文件,在通过该虚拟机克隆的时候:

    ● 1.文件被带到新的虚拟机中

    ● 2.vm变更了新的虚拟机的mac地址

    ● SO:新机器不能使用eth0接口

    ● 你配置的/etc/sysconfig/network-scripts/ifcfg-eth0就不能应用

     

    ● 关闭防火墙&Selinux

    ● service iptables stop

    ● chkconfig iptables off

     

    ● vi/etc/selinux/config

    ● SELINUX=disabled

    ● 关机

    ● 拍摄快照

    ● 注意:日后,虚拟机一定要用快照克隆

     

    二、Linux介绍

    Linux概况

    Linux简介

    什么是Linux

    简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品

     

    内核

    库:.so共享对象,windows:dll动态链接库,应用程序

    Unix是需要付费的

    linux命令分为内部命令和外部命令 ,内部命令都在kernel内核中

     

    Linux核心

    ● LINUX的内核:内核是系统的核心,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。

    程序启动时,首先主板有一个Bios系统,上面有一小块内存,会把kernel加载进去,kernel在通过各种目录调用linux的功能,比如bash人机交互界面等;把操作系统需要的文件一个又一个的加载到内存里,成为我们的操作系统,操作系统也是一个程序,只是这些程序全都运行在内存里

    Win10需要更多的内存运行,所以比win7更吃内存

    ● LINUX SHELL:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口

    ● LINUX文件系统:Linux文件系统是文件存放在磁盘等存储设备上的组织方法。Linux能支持多种目前浒的文件系统,如EXT2、EXT3、FAT、VFAT、ISO9660、NFS、SMB等。

    ● LINUX应用系统:标准的Linux系统都有一整套称为应用程序的程序集,包括文本编辑器、编程语言、XWindow、办公套件、Internet工具、数据库等。

     

    三、Linux简单命令

    简单命令

    ● type:命令类型

    ● 外部命令 & 内部命令

    [root@localhost ~]# type ifconfig

    ifconfig 是 /usr/sbin/ifconfig

    [root@localhost ~]# cd /sbin

    [root@localhost sbin]# ll -l | grep ifconfig

    -rwxr-xr-x. 1 root root       82000 8月   3 2017 ifconfig

    -rwxr-xr-x. 1 root root        3104 6月  10 2014 pifconfig

    type+命令 后,如果返回一个路径,那么这个命令就是外部命令,是通过调用文件系统中的命令启动的

    内部命令都是在linux内核里的,比如

    [root@localhost sbin]# type echo

    echo 是 shell 内嵌

    ● help:内部命令帮助

    ● help:内部命令清单,附带语法格式,描述

    ● help  具体内部命令

    通常用于内部命令

    ● man:帮助手册manual

    ● yum install man man-pages -y

    通常用于外部命令,man也是一个操作文档软件,可以通过 yum install man的方式安装

    用type 区分外部命令和内部命令

    ● whereis:定位命令位置,定位外包命令。

    [root@localhost ~]# whereis ifconfig

    ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

    [root@localhost ~]# whereis bash

    bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz

    bash是一个shell程序,一个bash文件可以读取标准输入流,或者从脚本文件进行读取

    ● file:文件类型

    [root@localhost ~]# file /sbin/ifconfig

    /sbin/ifconfig: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=dff548da1b4ad9ae2afe44c9ee33c2365a7c5f8f, stripped

    ELF相当于windows中的可执行文件

    bash可以理解为脚本解释器,相当于linux的脚本解释器,可以把命令写到文件里,通过bash执行

    ● echo:打印到标准输出

    [root@localhost ~]# echo "hello"

    hello

    ● $PATH:环境变量:路径

    环境变量是系统中的整体变量,可以理解为全局变量,所有程序,包括shell程序

    这里是linux的全局变量,所以程序只要进入linux系统,都能够定义它

    [root@localhost ~]# $PATH

    -bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin: 没有那个文件或目录

    sbin在全局变量中,所以即使不在当前文件夹,ifconfig也可以执行

    就是通过环境变量找到文件夹的

    linux系统以冒号进行隔离

    [root@localhost ~]# echo $aaa

    [root@localhost ~]# aaa=66

    [root@localhost ~]# echo $aaa

    66

    这个叫shell变量,输入之后才可以有,但是环境变量相当于java中的全局变量

    ● $LANG

    [root@localhost ~]# echo $LANG

    zh_CN.UTF-8

    $LANG 也是一个环境变量,表示系统是英(中)文的,同时支持utf-8

     

    linux内核通过shell程序(壳)调用bash解释器,bash相当于脚本解释器,会解释用户输入的命令,执行后会在path中给定的目录从左向右进行寻找

    外部程序ifconfig能够执行起来就是通过bash解释器执行的程序

    空白符用于切割不同的命令

     

    [root@localhost ~]# type yum

    yum 已被哈希 (/usr/bin/yum)

    所以yum 也是一个外部命令,作用是安装

     

    [root@localhost ~]# file /usr/bin/yum

    /usr/bin/yum: Python script, ASCII text executable

    可以看出这是一段python的脚本,进入目录查看一下

     

    [root@localhost ~]# vi /usr/bin/yum

    #!/usr/bin/python 注入了解释器,#!/,代表注入解释器,以下的程序都用解释器执行

    import sys

    try:

        import yum

    except ImportError:

        print >> sys.stderr, """

    如果是bash解释器执行,同样的是 #!/

     

    [root@localhost ~]# yum install man

    实际上是调用python文件/usr/bin/yum脚本去指定做相应操作

     

    ● type yum

    ● file /usr/bin/yum

    ● /usr/bin/yum:a /usr/bin/python script text executable

    ● vi /usr/bin/yum

    ● #!/usr/bin/python

    ● ps -fe进程列表

    ● type ps

    ● man ps

    ps就相当于任务管理器,PID就相当于windows中的进程

    [root@localhost ~]# ps

      PID TTY       TIME CMD

     57179 pts/2    00:00:00 bash

     58836 pts/2    00:00:00 ps

    如果想查看更多的信息

    [root@localhost ~]# ps -ef

    UID         PID   PPID  C STIME TTY          TIME CMD

    root          1      0  0 08:45 ?        00:00:08 /usr/lib/systemd/systemd --switch

    root          2      0  0 08:45 ?        00:00:00 [kthreadd]

    ……

    ……

     

    [root@localhost ~]# type ps

    ps 已被哈希 (/usr/bin/ps)

    ps也是一个外部命令,所以可以输入man ps查看

     

    ● echo

    ● type echo

    ● help echo

    ● echo hello

     

    变量

    ● a=3

    ● echo $a

    [root@localhost ~]# a=3

    [root@localhost ~]# echo $a

    3

    [root@localhost ~]# echo $a=3

    3=3

    ● b=(1,2,3)

    ● echo $b

    [root@localhost ~]# b=(1,2,3)

    [root@localhost ~]# echo $b

    1,2,3

     

    ● b=(1 2 3)

    ● echo $b

    ● echo ${b[2]}

    [root@localhost ~]# b=(1 2 3)

    [root@localhost ~]# echo $b

    1

    [root@localhost ~]# echo $b[2]

    1[2]

    [root@localhost ~]# echo ${b[2]}

    3

    因为linux默认识别空格为分隔符,逗号是不行的。所以 b=(1 2 3)相当于输入了三个数,就是一个数组了,echo $b[2]的结果是1[2],相当于是把 1 和 [2]连接起来的,并不认为b[2]是一个数组,用大括号标注起来,相当于做一个转义,整个作为一个变量

    linux是从左到右,一个一个解释的

     

    ● echo hello$agod

    ● echo hello${a}god

    [root@localhost ~]# echo hello$agod

    hello

    [root@localhost ~]# echo $a

    3

    a有值,echo hello$agod 只打出了hello,因为把 agod整体当成了一个变量,但是agod是没有值得

    [root@localhost ~]# echo hello${a}god

    hello3god

    ${a}表示a是一个变量名传给$

     

    ● unset myurl

    如果给一个变量赋值后,想要取消掉,unset系统中就没有这个变量了,可以通过这种方式取消变量

    [root@localhost ~]# myurl=baidu

    [root@localhost ~]# echo $myurl

    baidu

    [root@localhost ~]# unset myurl

    [root@localhost ~]# echo $myurl

     

    [root@localhost ~]#

     

    ● echo $$ 当前shell的PID

    [root@localhost ~]# echo $$

    57179 → 这是一个 PID,当前shell的PID

    shell也是一个程序,shell连接kernel和应用程序

    既然是程序,就有一个自己的PID

    通过两个不同的shell,相当于 两个接入点访问,就会有两个PID

    ● ps -fe

    ● bash

    ● whereis bash

    ● /bin/bash

    ● shell脚本第一行的定义~!

    shell脚本第一行,#和!的意义就相当于使用bin/bash去实现

     

    ● PATH:windows。linux:环境变量

    ● 记录查询执行命令所在的路径

    ● 分割:

    ● hash -r清除缓存

    [root@localhost ~]# hash

    命中 命令

       3 /usr/bin/file

       6 /usr/bin/ps

       4 /usr/bin/whereis

       2 /usr/bin/yum

       1 /usr/bin/vi

       2 /usr/bin/man

    相当于把应用程序调到内存中

    ● shell:对于命令查找的方式,在PATH记录的目录中查找,缓存到内存hash中

    这样下次不用从linux系统中查找,直接在hash缓存中查找

     

    ● man

    ● 1:用户命令(/bin,/usr/bin,/usr/local/bin)

    ● 2:系统调用

    ● 3:库用户

    ● 4:特殊文件(设备文件)

    ● 5:文件格式(配置文件的语法)

    ● 6:游戏

    ● 7:杂项(Miscellaneous)

    ● 8:管理命令(/sbin,/usr/sbin,//usr/local/sbin)

    ● shell,bash:程序

    ● /etc/profile是bash的配置文件

    ● source/etc/profile   相当于加载了配置文件,把更改的东西加载到上面

     

    四、文件系统命令

    文件系统命令

    ● 文件权限:9位,每3位一组,3组权限(U,G,0)每一组:rwx(读,写,执行),r--

    U User G Group O Other

    [root@localhost ~]

    User是root 组也就是root组,Other是除了root以外的其他的任何用户

    [root@localhost etc]# ls -l

    总用量 1368

    drwxr-xr-x.  3 root root      101 2月   4 06:01 abrt

    -rw-r--r--.  1 root root       16 2月   4 06:12 adjtime

    -rw-r--r--.  1 root root     1518 6月   7 2013 aliases

    -rw-r--r--.  1 root root    12288 2月   4 06:27 aliases.db

    drwxr-xr-x.  2 root root       51 2月   4 06:02 alsa

    ……

    ……

    rw- 给当前用户 r-- 给group组 后面的r-- 是给其他用户的

    -rw-r--r--.  1 root root    数字 1 1 1 2 代表被引用的次数,被软(硬)连接的次数

    相当于一个文件建一个快捷方式

    1 后面的两个root分别代表所属的用户和所属组

    在往后是创建时间和文件名

     

    ● 文件硬链接的次数

    ● 文件的属主(owner)

    ● 文件的属组(group)

    ● 文件大小(size),单位是字节

    ● 时间戳(timestamp):最近一次被修改的时间

    ● 访问:access

    ● 修改:modify,文件内容发生了改变

    ● 改变:change,metadata,元数据

    ls 查询,前面是d的为目录,前面是 -的为文件

     

    ● Filesystem Hierarchy Standard(文件系统层次化标准)

    ● /boot:系统启动相关的文件,如内核、initrd,以及grub(bootloader)

    ● /dev:设备文件

    [root@node3 dev]# df -h

    文件系统                 容量  已用  可用 已用% 挂载点

    /dev/mapper/centos-root   17G  7.5G  9.5G   45% /

    ……

    /dev/sda1               1014M  157M  858M   16% /boot

    /dev/sr0                 4.2G  4.2G     0  100% /run/media/root/Cen

    /dev/mapper/centos-root /dev/sda1 可以理解为分区的概念

    设备文件就是指磁盘的设备文件

    ● /etc:配置文件

    系统启动时会调用一些配置文件

    ● /home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME

    除了root用户,root用户在root目录下;在home下可以创建多个用户

    每个用户的文件夹都是隔离的,不同的用户之间不能访问

    从root权限退到普通用户,不需要输入密码

    [root@node3 ~]# su wm01

    [wm01@node3 root]$ pwd

    /root

    [wm01@node3 root]$ cd ~

    [wm01@node3 ~]$ pwd

    /home/wm01

    [wm01@node3 ~]$ cd ..

    [wm01@node3 home]$ cd wm02

    bash: cd: wm02: 权限不够

    cd ~ 直接进入家目录,不同的用户是隔离开的

     

    ● /root:管理员的家目录;

    ● /lib:库文件

    ● /media:挂载点目录,移动设备

    ● /mnt:挂载点目录,额外的临时文件系统

    ● /opt:可选目录,第三方程序的安装目录

    比如nginx可以安装在这里

    ● /proc:伪文件系统,内核映射文件

    linux一切皆为文件,所以进程相关的文件都会在这里

    [root@node3 ~]# cd /proc/$$ 进入当前进程

    [root@node3 66448]# ls

    attr             cwd       map_files   oom_adj        schedstat  task

    autogroup        environ   maps        oom_score      sessionid  timers

    cgroup           fd        mountinfo   pagemap        smaps      wchan

    ……

    [root@node3 66448]# cd fd

    [root@node3 fd]# ls

    0  1  2  255

    0代表输入输出和错误

     

    ● /sys:伪文件系统,跟硬件设备相关的属性映射文件

    ● /tmp:临时文件,/var/tmp

    ● /var:可变化的文件     一般会把日志文件放在这里

    ● /bin:可执行文件,用户命令

    ● /sbin:管理命令

     

    ● df:显示磁盘使用情况

    [root@node3 ~]# df -h 显示disk的分配情况

    ● du:显示文件系统使用情况

    切换用户无需退出操作系统,可以用 su 进行切换,su代表switch user 切换用户

    [root@node3 var]# du -h

    h代表human,人类,就是human readable

    s代表summary,总结

    linux是多人共用的,磁盘越来越少的情况下,查看文件夹使用是否超量

    就可以用 du -sh ./* 对当前目录所有文件进行总结查找

    ./代表当前目录,*代表所有的

    [root@node3 var]# du -sh ./*

    0 ./account

    0 ./adm

    3.3M ./cache

    0 ./crash

    8.0K ./db

    0 ./empty

    ……

    [root@node3 ~]# du -sh

    4.2G .

    [root@node3 ~]# cd /var

    [root@node3 var]# du -sh

    111M .

    如果想查特定的文件夹,可以 du -sh /文件夹名

    [root@node3 var]# du -sh /root

    4.2G /root

     

    [root@node3 var]# type du

    du 已被哈希 (/usr/bin/du) 存在路径,所以 du 也是一个外部程序

    ● ls:显示目录

    ● cd:切换工作目录 Linux 的目录要加 / 直接跳是跳不过去的

    [root@node3 ~]# cd /

    [root@node3 /]# cd /etc/sysconfig/

    [root@node3 sysconfig]# cd ..

    [root@node3 etc]# cd - 如果不小心返回上层,可以用这种方式进入

    /etc/sysconfig

    [root@node3 sysconfig]# pwd

    /etc/sysconfig

     

    [root@node3 sysconfig]# cd ~    回到家目录,root回到root,其余用户回到home

    [root@node3 ~]# pwd

    /root

    [root@node3 ~]# cd /

    [root@node3 /]# pwd

    /

     

    ● pwd:显示当前工作目录

    ● mkdir:创建目录

    在当前目录,深度创建目录;./代表当前目录

    [root@node3 ~]# mkdir -p ./em/db/v8

    也可以水平创建目录,可以用变量的方式实现

    [root@node3 ~]# mkdir abc

    [root@node3 ~]# mkdir ./abc/{x,y,z}dir

    [root@node3 ~]# cd abc

    [root@node3 abc]# ls

    xdir  ydir  zdir

     

    ● rm:删除

    ● cp:拷贝

    ● mv:移动

    ● ln:链接

    ● stat:元数据

    ● touch

    ● mkdir:创建目录

    ● mkdir -p./a/b/c

    ● mkdir a/{1,2,3}dir

    ● rm:删除

    ● rm -f

    ● rm -rf /

    -rf r recursive f force

    -r 会出现交互式提示

    -rf 强制删除,不会出现交互式提示

    [root@localhost tmp]# rm profile

    rm:是否删除普通文件 "profile"?y

    ● cp:拷贝

    ● cp/etc/{profile,inittab} ./

    ● cp -r./a./new

    ● cp -l cp-s

    当前目录下的文件需要加 点. ./代表当前目录

    [root@localhost etc]# cp ./profile /tmp

    [root@localhost etc]# cd /tmp

    [root@localhost tmp]# ls

    profile

    ……

    如果拷贝目录,需要加 -r,有一个循环的意思,目录下面还有目录;拷贝目录不需要加 ./

    [root@localhost em]# cp -r nginx /tmp

    [root@localhost em]# cd /tmp

    [root@localhost tmp]# ls

    nginx

    ……

    ● mv:移动

    其实就是剪切的意思,移动经常有两个用途,改名或者移动到另一个文件夹

    现在给nginx 改名

    [root@localhost tmp]# mv nginx nginx1

    [root@localhost tmp]# ls

    nginx1

    ssh-4Bij5yBn3SJl

    ……

    把 nginx1 移动到别的目录

    [root@localhost tmp]# mv nginx1 /opt/em

    [root@localhost tmp]# cd /opt/em

    [root@localhost em]# ls

    em1  nginx  nginx1

    [root@localhost em]# rm -rf nginx1

    [root@localhost em]# ls

    em1  nginx

     

    ● ln:链接

    ● ln默认硬链接ln install.log wm.txt 就会生成 wm.txt文件

    ● ln -s 软链接 ln -s wm.txt bjwm.log

    前面的数字 272678 等,叫做索引号,可以理解为在磁盘上的位置

    数字相同可以 理解为两个引用变量指向同一个对象

    -rw-r--r--. 2   后面的数字2 是同一个索引号被引用的次数

     

    [root@localhost ~]# ll -li

    总用量 8

    33574978 -rw-------. 1 root root 1523 1月  25 15:15 anaconda-ks.cfg

    33574987 -rw-r--r--. 1 root root 1571 1月  25 15:24 initial-setup-ks.cfg

    ……

    [root@localhost ~]# ll -l

    总用量 8

    -rw-------. 1 root root 1523 1月  25 15:15 anaconda-ks.cfg

    -rw-r--r--. 1 root root 1571 1月  25 15:24 initial-setup-ks.cfg

    ……

    ll -li 可以把索引号显示出来

    硬链接后,改变一个文件的内容,另一个文件的内容也会跟着改变,类似于快捷方式

    不加参数项默认硬链接

    加上 -s 是软链接,执行链接的文件就相当于执行很深层的文件;不需要在同一目录下操作

     

    [root@localhost ~]# ln -s em.txt infmajem.log

    [root@localhost ~]# ll -l

    总用量 8

    -rw-------. 1 root root 1523 1月  25 15:15 anaconda-ks.cfg

    lrwxrwxrwx. 1 root root    6 2月   6 12:38 infmajem.log -> em.txt

    -rw-r--r--. 1 root root 1571 1月  25 15:24 initial-setup-ks.cfg

    ……

    硬链接各自是各自的,并没有谁指向谁,可以彼此理解为是一个变量,都指向统一的位置

    软连接存在一种依赖关系,两个文件的索引号不同,相当于新生成了一个值,相当于创建一个快捷方式,如果把源删掉,快捷方式也会不好使

    红色的意思是在报警找不到源,所以无法链接

     

    • 元数据

    元数据指描述文件或者数据的数据

    • stat

    stat用于描述 profile

    [root@localhost ~]# cd /etc

    [root@localhost etc]# stat profile

      文件:"profile"

      大小:1819       块:8          IO 块:4096   普通文件

    设备:fd00h/64768d Inode:16787062    硬链接:1

    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)

    环境:system_u:object_r:etc_t:s0

    最近访问:2021-02-06 04:14:17.982017594 +0800

    最近更改:2018-04-11 12:18:26.000000000 +0800

    最近改动:2021-01-25 15:06:21.110000857 +0800

    profile 是交互外壳启动时的配置文件,stat profile能够看到修改情况或者访问

    开发的时候一般不会给root权限,只有系统管理员有系统root权限

     

    |是管道相当于把文件通过管道传到另一个命令上,linux以空格切割命令

    一个输入流通过管道输入到另一个命令上面

    [root@localhost etc]# cat profile | more

     

    • touch

    可以创建文件

    [root@localhost em]# ls

    nginx

    [root@localhost em]# touch test

    [root@localhost em]# ls

    nginx  test

    touch后面可以跟路径,能够指定路径创建

    [root@localhost em]# touch /opt/shell/tst

     

     

  • 相关阅读:
    Python基础Day1—下
    Python基础Day1—上
    Asp.net +Jquery-uploadify多文件上传
    C#txt文件读写基本操作
    C#获取窗口,模拟按键操作
    百度搜索优化-如何使搜索结果显示图文
    纯CSS3实现超立体的3D图片侧翻倾斜效果
    Android http通信 HttpURLConnection
    Android Socket 知识点汇总
    Android http通信案例
  • 原文地址:https://www.cnblogs.com/azxsdcv/p/14381354.html
Copyright © 2011-2022 走看看