Linux系统操作笔记

Linux操作系统学习笔记

Linux操作系统的最基础知识

  • Linux的所有的内容都是以文件形式保存,包括硬件
  • Linux不靠扩展名来区分文件类型,虽然有扩展名,但只是为了让系统管理员更清晰的知道文件类型而已

  • 硬盘是挂载在/dev/目录下的

  • 主分区最多只有4个,扩展分区只有一个,主分区加扩展分区最多有4个,逻辑分区最多只有22个

  • Linux必须分区的是/(根分区)、swap分区(交换内存分区),推荐创建的分区是/boot(启动分区,他是分配一定空间,专门让linux启动数据放在这里的原因是,这是为了避免如果都放到根分区里,内存满了,系统都会无法启动)

  • 根节点是linux的最顶层结构,根节点下面包含/boot、/etc、/home等目录,/boot分区、/etc分区等可以是一块单独的硬盘,这跟我们平时见到的硬盘结构是不一样的(也就是说/boot等目录并不是在根目录之下的,他们甚至可能不在同一块硬盘,而Windows每个分区每块硬盘都是独立的,不能互相进入):

Linux系统操作笔记_第1张图片

  • Linux每个用户都会有一个目录,用来保存这个用户的专门文件,其中管理员目录是/root目录

  • linux用户根据命令前是#号还是$符号区分是管理员还是普通用户(也就是我们命令行前面的用户提示)

  • 相对目录是指参照我当前所在位置的目录位置,通常是../xxx/xxx,而绝对路径是从根目录出发的目录,通常是/xx/xxx/xx

  • rmdir删除目录(目录不能为空)

  • rm -r(删除目录和文件) -f(强制删除)

  • cp -r(复制目录) -p连带文件属性复制 -d 如果文件是链接文件,则复制链接属性 -a相当于pdr

  • mv mv filename/ xxxx 移动目录或者文件,前者参数是文件或者文件夹名,后者是移动到的目录名或者文件名。如果移动到当前文件夹,则可以产生改名操作

  • ln 创建一个链接。 -s是软连接,默认是硬链接。软连接是一个新的文件,它的内容指向原文件存储地址(类似于windows的快捷方式)。而硬链接两个文件是同一个文件索引,拥有同样的节点号、一般推荐使用软连接。如果做软连接,原文件的地址一定是绝对路径。

  • locate xxx搜索文件(模糊搜索,只能搜索文件名),他会从数据库/var/lib/mlocate.db里面去查找,所以速度非常快,如果我们创建了一个新文件,他是不会查找到的。原因是文件创建后会把它的信息放在数据库里,而刚刚创建是不会立马放进去的,所以我们需要使用updatedb来更新数据库。还有一个要注意的是,locate数据库并不是保存所有文件信息的,具体保存哪些目录的文件,可以查看他的配置文件:/etc/updatedb.config。

  • whereis xx:搜索系统(不能是自己创建的命令)命令所在位置以及帮助文档所在位置 -b(只看执行文件位置) -m(只看帮助文档所在位置)

