Linux

作者: 今有所思 | 来源:发表于2018-09-07 15:49 被阅读8次

    帮助文档

    • man + 指令 显示该指令的帮助文档

    man page说明后面的数字中,1代表一般账号可用命令,8代表系统管理员常用命令,5代表系统配置文件格式。

    进入man命令的功能后,你可以按下『空格键』往下翻页,可以按下『 q 』按键来离开man的环境。

    切换用户

    • su用于用户之间的切换。
      • su命令不加参数,默认切到root用户,需要输入root用户密码进行验证
      • su命令可以加一个“-”再加上用户名,此时,不但身份变化了,同时也拥有了此用户的“用户环境”
    • sudo用于普通用户可以使用root权限来执行指定命令。
      • u username/#uid不加此参数,代表要以root的身份执行指令,而加了此参数,可以以username的身份执行指令(#uid为该username的使用者号码)
      • 执行sudo -u <用户名> <命令>, 将允许当前用户,提权到<用户名>的身份,再执行后面的<命令>, 即使<命令>原本需要root权限。

    su 命令与 su - 命令之间有什么区别呢?

    前者在切换到 root 用户之后仍然保持旧的(或者说原始用户的)环境,而后者则是创建一个新的环境(由 root 用户 ~/.bashrc 文件所设置的环境),相当于使用 root 用户正常登录(从登录屏幕登录)。

    Mac只能使用sudo su命令

    终端利用ssh登录远程服务器

    其他命令

    • 显示日期与时间的命令: date

    • 显示日历的命令: cal(calendar) cal [month] [year]

    • 简单好用的计算器: bc
      quit <==离开 bc 这个计算器

    • who命令用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。

    • clear 清屏

    • last 查看最近的登录历史记录

    • [Tab]按键
      『命令补全』与『文件补齐』

    • [Ctrl]-c 按键
      中断目前程序

    • [Ctrl]-d 按键 直接离开文字接口(相当于输入exit啊!)。

    • history 查看历史命令

      history 10 显示最近10条命令

    • ping 用来测试主机之间网络的连通性

    • exit 退出shell

    • 将数据同步写入硬盘中的命令: sync

    • 惯用的关机命令: shutdown

    • 重新启动,关机: reboot, halt, poweroff

    在终端机环境中,可依据提示字符为$或#判断为一般账号或root账号;

    取得终端机支持的语系数据可下达『echo $LANG』或『locale』命令

    文件属性与权限

    • chgrp 改变文件所属群组
    • chown 改变文件拥有者
    • chmod 改变文件的权限

    目录

    在 Linux 或 Unix 操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。

    文件系统的最顶层是由根目录开始的,系统使用 / 来表示根目录。在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含子目录文件。如此反复就可以构成一个庞大的文件系统。

    在Linux文件系统中有两个特殊的目录,一个用户所在的工作目录,也叫当前目录,可以使用一个点 . 来表示;另一个是当前目录的上一级目录,也叫父目录,可以使用两个点 .. 来表示。

    • . :代表当前的目录,也可以使用 ./ 来表示;
    • .. :代表上一层目录,也可以 ../ 来代表。
      如果一个目录或文件名以一个点 . 开始,表示这个目录或文件是一个隐藏目录或文件(如:.bashrc)。即以默认方式查找时,不显示该目录或文件。

    绝对路径和相对路径

    绝对路径

    由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc;

    相对路径

    相对于目前路径的文件名写法。 例如 ./home/dmtsai等等。反正开头不是 / 就属于相对路径的写法。

    而你必须要了解,相对路径是以你当前所在路径的相对位置来表示的。举例来说,你目前在 /home 这个目录下, 如果想要进入 /var/log 这个目录时,可以怎么写呢?

    cd /var/log (absolute)
    
    cd ../var/log (relative)
    

    . :代表当前的目录,也可以使用 ./ 来表示;

    .. :代表上一层目录,也可以 ../ 来代表。

    实例1:如何先进入/var/spool/mail/目录,再进入到/var/spool/cron/目录内?

    命令:

    cd /var/spool/mail
    
    cd ../cron
    
    

    实例2:网络文件常常提到类似./run.sh之类的数据,这个指令的意义为何?

    说明:

    由于指令的执行需要变量的支持,若你的执行文件放置在本目录,并且本目录并非正规的执行文件目录(/bin, /usr/bin等为正规),此时要执行指令就得要严格指定该执行档。./代表本目录的意思,所以./run.sh代表执行本目录下, 名为run.sh的文件。

    处理目录的常用命令

    • ls: 列出目录

    ls filename 列出指定目录下的文件或目录

    -a 列出目录下的所有文件,包括以 . 开头的隐含文件
    -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
    

    ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。

    • cd:切换目录
    #使用 mkdir 命令创建 runoob 目录
    [root@www ~]# mkdir runoob
    
    #使用绝对路径切换到 runoob 目录
    [root@www ~]# cd /root/runoob/
    
    #使用相对路径切换到 runoob 目录
    [root@www ~]# cd ./runoob/
    
    # 表示回到自己的家目录,亦即是 /root 这个目录
    [root@www runoob]# cd ~
    
    # 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
    [root@www ~]# cd ..
    
    cd - 回到先前的目录
    

    . 代表此层目录
    .. 代表上一层目录

    •     代表前一个工作目录
      

    ~ 代表『目前使用者身份』所在的家目录
    ~account 代表 account 这个使用者的家目录(account是个帐号名称)

    • pwd:显示目前的目录

    • mkdir:创建一个新的目录

    -p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
    
    
    #递归创建多个目录 
    mkdir -p test2/test22
    
    • rmdir:删除一个空的目录

    • rm: 移除文件或目录
      该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

     -r, -R   指示rm将参数中列出的全部目录和子目录均递归地删除。
    
    # 删除任何.log文件;删除前逐一询问确认
    rmr  -i *.log
    
    • mv
    # 文件改名
    mv  test.log test1.txt 讲test.log改为test1.txt
    rename 可以用来批量更改文件名
    # 移动文件
    mv test1.txt test3
    
    • touch: 新建文件

    • stat: 输出文件的相关信息

    文件内容查看

    Linux系统中使用以下命令来查看文件的内容:

    • cat 由第一行开始显示文件内容

    • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!

    • nl 显示的时候,顺道输出行号!

    • more 一页一页的显示文件内容

    • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!

    • head 只看头几行

    • tail 只看尾巴几行

    • 以二进制的方式读取文件内容

    • cat 用于连接文件并打印到标准输出设备上

    -n 或 --number:由 1 开始对所有输出的行数编号。
    

    把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:

    cat -n textfile1 > textfile2
    
    • tac 反向列示
      tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!
    • head
    #显示前20行
    head -n 20 /etc/man_db.conf
    
    • cp 复制文件或目录
      复制/etc/这个目录下所有内容到/tmp下面
    cp /etc/ /tmp
    
    • cmp 用于比较两个文件是否有差异
      当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有所差异,预设会标示出第一个不同之处的字符和列数编号。
    cmp prog.o.bak prog.o 
    
    • file 用于辨识文件类型。

    通过file指令,我们得以辨识该文件的类型。

    打包压缩

    打包:将一大堆文件或目录变成一个总的文件【tar命令】

    压缩:将一个大的文件通过一些压缩算法变成一个小文件【gzip,bzip2等】

    gzip是linux自带的压缩文件命令,它的压缩比大概能达到60%-70%,比zip的压缩比更高。使用gzip压缩默认会在文件后加上.gz后缀并将源文件删除。gunzip是解压缩命令。

    • gzip

    gzip * 把当前目录下的每个文件压缩成.gz文件
    -d或--decompress或----uncompress:解开压缩文件

    • gunzip 解压文件

    bzip2命令是.bz2文件的压缩程序。

    bzip2采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。

    • tar
      习惯上以.tar后缀代表tar包,用xxx.tar.gz或.tgz代表gzip压缩过的tar文件,用.tar.bz2代表bzip2压缩过的tar文件。
    #将img1和img2两个文件夹打包成img.tar,仅打包不压缩
    tar img.tar img1 img2
    
    #将img1和img2两个文件夹打包成img.tar.gz,打包后,以gzip压缩
    tar -zcvf img.tar.gz img1 img2
    
    #将img1和img2两个文件夹打包成img.tar.bz2,打包后,以bzip2来压缩
    tar -jcvf img.tar.bz2 img1 img2
    
    tar -xvf file.tar
    tar -zxvf file.tar.gz
    
    

    指令与文件的查找

    • which 指令名 查找可执行命令所在的路劲
    • whereis 指令名
    • find 用来在指定目录下查找文件
    将目前目录及其子目录下所有延伸档名是 c 的文件列出来。
    
    # find . -name "*.c"
    将目前目录其其下子目录中所有一般文件列出
    
    # find . -type f
    将目前目录及其子目录下所有最近 20 天内更新过的文件列出
    
    # find . -ctime -20
    

    文本搜索

    • grep
      强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

    磁盘管理

    Linux磁盘管理常用三个命令为df、du和fdisk。

    • df:列出文件系统的整体磁盘使用量
    • du:检查磁盘空间使用量
    • fdisk:用于磁盘分区

    内存管理

    • free

    Mac下

    • top -l 1 | head -n 10 | grep PhysMem

    相关文章

      网友评论

          本文标题:Linux

          本文链接:https://www.haomeiwen.com/subject/szpcgftx.html