-which 查看命令的别名以及命令所在位置

  • find:搜索文件(如:find /xx/ -name aaa,代表我们从/xx/目录下搜索aaa文件),他是可以进行模糊搜索的,我们可以使用’*’(任意通配符)、’?’(替换任意一个字符)、’[]’(替换括号中的任意一个字符)来搜索。我们还可以把-name换成-iname(不区分大小写搜索文件名)、-user root(搜索root用户所属的文件,如果是-nouser<后面不用加参数了>,那么就是搜索没有所有者的文件) 、-mtime +10(搜索十天前修改的文件,-10是十天内,10是十号当天的)、-size 25K(搜索文件大小为25K的,+是大于25K,-是小于25K)、-inum 222(根据文件节点名查找文件)。
    我们还可以使用-a(and符号)或者-o(or符号)来使用两个命令多条件查询。例如:find /etc -size +20k -a -size -50k(搜索20-50K大小的文件)。
    我们还可以使用-exec xxx(别的能够处理文件结果的命令) {} \;(后面一定要有分号),用来处理搜索到的文件。比如:find /etc -size +20k -a -size -50k -exec ls -lh {} \;(先根据条件搜索,然后列出文件详细信息,记得ls命令前面是没有-号的)

  • grep [选项] 字符串 文件名:在文件当中匹配符合条件的字符串(也就是在文件中搜索有没有这个字符串,它只要包含了这个字符串,就会列出来,他可以配合正则表达式来使用)。 -i忽略大小写,-v排除指定字符串。

  • 我们可以使用man xxx(命令名字)来查看命令的帮助文档 (只能针对外部命令),而外部命令使用help xxx。我们使用whereis命令来区分这是一个外部命令还是内部命令(外部命令有命令所在的位置)。

  • 我们也可以使用xxx –help来查看xxx命令的帮助文档

  • 我们使用zip命令来压缩和解压zip文件,zip afterzipfilename.zip filename的命令是把filename压缩为afterzipfilename.zip(后面的.zip是可以不带的,因为linux没有文件后缀的概念,加上.zip只是为了提醒这是一个zip文件)。我们使用unzip来解压缩:unzip xxx.zip。

  • .gz文件的压缩和解压:我们可以使用gzip命令来压缩文件,如gzip filename,压缩后源文件会消失。所以我们可以使用流重定向的方式重新保存源文件:gzip -c 源文件 >压缩文件(这个命令是把源文件压缩为压缩文件,且源文件保留)gzip -r 目录会把一个目录压缩,值得注意的是,他并不会把目录压缩为一个文件,而是会把目录内所有的子文件压缩,然后删除子文件,把压缩后的子文件放在源文件的目录中。所以这样压缩非常不方便。我们使用gzip -d和gunzip来解压文件,gunzip -r是解压目录。

  • .bz2格式压缩:我们使用命令bzip2 [源文件]来把一个文件压缩为.bz2格式,他是不会保留原文件的。使用bzip2 -k [原文件]来压缩后保留文件。值得注意的是bzip2命令不能压缩目录

  • 因为linux中上述压缩文件在针对目录的时候不能很好的处理,所以我们可以使用tar命令将压缩文件打包成.tar.gz以及.tar.bz2。下面是一些常用的打包命令:
    tar -cvf 打包文件名 源文件:c打包,v显示过程,f指定打包后的文件
    打包后可以压缩成任意的压缩文件
    tar -xvf 打包文件名:解包
    tar.gz相关命令:
    tar -zcvf 压缩包名.tar.gz 源文件
    解压缩:tar -zxvf 压缩包名.tar.gz
    tar.bz2相关命令:
    tar -jcvf 压缩包名.tar.bz2 源文件
    解压缩:tar -jxvf 压缩包名.tar.bz2
    解压重定向:
    tar -jxvf 压缩包名.tar.bz2 -C /temp/
    压缩多个文件并且重定向:
    tar -zcvf /temp/压缩包名.tar.gz 源文件1 源文件2
    重点内容仅查看压缩包内容:
    tar -ztvf 压缩包名.tar.gz

  • linux的关机命令:shutdown [选项] [时间]
    -c(取消前一个命令) -h(立刻关机) -r(重启)。我们可以使用shutdown -r &,通过’&’符号来让这个命令在后台运行。后面的时间如果为now就是现在执行。我们还可以使用halt(halt是阻止的意思)、poweroff、init 0来关机。使用reboot、init 6来重启。

  • Linux分6个系统级别:0关机、1单用户、2不完全多用户、不含NFSS服务、3完全多用户、4未分配、5图形界面、6重启。我们可以使用init number切换到相应的系统级别。我们可以使用runlevel来查看系统级别情况,它会列出之前的系统级别以及现在的系统级别(如果是N则代表之前是开机,没有切换系统级别)。我们可以进入/etc/inittab来查看默认系统运行级别

  • 我们使用logout来退出登录

  • linux中的挂载类似于windows中的分配盘符,只是windows更加智能,一般情况下,linux需要有挂载点。我们可以使用mount查看挂载的设备。mount -a(根据配置文件/etc/fstab的内容,自动挂载。我们在开机的时候也会根据这个文件自动挂载,如果挂载不成功,就会直接启动失败)

  • mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点。来挂载一个设备,其中-t文件系统用来指定挂载设备的文件系统类型,可以使ext3 ext4、iso9660、vfat(windows下的fat32文件系统),-o是特殊选项,可以指定挂载额外的选项。

  • 我们可以使用umount 文件名或挂载点,来卸载设备。如果出现设备正忙,有可能是你正在这个设备的目录里(系统是不允许你在目录中卸载这个设备的)。我们必须要使用卸载命令,否则下次会读取出错。

  • 我们可以使用w命令来查看登录用户信息。它列出的属性含义如下:
    USER (登录的用户名) TTY (登录的终端来源,是远程用户还是本地登录的) FROM(如果是远程用户,则会有IP地址来源) LOGIN@(登录的时间) IDLE(用户闲置时间) JCPU(当前登录终端占用CPU时间) PCPU(当前进程所占用时间) WHAT(正在运行的命令)

  • who也是查看用户登录情况,只不过它比w命令更加精简

  • last是查询过去登录的情况,其实是查看/var/log/wtmp文件

  • lastlog是查看所有用户登录的记录,其实是查看/var/log/lastlog文件

  • 我们可以把alias放入~/.bashrc(前面的~符号是当前用户目录)来保存
    别名,不过我们需要重新登录才能然这个文件的修改生效(或者使用source .bashrc来让其立即生效)让其永久生效(用命令行是临时别名)。unalias也是临时删除,如果在配置文档里有,下次还是会生效。

  • linux命令生效顺序:1.执行用绝对路径或者相对路径执行的命令 2.执行别名命令 3.执行Bash内部命令 4.执行$PATH环境变量定义的目录查找到的顺序第一个命令。

  • linux编辑器快捷键 ctrl c停止任务执行 ctrl l清屏 ctrl a光标移动到命令行行首 ctrl e光标移动到命令行行尾 ctrl u删除光标所在位置到行首(也就是删除整行) ctrl z(把命令放入后台) ctrl r在历史命令中搜索。

  • 我们使用> >>让输出流重定向(>是覆盖,>>是追加),错误重定向是2>或者2>>。上述的命令只能处理错误或者正确命令的输出重定向,不能同时处理两者情况(我们需要命令错误的时候流能重定向、正确的时候流也能重定向),那么我们可以使用下面的命令:

Linux系统操作笔记_第2张图片

  • 多命令顺序执行:命令1;命令2(多个命令顺序执行,没有任何关联) 、命令1&&命令2(命令1执行成功,命令2才会执行,命令1执行不成功,命令2不会执行) 、命令1||命令2(命令1执行成功,命令2不执行,命令1执行不成功,命令2不执行,也就是只会执行一个成功的命令,一旦执行,后面的命令就不会执行了)。

  • wc命令统计给定文件中的字节数、字数、行数。-c 是统计字节数、-l是统计行数、-w是统计字数。

  • 我们可以使用通配符匹配某些命令的参数值,如ls filename*,是匹配filename后面任意的字符, 他会把*号当成任意匹配字符去列出相关的文件信息。下图是更多的Linux匹配方式:

Linux系统操作笔记_第3张图片

  • 我们在命令中还可以使用一些简单的脚本来处理,比如说:
a = "hello";//定义一个变量a
echo a;它输出的是变量a的值
echo '$a';//它输出的是$a
echo "$a";//它输出的是变量a的值hello
a = $(ls);//这里会把ls的命令结果赋值给变量a

不同符号下,代表的意思是不同的,刚刚的代码中单引号里不会对”$”产生特别的作用,而双引号中则会把”$”后面的值当成一个变量。更多的特殊情况请见下表

Linux系统操作笔记_第4张图片

  • 用户和用户组:
    cat /etc/passwd查看所有的用户信息
    cat /etc/group查看所有组信息
    groupadd xxx添加一个xx用户组
    groupmod -n xxx1 xxx把xxx用户组名修改为xxx1。
    我们可以使用groupmod -g 668 xxx把xxx组的组编号改成668。
    groupadd -g 888 xxx创建一个xxx组,并且编号为888。
    groupdel xxx 删除xxx用户组
    useradd -g groupname username 创建username用户添加到groupname里面去,并且分组为groupname(如果不指定用户组,且没有跟用户名一样的用户组,那么会创建一个跟用户一样的用户组,并把其放入进去)
    useradd -d /home/xxx username创建username的时候指定个人文件夹
    usermod -c desc username 添加username的注释为desc。
    usermod -l newusername username 把username的用户名修改为newusername。
    usermod -g group user把user这个用户放到group用户组里去
    usermod -d /home/xxx username把username用户的个人文件夹修改为/home/xxx目录
    userdel username 删除用户
    userdel -r username删除用户的同时删除用户个人文件
    touch /etc/nologin 除了root外的其他用户都不能登录
    passwd -l username锁定用户,让其不能登录
    passwd -u username解锁用户
    passwd -d username清除密码
    用户可以属于一个主要组,多个附属组
    gpasswd -a username groupname把username用户成为groupname的附属组(注意usermod -g是修改主要组)
    用户组创建的文件默认是主要组的,如果想要使用附属组权限来执行,那么需要切换到附属组
    gpasswd -d username groupname删除username用户的附属组groupname
    usradd username -g group1 -G group2,group3添加用户组username到主用户组group1,附属用户组group2,group3……等。
    su username切换用户到username(不加参数是root用户),root用户切换到其他用户,不需要密码,其他用户切换到root或者其他用户需要登录密码。
    id username显示username用户的用户组,用户名、用户编号、主要组以及附属组名称和列表。
    groups username显示用户组所在的所有组
    chfn username设置username用户资料
    finger username显示username用户详细资料

  • Linux各目录的作用:
    / 根目录

/bin 存放必要的命令

/boot 存放内核以及启动所需的文件等

/dev 存放设备文件

/etc 存放系统的配置文件

/home 用户文件的主目录,用户数据存放在其主目录中

/lib 存放必要的运行库

/mnt 存放临时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子目录下。

/proc 存放存储进程和系统信息

/root 超级用户的主目录

/sbin 存放系统管理程序

/tmp 存放临时文件的目录

/usr 包含了一般不需要修改的应用程序,命令程序文件、程序库、手册和其它文档。

/var 包含系统产生的经常变化的文件

Linux网络配置

1.ifconfig命令用来临时配置IP地址。我们可以使用ifconfig来查看网络信息,也可以使用ifconfig etho0 192.168.0.200 netmask 255.255.255.0来配置网卡的IP地址和子网掩码(他是临时命令,关机或者重启网卡就不行了)

2.service network restart会重启网卡

3.我们可以使用修改网卡或者网络设备文件的方式来配置网络。
网卡保存的目录为:/etc/sysconfig/network-scripts/ifcfg-网卡名

4.我们可以使用hostname来查看主机名,使用hostname xxx来修改主机名为xxx(这个是临时修改的,但是它会立即生效,重启会消失。而且修改后登录名并不会变化,需要重新登录)要想永久更改,编辑/etc/sysconfig/network里面的HOSTNAME即可(他需要重启才能生效,不能立即生效)

5.我们可以通过/etc/resolv.conf来修改dns服务器地址:
nameserver后面的 就是dns地址
nameserver 202.106.0.20

6.ifdown [网卡设备名]禁用某个网卡 ifup [网卡设备名]开启某个网卡

7.netstat查询网络状态
-t 列出tcp协议端口
-u 列出ud协议端口
-n 不使用域名与服务,而使用IP地址和服务端口号
-l 仅列出在监听状态下的网络服务
-a 列出所有网络链接
8. route -n查看路由器列表,或者使用netstat -rn也是可以的

  1. route add default gw 192.168.1.1临时设置网关

  2. nslookup 查看域名对应的DNS服务器名字和IP地址(DNS作用)

  3. ping(探测ip或者域名的网络状况),可以使用-c 次数来指定ping包的次数(如果不指定,则会一直Ping)

  4. 我们可以使用telnet [域名或IP] [端口]来远程管理与端口探测命令

  5. traceroute路由路径或者跟踪

  6. wget [下载地址] 下载一个文件

  7. tcpdump命令可以抓取往卡上的数据
    -i指定网卡接口
    -nn 将数据包中的域名与服务器转换为IP和端口
    -X 以16进制和ASCII码显示数据包内容
    port指定监听的端口

16.ssh命令:
ssh 用户名@ip 远程管理指定linux服务器
scp [-r] [用户名]@ip:[文件路径] [本地路径] 下载远程主机的文件到本地目录
scp [-r] [本地文件] [用户名]@ip:[上传路径] 上传本地文件到ip主机的上传路径去。

Linux软件安装


  1. linux软件可以使用源码包(有点是可以查看源代码根据自己的环境编译会更加稳定,缺点是需要自己编译,安装速度满,操作复杂)、二进制包(RPM包、系统默认包,他不能看到源代码,安装简单,只需要命令就可以实现,安装速度快)。

  2. 文件安装的时候,可能会出现一些依赖问题(树形依赖<安装A需要先安装B,而B需要先安装C>、环形依赖<安装A需要安装B,安装B需要安装C,安装C需要安装A,这个时候我们可以用一个命令安装所有的软件解决环形问题>、模块依赖<在安装过程中,可能依赖的是一个文件而不是一个软件(通常是以.so.数字结尾的),我们可以通过www.rpmfind.net先查询包含这个文件的软件是什么,安装了这个软件,这个文件自然就有了>)。

  3. rpm命令(安装本地软件):
    a. 包全名:操作的包是没有安装的软件时,使用包全名,而且要注意路径(安装的是时候需要使用包全名)
    b.包名:操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库(使用软件、卸载的时候可以直接使用包名)。
    rpm -ivh [包全名]安装一个软件 -i(安装) -v(显示详细信息) -h(显示进度) –nodeps(不检测依赖性)
    rpm -uvh [包全名] 软件升级(如果之前没安装,则是纯安装)
    rpm -e [包名] 卸载软件(他会提醒你把依赖的包也卸载了,卸载的包跟安装相反,但是我们可以使用–nodeps不检查依赖,让他不卸载依赖,其实我们在安装的时候也可以使用–nodeps来不检查依赖,但是这样安装,会让软件用不了)
    rpm -q [包名]查询是否安装了某个软件(q是指query)
    rpm -qilp [包全名] 查询未安装的软件信息,包括安装的目录,依赖等信息(必须有这个本地rpm存在,p是指package,i是infomation,l是list,列出所有信息)
    rpm -qa 查询安装过的所有rpm安装包 (使用grep可以赛选某个,简直是神器)
    rpm -qf [文件名] 查询某个文件是属于哪个rpm安装包的(必须是rpm包安装的文件)
    rpm -qR [包全名] 查询rpm包安装需要依赖的安装包(不能使用这个,因为他会把系统环境已经有的依赖包也列出来,所以列出的信息意义不大)
    rpm -V [包名/包全名] 校验文件是否被非法修改过 ,具体会包含很多信息,可以上网查看下
    rpm包默认安装位置:
    /etc/配置文件安装目录
    /user/bin/可执行命令安装位置
    /usr/lib/程序使用的函数库保存的位置
    /usr/share/doc/软件使用手册保存位置
    /usr/share/man/帮助文档保存位置

  4. yum在线安装软件
    我们可以在/etc/yum.repos.d/CentOS-Base.repo查看或者配置在线安装服务器的一些信息,信息解释如图所示:
    Linux系统操作笔记_第5张图片
    在没有网络的时候,我们可以使用本地yum源来作为在线安装源地址,具体的操作如下:
    a.挂载光盘
    b.修改yum源文件:1 重命名网络源文件名使其失效(CentOS-Base.repo这个文件,重命名了之后,系统就找不到了); 2 修改光盘源文件的配置使其生效:修改baseurl=file:///mnt/cdrom,注释其它源的目录,将源enabled属性值改为1。
    yum list 查看可安装的yum包
    yum search [关键字] 搜索可安装的yum包
    yum -y install [软件名] 安装软件 -y是自动应答yes(不加-y安装依赖的时候就是会让你每次确认)
    yum -y update [软件名] 软件升级(如果不加软件名,那么会更新所有的软件和系统内核,新内核需要做配置才能使用,所以必须要谨慎)
    yum -y remove [包名] 卸载软件
    yum grouplist 列出所有可用的软件组列表(所谓的软件组,就是一组软件安装包,比如说我们要开发JAVA,可能yum服务器已经给我们准备好了JAVA开发大礼包,包含了JAVA开发的各种工具)
    yum groupinstall [软件组名] 安装指定软件组
    yum groupremove [软件组名] 卸载指定软件组

  5. 源码包的安装:
    源码包的安装需要自己指定目录(一般放在/usr/local/下面,rpm包可以通过service启动,因为rpm包安装的软件启动目录一般都在固定目录下,而源码包因为要自己指定,他会找不到启动目录所在地,所以不能用service,需要直接通过安装路径启动)。
    具体的安装过程如下(这是标准情况下的安装,每个软件可能不一样,所以还是看官方文档或者在源码目录下的INSTALL文件中查看相关的安装操作,启动命令亦记录在内):

    • 确保有gcc编译器—可以使用rpm –I 安装
    • 下载源码包压缩文件-解压tar -zxvf httpd-2.2.9.tar.gz -C /usr/local/src/
    • Cd到解压目录下,不可省略
      执行./configure命令进行功能选择与配置
      例如./configure —prefix=/usr/local/apache2(可以用./configure –help)
    • make命令 编译指令——–如果出错,用make clean清除缓存
    • make install 编译安装 —如果这一步报错,make clean+清空/usr/local/apache2
  6. 脚本安装

Linux权限管理

  1. linux的文件和目录有三种权限,分别是:读(r)、写(w)、执行(x)。文件权限跟目录权限是不一样的,文件如果拥有读权限,可以使用cat、more、head、tail命令来查看,w权限可以使用vi echo(追加数据)等命令,但是不能删除文件(理由是拥有文件读写权限,只能修改文件本身的数据,而文件信息的数据,是保存在目录中的,所以我们只有拥有对文件所在的目录的读写权限,才能够删除这个文件),x是可执行这个文件。如果对目录有读权限,可以查询目录下的文件(ls命令),如果对目录拥有写权限,那么我们可以在目录中新建文件和目录,删除文件和目录,重命名文件和目录,剪切文件和目录(rm、mv、cp),如果拥有执行权限,那么我们可以进入目录(cd)。但值得注意的是,超级管理员不管怎么样的情况下,都拥有一切权限(就算这个文件没有分配读写执行权限)。

  2. 文件权限管理:
    我们可以使用chmod来修改文件权限,chmod -[参数] [ 权限] [文件名]。
    chmod -R u-x,g+w,o+w ./ 递归,就是把权限设置应用到目录本身及其内的文件与目录,对普通文件使用-R不起作用
    chmod u+x,g+w,o+x test.test方式1通过+-来赋予或删除权限。
    chmod u=rwx,g=rw,o=r test.tset方式2通过=来设置相应权限
    我们还可以使用参数a来设置所有的用户权限 chmod a=rwx test.test设置文件所有用户拥有读写执行权限
    我们可以用三个数字来代替读写执行权限(r=4,w=2,x=1,无论如何相加,他们都能正确区分是由哪几个数字组成的),并且用这三个字母的和代表某类用户的权限,比如说:chmod 755 test.test:赋予u为7(4+2+1)g为5(4+1) o为5(4+1)

  3. 改变文件所属的用户:chown [用户名:用户组] [文件] 把某个文件所属的用户或者用户组改为另一个用户或者用户组。

  4. chgrp [用户组] [文件名] 改变用户所属组

  5. linux的文件权限没有继承关系(他并不是跟随父文件的),一个文件创建的时候他的权限跟随umask的值值来决定的。我们可以通过umask命令来查看文件默认权限的值(它会显示0002这种数字,其中第一个是代表特殊权限,第二三个是读、写权限)。文件的默认权限仅能为666(读,写权限,之所以这样做,系统是为了保证在不经意创建一个文件的时候,能够保证安全性),我们通过把文件默认最大权限换算成字母(也就是rwx这种字母),然后再把umask值换算成字母,并按照正确排列数字排列,再相减(实际上就是在做逻辑与运算),就能得到文件默认权限。而对于一个目录来说,他的最大默认权限是777,所以目录的最大权限是777减去默认的umask值(也要字母转换)。umask详解请看umask详解

  6. 我们可以通过umask xxxx来修改umask值,但是这是临时的,如果我们想永久修改,可以去/etc/profile来修改。文件如下:
    Linux系统操作笔记_第6张图片
    在文件中有一个if UID>199的代码,它表示的是root权限(系统用户的id小于500),所以在这个判断语句中它的umask是赋值给root用户的,后面的else是赋值给普通用户umask值。

  7. 对于单独一个用户,如果我们想要对其单独赋予特殊权限(我们不能直接对一个文件赋予用户权限,因为他会替换掉原来的用户),可以使用ACL。一个文件要想拥有ACL权限,需要他所在的磁盘开起来ACL权限。我们可以通过df -h查看磁盘挂载信息,通过dumpe2fs -h /dev/sda3来查看某块磁盘是否开启ACL权限(如果显示包含:Default mount options: user_xattr acl ,表示支持 ACL 权限),通过mount -o amount,acl [挂载目录]来重新挂载一个硬盘,并让其拥有ACL权限。

  8. 对于一个文件,如果我们可以通过getfacl [文件名] 来查看文件的ACL权限(我们会看到一个mask值,他是文件的最大权限,所有普通用户都需要和mask权限相与之后才是文件的真实权限,其实后面有一个efftive标注的就是实际的权限)。

  9. 我们可以通过setfacl -m m: [权限] [文件名]来修改第一个文件的mask值。

  10. 我们可以通过setfacl来修改acl权限。如果想要修改一个文件的ACL权限,可以使用setfacl -m u:[用户名/用户组]:[权限] [文件名]。删除某个用户的ACL权限:setfacl -x u(g):用户名(组名) [文件夹] 删除某个文件下的某个ACL权限(这是根据用户来的)。删除所有的ACL权限:setfacl -b [文件夹]

  11. 我们可以在setfacl的时候添加-R来递归让文件夹的子文件也拥有同样的权限,他仅仅会把当前已经拥有了的文件赋予相应的权限,后面创建的,不会拥有这样的权限了(但是我们要注意权限溢出问题,所谓的溢出,是指文件夹的执行权限是用在cd命令,而文件的执行权限是运行文件,如果递归相同的ACL权限,那么子文件也会拥有写权限,这样做很危险)。

  12. 如果给父母赋予了默认ACL权限,那么父目录中的ACL权限会被子文件和目录继承。我们可以通过setfacl -m d:u:[用户名/组名]:[文件权限] -R [目录]。跟普通的ACL赋值不同的是,前面有了一个参数d。默认权限在操作以后创建了文件,也会拥有这样的权限

  13. 我们可以使用sudo来对普通管理员赋予执行超级管理员的某些命令权限。具体的操作如下:
    我们先执行visudo命令,然后再末尾添加一行user[%组名] ALL=(ALL) [命令的绝对路径],他的意义是让某个用户(组)能够执行某条管理员的命令。其中第一个ALL是被管理的主机的IP地址,意思是在指定的IP地址下才有sudo这个权限,第二个ALL是指可以切换成任意身份(也可以写一个具体的身份,如切换成为root,或者user1身份,如果直接写ALL=[命令路径],则是切换为root用户)。我们可以通过sudo -l来查看某个用户具有的超级管理员命令,通过sudo [命令的绝对路径]来执行上述添加过的某条命令。
    如果我们想让某个命令条件执行,举个例子,我们想要让其他用户具有修改密码的权限,但我们不想让passwd命令修改root用户,而且只能修改字母开头的用户密码,那么我们可以这样操作:
    注:passwd命令的用法是passwd [用户名] [密码]
    user1 ALL=/user/bin/passwd [A-Za-z]*, !/usr/bin/passwd “”, !/usr/bin/passwd root
    上面的操作他会同时执行三条命令的操作,第一条是让user1用户拥有root身份,但是修改的用户是字母开头的用户(通配符结果的用户),第二个命令是执行的passwd命令后面带的参数不能为空(passwd为空是默认修改root用户密码,符号!是取反的意思),第三个是不能修改root用户的密码。

14.SetUID:我们可以使用SetUID来改变一个拥有可执行权限文件,在执行的时候,用户的身份会转变成文件所述用户,文件执行完毕后,用户变成之前的用户。我们可以通过chmod 4755 [文件]给文件赋予SUI权限,或者chmod u+s [文件名]也能赋予SUID权限。我们可以使用chmod 0755 [文件名]来取消SUID权限,或者使用chmod u-s [文件名]也是可以的。
15. SetGID:对于拥有可执行的文件,SetGID能够让其在执行的时候,组身份升级为该文件的所属组。执行过后,变成原来的程序组权限。对于文件夹,普通用户在此目录中的有效组会变成此目录的属组,如果普通用户对此文件拥有w权限时,新建的文件的默认属组是这个目录的属组。我们可以通过chmod g+s[文件夹/文件] [权限] 或者chmod g+s [文件夹/文件]来修改SGID。可以使用chmod g-s [文件夹/文件]来删除SGID权限。
16. SBIT(也叫粘着位,他只能作用于拥有777权限的文件):对于某些时候,虽然某个用户拥有了某个文件夹的读写权限执行(这意味着能够编辑删除添加文件夹里的文件),但是我们想让其值能够删除自己添加的目录(当然root用户是可以删除一切东西 的),这个时候我们可以考虑用SBIT。要赋予SBIT权限,我们需要对该目录的普通用户赋予7权限,所以非常危险,我们可以通过chmod o+t [文件夹]或者chmod 1xxx [文件夹]来对文件夹(仅仅只能作用于文件夹)赋予SBIT权限。我们可以使用chmod o-t [文件夹]来删除SBIT权限
17. 我们可以通过chattr +i [文件名/文件]来对某个文件夹/文件赋值i属性,如果针对的是文件夹,那么这个文件夹里面的不能修改文件名、删除添加文件(但是可以编辑文件),如果针对的是文件,那么这个文件不能被修改(是可以改名的,因为名字是保存在目录中的)。可以使用chattr -i [文件夹]。值得注意的是,这个命令只能在root权限下使用
18. chattr +a [文件名/目录]:如果是目录的话,能够添加新的文件,但是不能删除和修改,如果是文件,那么是可以追加的,但是不能删除(我们不能用vi编辑器修改,因为系统判断不了你到底修改了没,所以可以使用>>追加符来追加数据)。值得注意的是,这个命令只能在root权限下使用
19. 我们可以使用lsattr来查看文件属性,-a或者默认不带参数是列出文件夹里的所有目录和文件。-d是仅仅列出某个文件的属性信息。

系统运行级别与管理

1.我们可以通过runlever命令来查看当前系统运行级别。使用init [数字]来修改系统运行级别

2.系统运行级别分为7中,从0-6,0(是关机)、1(是单用户模式,跟windows的安全模式一样)、2(不完全单命令行模式,不含NFS服务)、3()完全的命令行模式,就是标准的字符界面)、4(系统保留)、5(图形化界面)、6(重启动)

3.我们可以通过vim /etc/inittab来修改系统默认启动运行级别。

4.Linux的服务氛围两种,一种是独立服务,一种是基于xinetd服务(也就是他是宿主,别的服务会依附于他,这样做能够节省内存,但是效率比独立服务慢)

5.我们可以通过chkconfig –list来查看自启服务状态(它只能找到RPM包,源码包需要自己去找)。

6.rpm包安装后的文件位置
/etc/init.d 启动脚本位置
/etc/sysconfig 初始化环境配置文件位置
/etc/ 配置文件位置
/etc/xinetd.conf xinetd配置文件
/etc/xinetd.d/ 基于xinetd服务的启动脚本
/var/lib/ 服务产生的数据放在这里
/var/log/ 日志

7.我们有两种方式启动一个rpm包服务,第一种是进入/etc/init.d/独立服务名 -start|stop|status|restart来执行启动重启查看服务状态等操作。第二种是service 独立服务名 start|stop|restart|status来操作服务。

8.RPM包独立服务的自启动方法(所谓的自启动,也就是自动加载或者开启某些服务):
方法1:chkconfig [–level 运行级别] [独立服务名] [on/off]
如:chkconfig –level 2345 httpd on(设置httpd服务在运行级别为2345的时候为自启动级别)
chkconfig httpd off(所有运行级别都不让服务有自启能力)

方法2:修改/etc/rc.d/rc.local文件
加入:/etc/init.d/httpd start。他会在系统运行成功后,执行这个命令。

方法3:使用ntsysv命令管理自启动redhat专有工具,和1本质为同一种方法 2为另一种方法,为防止两次自启动报错,只选其中一种。
9.源码包的启动方式:
安装源码包的运行脚本目录 start|stop
10. 源码包的自启动方法:
第一种:在/etc/rc.d/rc.local里加入启动的命令(跟RPM包的是一样的逻辑)
11.让源码包被服务管理命令识别:
让service命令识别:直接创建源码包的启动脚本的软连接到/etc/rc.d/init.d/目录下,他就可以直接调用service xxx start|stop了
被chkconfig和ntsyssv命令识别:a.修改service命令链接过来的启动脚本,在里面添加下面两行:#chkconfig:[运行级别] [启动顺序] [关闭顺序],#description:soure package apache(#号不是注释,必须要加上)。其中运行级别可以是多个数字,他代表会在这几个启动顺序执行的操作(系统的每个运行级别都会在/etc/rc[运行级别号].d/目录里对应的文件,这些文件分为S开头和K开头的,S开头的文件会在系统运行到这个级别的时候运行,他会启动服务,而K开头的是关闭服务,K和S后面会带一个数字,表示他是某一类服务的启动/关闭文件命令)。后面的启动顺序和关闭顺序数字位数跟运行级别位数相对应,所以他不能跟原有的启动关闭顺序号冲突(有几种运行级别就代表有几种关闭或者打开顺序)这样写了之后,系统在运行到这个级别的时候,就会根据K/S以及对应的启动关闭数字去查找到相应的命令。
b.使用chkconfig –add 软连接名(保存在/etc/init.d里面的)就会把这个服务加入到chkconfig和ntsysv命令操作

Linux服务管理结构图:

Linux系统操作笔记_第7张图片

Linux系统管理

1.我们可以通过ps命令来查看进程状况。ps aux和ps -le是我们最常用的命令,他会列出系统所有进程以及其内存CPU等信息。他有以下选项:
-a:显示一个终端的所有进程,除了会话引线
-u:显示进程的归属用户以及内存的使用情况
-x:显示没有控制终端的进程
-l:长格式显示,显示更加详细的信息
-e:显示所有进程,作用和-ax一致

2.ps的输出含义如下图所示:

Linux系统操作笔记_第8张图片

3.进程有以下常用状态(在ps命令输出中的STAT中表示):

Linux系统操作笔记_第9张图片

4.我们可以使用pstree来查看进程之间的树形关系,-p他会在树形结构中列出pid号,-u会显示所属的用户

5.我们可以使用top命令来查看当前进程状况(3秒钟刷新一次)。
-d [秒数] 指定top命令每隔几秒钟更新
-b 使用批处理模式输出,他会列出所有的进程,一般和-n选项合用
-n 次数:指定top命令执行的次数,一般和-b选项合用
在top命令的交互模式中,可以执行的命令有以下:
?或h:显示交互模式的帮助
P:以CPU使用率排序,默认就是此选项
M:以内存的使用率排序
N:以PID排序
q:退出top
6.杀死进程:
a、kill -l #查看可用的进程信号

其中有两个信息
信号代号 信号名称 说明
1 SIGHUP 关闭读取配置文件后重启
9 SIGKILL 强制停止

平滑重启服务: 正常修改完配置文件后,需要重启服务,但是用普通的restart来重启会提出正在使用的用户,造成不好的用户体验。而平滑重启是重启服务配置,保留正在使用的用户。 命令: kill -HUP(或-1) 进程号

kill 一次只能杀死一个进程。但是一个服务经常会开启很多进程(比如httpd,每登陆一个用户就会增加一个进程),因此一个个进程关闭太麻烦,可能就要用到killall 或者 pkill 可以批量杀死同一类型的进程

b、killall 命令:
killall [选项] [信号] 进程名 #按照进程名杀死进程,可以批量杀死同一类型的进程

选项:
–> -i:交互式,询问是否要杀死某个进程
–> -I:大小的i,忽略进程名的大小写

c、pkill命令
pkill [选项] [信号] 进程名 #按照进程名终止进程,可以批量杀死同一类型的进程

选项:
–> -t 终端号:按照终端号踢出用户

案例:踢出登录用户

w #查看当前登陆用户的用户 TTY列为终端号

    按照终端号杀死进程

    pkill -9 -t tty1

    只有超级用户才能剔除用户 
  1. ps -el可以查看进程的优先级,里面的Pri值是系统的优先级,NI(nice)是用户自定义的优先级,它的范围是-20-19。实际的优先级是pri+NI。用户只能修改NI的值。
  2. nice -n [数字] service httpd start可以在进程启动前修改进程的NI值(这个命令只能修改没有运行的NI值)
  3. renice [NI值] PID号修改正在运行的进程的NI值
  4. 工作(后台)管理注意事项:
    a、当前的登录终端,只能管理当前终端的工作,而不能管理其他登录终端的工作,终端关闭后,会对所有终端开启的进程发送一个关闭进程信号,后面任务会自动关闭(除非做了特殊操作)
    b、放入后台的命令必须可以持续运行一段时间,这样我们才能捕捉和操作这个工作
    c、放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行。
    我们可以通过
    jobs #查看在后台运行的程序(-l参数会列出Pid),第一个后台程序前面会标记+号,第二个进程是-号,其他的没有符号,只有数字。
    Linux后台运行:命令后面加上“ &”
    *windows最小化就是放入后台执行
    10.[命令] &会把一个任务放入后台运行
    我们也可以在运行的时候,按ctrl 让他在后台运行,但是这个任务会停止。这跟&符号不一样。
    11.bg %[工作号] 会让一个任务在后台进行
    fg %[工作号]会让一个任务在前台运行。如果是bg或者fg不带工作号,默认恢复第一个进程。
    12.如果让终端关闭后,程序都能运行?我们有三种方法:第一种方法是把需要执行的命令加入/etc/rc.local文件,第二种方法是使用系统定时任务,让系统在指定的时间执行某个后台命令。第三种方法是使用nohup命令
    (使用的方法是:nohup [命令] &)。

13.vmstat命令用来监控系统资源,他会列出进程信息(procs:r参数表示运行的进程数,数量越大,系统越繁忙,b参数是不可被唤醒的进程数,数量越大,越繁忙) 内存信息(memory:swpd用来表示虚拟内存使用情况,单位是KB,free是空闲的内存容量,单位是K,buff是缓冲的内容容量,cache是缓存的内容容量),交换分区的信息字段(swap:si表示从硬盘中交换到内存单元的数据,so是从内存中交换到磁盘中的数据,两个数越大,说明要经常进行内存交换,系统性能差),磁盘读写信息字段(io:bi从块设备读入数据的总量,单位是块,bo写入设备的数据总量,单位是块,两个数越大,代表系统的I/O越繁忙)。
14. dmesg用来查看系统开机硬件和内核检测信息(他可以判断硬件或者内核是否健康)。
15. free [-b|-k|-m|-g]查看内存使用状况,后面的参数代表内存使用情况以b/k/m/g单位显示。
16. cat /proc/cupinfo用来显示CPU信息
17. uptime 显示系统开机时间,用户数,平均负载(他就是top命令的 第一行数据,这个目的比top耗费更少的资源,所以如果我们只看这些数据,用uptime比较好)
18. uname用来显示内核的信息,-a用来查看所有相关信息,-r用来查看内核版本,-s用来查看内核名称
19. 我们随便查看一个系统自带命令,就能知道系统位数(其实uname显示内核版本的时候,会显示系统位数)file /bin/ls列出的信息会告诉你是什么位数的操作系统。
20. lsof用来列出进程打开或者使用的文件信息,-c [字符串]是只列出以字符串开头的进程打开的文件,-u [用户名]是只列出某个用户名的进程打开的文件 -p [pid]列出某个pid进程打开的文件 lsof [文件名] 查询某个文件正在被哪个进程调用

Linux的任务管理

1.我们可以使用at来执行一次性命令,在/etc目录下,会有at.deny或者at.allow两个文件,他们分别用来禁止或者让某些用户使用,但他们对root用户是不起作用的(如果同时存在两个文件,at.allow的优先级别大于at.deny),如果两个文件都不存在,那么只有root用户可以使用at命令。命令的用法为:
at [选项] [时间],其中选项有-m(当工作完成后,无论命令是否有输出,都通过email通知执行at命令的用户) 以及-c(工作号:显示该at工作的实际内容)。时间参数可以用多种方法表示:HH:MM(如:02:30),HH:MM YYY-MM-DD(如:02:30 2013-07-25),HH:MM[am][pm] [month][date](如:02:30 july 25),HH:MM[am][pm]+[minutes|hours|days|weeks],也可以使用now+5 minutes这种方式),输入at命令并且按下回车后,会提示你输入具体的操作,然后按下ctrl+d键,会保存并退出at命令。
2. atq查询已经存在的at命令
3. at -c [任务编号]查询at任务编号的任务详情
4. atrm [任务编号] 删除at任务
5. crontab [选项]
-e:编辑定时任务,它默认的带上了你当前用户(谁执行的任务就归谁管,并且这个用户只能执行自己能执行的操作)。它会打开vim编辑器,你可以在这里面写入命令和脚本,crontab的命令的环境变量跟正常情况下不一样,所以命令最好写绝对路径),crontab最小识别时间是分钟,最大识别时间是月。
-l(查询crontab任务)
-r(删除当前用户所有的crontab任务,单独删除一个只需要自己去文件里面改就行了)
6. 如何编写crontab命令?我们的格式是五个星号+命令。星号代表的含义如下:

Linux系统操作笔记_第10张图片

crontab每个星号还可以使用其他符号来表示特别含义,具体包含的符号如下:

Linux系统操作笔记_第11张图片

crontab用法举例

Linux系统操作笔记_第12张图片

Linux系统操作笔记_第13张图片

crontab注意事项

Linux系统操作笔记_第14张图片

7.我们也可以直接编辑/etc/crontab文件,在里面添加命令(需要加上用户名,具体操作可以看说明文档)
8.除了手工的使用crontab -e执行定时任务或者直接编辑/etc/crontab文件,我们还可以把定时任务脚本拷贝在/etc/cron.{daily,weekly,monthly}目中的任意一个里(分别会自动在天、周、月里执行),这些文件是由/etc/anacrontab来调用的(旧版本是由anacrontab和crontab两个文件共同调用,新版本仅由anacrontab来管理调用)。
9. anocron是用来保证系统关机的时候错过的定时任务,可以在系统开机之后再执行(他只会执行/etc/cron.{daily,weekly,monthly}目录里的文件,这就证明它比crontab -e命令更好)。每次开机后,anacron会使用一天、七天、一个月作为检测周期。它会在系统的/var/spool/anacron/目录中存在的cron.{daily,weekly,monthly}文件,用于记录上次执行cron的时间,并且它会对当前时间做比较,如果两个时间的差超过了anacron的指定时间差值,说明cron任务没有被执行,需要重新执行。这个时候,他会判断是不是可以执行的时间(在/etc/anacrontab文件里有一个START_HOURS_RANGE=3-22参数代表命令执行的时间),如果是,就回去/etc/cron.{daily|weekly|monthly}目录里去查找并且执行相关的命令。

VI编辑器的使用

注意:如果我们命令前面加了“:”说明是底线模式下的命令,否则是命令模式下的操作

  • 按下ESC键,进入命令模式
  • 按下i,进入编辑模式(再按ESC回到命令模式)
  • 按下o,进入编辑模式并且当前位置换行
  • 命令模式下输入“:”,可以进入底线模式。
  • 底线模式下有一下几个常用命令:w(存储)wq(存储并离开)、w!(强行保存,如果写入只读文件,必须是文件的拥有者)、w name(另存为name的新文件)、q(退出)、q!(强制离开,放弃改变)、e name(编辑名称为name的文件,如果name不存在会重新创建一个name文件)、e!(再编辑,他会舍弃原来的改变)、n(编辑下一个文件,如果我们使用vi name1.txt name2.txt,它会跳转到下一个文件编辑)、f(显示当前的文件名,光标所在的行数以及比例)、vi -o2 name1.txt name2.txt将会同时打开两个文件,并且将其一分为二(我们也可以先打开一个文件,然后再使用sp name.txt打开另一个文件)
  • Ctrl+D:向下卷动半页
  • Ctrl+U:向上卷动半页
  • Ctrl+F:向下卷动一页
  • Ctrl+B:向上卷动一页
  • :nuber:移动到文件Number行
  • :$移动到文件的最后一行
  • x删除光标所在的字符
  • X删除光标所在的前一个字符
  • D删除从光标到该行结束的字符
  • d^删除从行开始到光标所在的字符
  • dd删除本行
  • ndd删除从光标所在处算起的地n行
  • dnw删除从光标所在算起的第n个字符
  • i变成插入模式,并且从光标所在处插入
  • I变成插入模式,从光标所在处行首插入
  • a变成输入模式,在光标处之后插入
  • A变成输入模式,在该行最后之处插入
  • o光标处新增一行,并且变成输入模式
  • O光标上方新增一行,变成输入模式
  • /text向前寻找txt单词
  • ?text先后寻找txt单词
  • [1,3]s/from/to[g]从1-3行(如果是$则表示整个文件)将from取代为to
  • u恢复之前的改变
  • U恢复光标所在行的改变

命令和参数顺序的说明

  • 命令的参数顺序是可以混淆的,甚至可以合并起来,如-a -v可以写成-av。但是如果-a 后面指定了要接的文件或者特殊对象,则不能任意改变其顺序。
  • “|”是管道的意思,他会把之前命令的结果输入给后面的命令。如:ls | grep aa。
  • ‘>’与’>>’(导向)它表示的是将命令的运行结果输出到命令的文件中,如ls>temp.txt,>和>>的区别在于,前者是追加,后者是覆盖。
  • 许多命令在运行后,会进入该命令的操作模式,在进入后,必须使用该命令中的命令,才会有效,要想退出,可以输入exit、q、quit或者ctrl+c组合键。

Linxu基础命令详解

  1. ls命令:-a 显示所有文件 -l显示详细信息(会列出文件权限权限、修改日期、大小等) -d 查看目录属性 -h人性化显示文件 -i显示inode(i节点号)。
    一般情况下,文件详细信息如下:
    -rw-r–r-. 1 root root 2066 Jun 28 17:57 original-ks.cfg
    最开始部分为文件读写权限,,每三位为一组,分别代表文件权限r(读) w(写) x(执行),如果没有这个权限,就用‘-’号代替
    第一个‘-’号代表这是一个一般文件,如果是d则是目录,l是软链接
    第一个rw(u)代表所有者的读写权限,第二个是所属组 (g)的读写权限 第三个r是其他人(o)的读写权限。两个root分别是所属用户和所属用户组,显示的日期是修改的日期。
    .xxx文件是隐藏文件
  2. mkdir:创建目录,其中-p是递归创建(比如说我们mkdir d1/d2在d1目录下创建d2,如果d1不存在,则他可以递归创建d1,不用-p就会提示出错)
  3. cd:进入某个目录。其中~是进入当前用户的家目录,‘-’进入上次进入的目录,cd ‘..’进入上一级目录 cd ‘.’进入当前目录。
  4. 4.

Linux常用命令

  • 我们可以使用alias命令来为某个命令取一个别名,如我们使用ls -l命令是列出文件信息的详情,如果想更简单的使用,可以使用alias l=’ls -l’。那么以后我们使用l的时候,就会执行ls -l命令。
  • 我们可以使用alias -p来查看当前所有的别名,并且我们可以使用unalias name来删除之前设定的别名name。
  • 我们可以使用bg id来让id这个任务编号处于后台运行
  • cd /xx/xx切换到/xxx/xx目录中 cd ../切换到上级目录
  • declare宣告shell变量。
  • enable启动或者关闭shell的内建命令。enable -a 显示关闭的内建命令 enable -n cd关闭cd命令(cd命令就不能再使用了,如果想要添加回来,则使用enable cd)
  • export 宣告环境变量
  • fc修改或运行曾经运行的命令
  • fg将应用程序放到前景运行
  • help xxx显示xxx命令的帮助文档
  • history显示最近使用过的命令
  • jobs显示正在背景运行的工作
  • suspend -f强制停止当前使用的命令
  • ulimit用来控制系统资源的调用(如使用几核CPU,CPU最大占用时间、进程大小、端口大小等等)
  • cat输出文件(需要有阅读的权限)
  • chmod 改变文件权限(需要是文件的拥有者)
  • chown:改变文件或者目录的拥有者(需要是该文件的拥有者)
  • clear:清除画面
  • cp:复制文件(需要对文件有阅读的权限)
  • date 显示或者修改当前日期
  • df 显示文件系统的使用状况
  • du 统计磁盘上的文件大小,-b 以byte为单位统计文件 -k 以KB为单位统计文件 -m 以MB为单位统计文件 -h以2014进制最适合的单位统计文件 -H以1000进制为最适合单位统计文件 -s /path 统计指定目标
  • diff filename1.txt filename2.txt比较并显示文件的差异
  • du filename显示目录或文件的大小(需要有读写权限)
  • echo 输出文字
  • eject 弹出/接收光盘
  • find 搜索特定字符串的文件或者目录:find -name “*.txt”查找txt结尾的文件。
  • free内存使用状况
  • grep搜索文件中符合条件的字符串 grep后面接的是搜索正则表达式
  • halt 关闭系统(需要有管理员权限)
  • head输出文件内容最前面的部分
  • ifconfig显示网络界面
  • init初始化的过程控制
  • kill 传递信息给进程(传递消息、关闭、终止等)
  • last 显示曾经登录的用户
  • less 显示文件内容
  • ln 建立文件之间的链接,它类似于windows的超链接。创建一个链接:sudo ln -s 源文件 目标文件。删除一个链接:rm -rf **重点内容**symbolic_name
  • ls列出目录或者文件名
  • man显示联机帮助
  • mkdir dictoryname新增目录
  • more文件浏览工具
  • mount 挂载文件系统
  • mv 移动文件
  • metstat 查询网络的目前状况
  • nslookup 查询DNSserver
  • ping 传送ICMP echo的数据包
  • ps显示目前程序状态
  • Pwd显示当前所在目录
  • reboot重启
  • rm 删除文件
  • route 显示并设置路由
  • sort 将文件重新排序
  • ssh远程加密的连接
  • su 切换并取代该使用者的身份
  • tail显示文件最后面的部分
  • tar 压缩文件
  • telnet远程连机程序
  • top 显示目前的程序状态
  • touch 更改文件的时间标记
  • traceroute 追踪联机所经过的路由器
  • vi 文本编辑
  • w 显示当前用户登录的信息
  • who显示目前登录用户的信息

你可能感兴趣的:(操作系统)