zoukankan      html  css  js  c++  java
  • linux基本命令

    Linux基本命令。

    Linux是严格区分大小写

    命令的分类:

    内部命令 Shell在内部代码中实现的命令

    man type 查看bash Shell自带的命令

    外部命令 Shell以外的命令

    用type命令查看内部命令还是外部命令

    type cd 提示cd is a shell builtin则说明是内部命令

    type mount 提示mount is /bin/bash 告诉外部命令的位置

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

    帮助命令

    man 注重于应用,也是最常用的帮助方法

    man 的帮助文档存放的位置

    /usr/share/man

    man 的帮助文档分类

    1 普通用户命令

    系统核心调用的函数工具

    3 常用的一些函数与函数库

    4 设备文件的说明

    5 配置文件与一些其它格式的文件

    6 游戏相关

    7 网络协议相关

    8 管理员可操作的命令

    9 系统内核相关的文件

    在 man 帮助里:

    /c 搜索c关键字

    n 下一个关键字

    N 上一个关键字

    q 退出

    info 注重于介绍,不常用

    帮助文档存放位置

    /usr/share/info

    进入帮助界面

    ? info命令帮助

    空格键 向下翻一页

    tab 在结点之间移动,有结点的地方通常会以*显示,将光标移动结点位置按回车可进入结点

    b 移动光标到该文章的第一个结点处

    e 移动光标到该文章的最后一个结点处

    n 前往下一个info页

    p 前往上一个info页

    u 向上移动一层

    s(/) 在info里搜索

    h 显示帮助菜单

    q 退出

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

    目录命令

    pwd 查看当前所在目录的路径

    cd 切换当前所在目录

    绝对路径

    cd /root/Desktop 指从根目录开始的路径

    相对路径

    cd root/ 指以当前目录开始的路径

    . 代表当前所在目录

    .. 代表当前的父目录

    - 代表上一次所在的目录

    ~ 代表当前登录用户的家目录

    mkdir 创建一个目录

    mkdir test 在当前目录下创建test目录

    mkdir /tmp/test 在根目录下tmp目录里创建test目录

    mkdir file{1..100} 在当前目录下创建file1到file100的目录,这里会创建100个目录

    mkdir "file{1..100}" 在当前目录下创建file{1..100}目录,这里只创建一个目录

    mkdir -p a/b/c 在当前目录下创建a/b/c目录树

    rmdir 只能删除空目录

    rmdir test 删除当前目录的test目录,test必须是空目录

    rmdir /tmp/test 删除/tmp下的test目录

    rmdir file{1..100} 删除file1到file100的目录

    rmdir "file{1..100}" 删除file{1..100}目录

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

    文件命令

    ls 列出当前文件夹下的所有文件

    ls -a 列出当前目录下所有文件,包含隐藏文件

    ls -l 以详细列表形式列出当前目录下的所有文件

    ls -R 列出当前目录所有文件,包含子目录内所有文件

    drwxr-xr-x 1 root root 2062 2011-01-04 file1

    文件类型和文件权限 文件的硬链接数 文件所属用户 文件所属用户组 文件大小 文件的最后修改日期 文件名

    文件类型:

    c 字符设备

    b 块设备

    l 符号链接

    s socket文件

    p 管道文件

    d 文件夹

    - 普通文件

    常用搭配:

    ls -al 显示所有文件包括隐藏文件列表

    ls -lt 显示按日期时间排序后的文件列表

    ls -lh 显示计算大小为KB为单位的文件列表

    ls -dl 显示文件夹详细列表

    touch 新建文件

    touch file 创建file空文件,如果file存在则更新file的存取和修改时间

    touch -c file 如果file不存在,则不创建文件

    touch -r file1 file 更新file时间和file1相同

    touch -a file 更新file的存取时间

    touch -m file 更新file的修改时间

    touch file{2,3,4} 同时创建file2,file3,file4三个空文件

    touch "file{2,3,4}" 创建file{2,3,4}一个空文件

    cp 复制文件

    cp file dirs/ 把file文件复制到dirs目录下

    cp -r dir1/ dir2/ 把dir1目录复制到dir2目录下

    cp -a file dirs/ 把file文件复制到dirs目录下,保留文件的原来属性

    cp -rf dir1/ dir2/ 强制复制文件夹,不提示

    cp -rvf dir1/ dir2/ 把dir1目录复制到dir2目录下,并且显示复制过程

    mv 移动和重命名文件

    mv file dirs/ 把file文件移动到dirs目录下

    mv file file2 把file文件重命名为file2

    mv -u dir1/* dir2/ 把dir1目录下所有文件移动到dir2目录下,并且根据文件时间来决定要不要移动

    rename 批量文件重命名

    rename .conf .html *.conf 把所有后缀以.conf的文件名里出现.conf就改成.html

    rm 删除文件

    rm file* 删除所有file打头的文件

    rm -i file* 提示是否确定删除

    rm -f file* 不提示,强行删除

    rm -r dir2 删除目录

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

    文件阅读命令

    cat 文件查看命令

    cat /etc/passwd 查看/etc/passwd内容

    cat -n /etc/passwd 查看/etc/passwd内容并且编号

    cat -b /etc/passwd 查看/etc/passwd内容并且给非空行编号

    more

    more /etc/passwd 逐屏查看/etc/passwd文件内容

    less

    less /etc/passwd 查看/etc/passwd文件内容,和more不同的是可以上下滚动

    head

    head /etc/passwd 查看/etc/passwd前10行内容

    head -n 30 /etc/passwd 查看/etc/passwd前30行内容

    tail

    tail /etc/passwd 查看/etc/passwd后10行内容

    tail -n 30 /etc/passwd 查看/etc/passwd后30行内容

    tail -f /etc/passwd 实时查看/etc/passwd文件内容

    重定向

    标准输入 代码 0 默认设备为键盘

    标准输出 代码 1 默认设备为屏幕

    错误输入 代码 2 默认设备为屏幕

    ls /etc/passwd > output.txt 标准正确输出重定向到output.txt

    ls /etc/shadow >> output.txt 标准正确输出追加重定向到output.txt

    ls dddddd 2> error.txt 标准错误输出重定向到error.txt

    ls dddddd 2> /dev/null 标准错误输出重定向到黑洞

    ls ddddd /etc/passwd &> /dev/null 标准正确输出标准错误输出全都重定向到黑洞

    管道

    cat /etc/passwd | less |之前的命令执行的结果做|后命令的参数

    ==========================================

    用户管理

    用户分类

    管理员 user id一定为0,务必唯一

    系统用户 伪用户,user id 1-499,默认是不允许登录系统,用于给予某些服务运行时候所用的身份

    普通用户 user id 500-60000, 通过手工或都命令建立起来的用户,默认可以进行登录系统

    用户管理

    用户相关配置文件

    /etc/passwd

    /etc/shadow

    vim /etc/passwd

    第一列:用户名

    第二列:密码 x代表密码存放在/etc/shadow里,如果去掉x就代表此用户没有密码

    第三列:uid 用户ID值操作系统是不认识用户名,只认uid

    第三列:gid,用户组的ID

    第五列:描述项

    第六列:指定家目录

    第七列:指定bash

    vim /etc/shadow

    第一列:用户名

    第二列:真实的密码,经过加密的,以*或都!号开头的不能登录

    第三列:上一次修改密码的时间,linux以1970年1月1日到现在的天数来算的

    第四列:修改密码后几天内不允许再修改, 0代表不限制

    第五列:多少天内必须修改密码,99999代表不限制

    第六列:过期前几天给你一个警告信息

    第七列:密码过期后的一个宽限时间

    第八列:这里可以写一个实际的账号过期天数,也是以1970年1月1日到现在来算的,多用于收费系统

    第九列:保留,留着以后功能扩展

    用户命令相关配置文件,保存useradd命令创建用户使用的默认值

    /etc/default/useradd

    /etc/login.defs

    用户相关命令

    useradd/adduser

    userdel/deluser

    usermod

    passwd

    useradd a 创建一a用户

    useradd -g kyo a 新建a用户并且把a用户添加进kyo用户组

    userdel a 删除a用户

    userdel -r a 删除a用户并且删除a的家目录和邮件目录

    passwd a 修改a用户密码

    passwd -l a 临时关闭用户,或修改/etc/shadow第二个字段加*

    passwd -u a 释放临时关闭用户

    usermod 修改用户信息

    -u 修改UID

    -g 修改GID

    -d 指它家目录

    -s 指用bash

    usermod -G kyo a 把a用户添加进kyo用户组

    用户信息相关的命令

    chfn 修改一个用户相关的信息

    finger 查看一个用户相关的信息

    组管理

    相关配置文件

    /etc/group

    /etc/gshadow

    vim /etc/group

    第一列:组名

    第二列:密码,x代表密码在/etc/gshadow

    第三列:gid

    第四列:代表属于这个组的用户名

    vim /etc/gshadow

    第一列:组名

    第二列:密码

    第三列:组管理员

    第四列:组成员

    相关命令

    groupadd 添加一新用户组

    groupdel 删除一用户组

    groupmod 修改用户组信息

    gpasswd 修改用户组密码

    gpasswd -a a root 把a用户放进root用户组

    gpasswd -A a root 把a用户放进root用户组并当管理员

    gpasswd -d a root 把a用户从root用户组里删除

    newgrp root 把当前用户临时添加进root用户组,重新登录失效

    id 显示用户的ID和组ID

    用户身份切换

    su - a 完全切换,不继承上一个用户的环境变量,即sbin目录下的命令用不了

    su a 不完全切换,继承上一个用户的环境变量,可以用sbin目录下的命令

    手工创建用户

    第一步:在/etc/passwd添加一行信息

    bean:x:534:603::/home/bean:/bin/bash

    第二步:在/etc/shadow添加一行信息

    grub-md5-crypt 创建md5密码,把密码替换下面两个!!位置

    bean:!!:15035:0:99999:7:3::

    第三步:在/etc/group添加组的信息

    bean:x:603:

    第四步:在/etc/gshadow添加组的密码信息

    bean:!::

    第五步:创建家目录

    mkdir /home/bean

    第六步:把用户的环境变量文件复制到家目录

    cp /etc/skel/.bash* /home/bean

    chown bean:bean /home/bean/ -R

    chmod 700 /home/bean/ -R

    第七步:创建用户的邮件文件

    touch /var/mail/bean

    chown bean:bean /var/mail/bean

    chmod 660 /var/mail/bean

    ================================================================================

    Linux权限

    ls -l

    - rw- r-- r-- 1 root root 4383 2011-03-01 01:37 readme.txt

    所属用户权限u 所属用户组权限g 其它人权限o

    r read 读权限

    针对文件夹,具有r权限,就代表具有对这个文件夹进行列表的权限

    针对文件,具有r权限,就代表具有读取这个文件的内容的权限

    w write 写权限

    针对文件夹,具有w权限,代表具有他能在此文件夹里创建修改等操作

    针对文件,具有w权限,代表具有修改此文件内容的权限

    x execute 执行权限

    针对文件夹,具有x权限,代表可以切换到此文件夹

    针对文件,具有x权限,代表可以运行它,文件必须是可执行或脚本等

    二进制转八进制:

    000 0 ---

    001 1 --x

    010 2 -w-

    011 3 -wx

    100 4 r--

    101 5 r-x

    110 6 rw-

    111 7 rwx

    rwx, r-x, r-x

    7 5 5

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

    chmod 修改权限的命令

    chmod u+x,g+r,o-r file 修改file文件用户权限加上可执行权限,用户组也加上读权限,其它用户减去读权限

    chmod u=rwx,g=rw,o=r file 修改file文件用户权限为可读可写可执行,用户组为可读可写权限,其它用户为读权限

    chmod 755 file 修改file文件用户权限为可读可写可执行权限,用户组为可读可执行权限,其它用户也为可读可执行权限

    chmod 755 dirs -R 修改dirs目录里所有文件的用户权限为可读可写可执行权限,用户组为可读写执行权限,其它用户也为可读可执行权限

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

    chown 修改文件用户所属

    chown tom file 修改file文件所属用户为tom

    chown tom:jack file 修改file文件的所属用户为tom,所属用户组为jack

    chmod jack.root dirs -R 修改dirs目录里所有文件所属用户为jack,所属用户组为root

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

    umask 默认创建文件或文件夹权限掩码

    管理员默认umask为022

    普通用户默认umask为002

    默认创建文件夹权限是777,而掩码设置为022,则要减去掩码,默认创建文件夹权限则变成755

    默认创建文件权限是666,而掩码设置为022,则减去掩码,默认创建文件权限为644

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

    特权位 针对命令文件,设定setuid、setgid

    针对命令文件设定setuid、setgid

    没加特权位之前,命令运行的时候所采用的身份是运行者的身份

    添加了特权位之后,命令运行的时候采用的身份不再是运行者的身份,而是命令本身的所属者

    例:passwd touch

    针对目录设定setgid

    设定了组的特权位后,在该文件夹下创建子文件或子目录,它们自动继承文件夹的所属组的身份,子目录会继承目录的特权位

    chmod u+s/g+s file 给file设置特权位

    chmod u-s/g-s file 给file取消特权位

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

    粘贴位 防止其它用户删除文件,针对其它用户,管理员和本人可以删除,针对目录有效,文件没有用

    chmod o+t dirs 给dirs目录设置粘贴位

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

    文件特殊属性

    lsattr 查看文件特殊属性

    chattr 添加或修改文件特殊属性

    chattr +i file 添加i属性,管理员也不得更改

    chattr +a file 只能追加内容,不得修改内容,如果有i属性,先取消才能加a属性

    chattr -i/-a file 取消文件特殊属性

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

    系统基本命令

    file 查看文件类型

    uname 查看系统基本信息

    -r 内核版本

    -s 什么内核

    -o 什么操作系统

    -n 什么发行版

    -m 什么平台

    -a 查看所有信息

    cal 打印日历

    cal 2005 打印2005年日历

    bc 支持超大数的文本计算器

    quit 退出

    date 时间日期命令

    +%Y 年

    +%m 月

    +%d 日

    +%H 小时

    +%M 分

    +%S 秒

    ......

    echo 打印字符串

    -n 不换行

    -e 支持 等

    shutdown -r 重启

    suutdown -c 取消计划中的关机或重启

    shutdown -p 直接关闭电源

    shutdown -h 关机

    shutdown -h 30 "30秒后就要关机" 计划关机并给所有终端提示

    init 改变系统运行级别

    0 关机

    1 单用户模式,没有用户和密码验证

    2 不带网络的文本模式

    3 带网络的文本模式

    4 保留

    5 带图形界面的模式

    6 重启电脑

    runlevel 查看当前运行级别

    sync 同步磁盘

    cat /etc/issue 查看linux系统发行版本信息

    w 更详细的显示在线情况

    21:55:44 up 1:49, 5 users, load average: 0.38, 0.35, 0.23

    USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

    root tty7 :0 20:06 1:49m 1:52 0.12s gnome-session

    root pts/2 :0.0 20:24 33.00s 0.10s 0.10s bash

    root pts/3 :0.0 21:37 11:18 0.02s 0.02s bash

    用户名 登录终端 从哪里登录过来 登录时间

    踢掉一个远程登录过来的用户

    ps -aux | grep pts/5 pts/5是远程登录的终端,查看终端对应的PID

    kill -9 3236 3236是上面查到的pts/5的PID

    命令类别:

    内部命令 集成于SHELL程序的命令

    外部命令 独立可执行文件的命令

    区别方法:

    which 命令

    如果有路径代表外部命令,找不到则代表内部命令

    type 命令

    如果结果显示is a shell builtin代表是内部命令,否则为外部命令

    帮助命令:

    man 外部命令

    获取外部命令的帮助信息

    q 退出 h 获取man手册帮助信息

    man手册分1 ~ 8的章节

    1 基本命令帮助信息

    2 系统调用函数帮助信息

    3 标准库函数帮助信息

    5 配置文件帮助信息

    8 系统管理员命令帮助信息

    help 内部命令

    获取内部命令的帮助信息

    文件操作命令: rm mv cp touch vim gedit

    目录相关命令: cd pwd mkdir rm ls

    文件阅读命令: head tail cat more less

    head 查看指定文件头部行数内容

    head -n 5 file

    列出文件前5行内容

    tail 查看指定文件尾部行数内容

    cat 查看文件所有内容

    more 一行一行查看文件内容

    q 结束查看

    enter 查看下一行

    less 可控性更强的查看文件命令

    bash SHELL提供:

    重定向

    0 标准输入

    1 标准输出

    2 错误输出

    输出重定向: > 1> 2> >> 1>> 2>>

    输入重定向: < <<

    管道 |

    把|前面的命令的输出给后面命令进行解析

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

    用户管理 (用户为了权限存在)

    超级管理员 root 0

    系统用户 1 - 499 / 999 用于系统服务的用户

    普通用户 500 / 1000 以上

    用户相关配置(超级管理员才可以修改):

    /etc/passwd 用户信息

    /etc/shadow 用户密码信息

    /etc/group 用户组信息

    /etc/gshadow 用户组密码信息

    用户相关命令:

    id 获取当前登录用户信息

    su 切换用户

    useradd/adduser 添加用户

    userdel 删除用户

    默认不删除用户家目录,-r会删除家目录

    userdel -r 用户名

    passwd 修改用户密码

    权限:

    查看文件详细信息

    ls -l 文件

    -rw-rw-r--. 1 kyo kyo 4633 2月 16 11:18 env.txt

    -rw-rw-r-- 文件类型及权限

    1 硬链接数

    kyo 属用户

    kyo 所属用户组

    4633 文件大小(字节)

    2月 16 11:18 最后修改时间

    env.txt 文件名

    -rw-rw-r-- 文件类型及权限

    第一个字符代表文件类型

    - 普通文件

    d 目录

    l 软链接

    p 管道文件

    s 套接字文件

    c 字符设备文件

    b 块设备文件

    后九个字符代表权限(三个字符为一段)

    rw- (u)所属用户对此文件的操作权限

    rw- (g)所属用户组对此文件的操作权限

    r-- (o)其它用户对此文件的操作权限

    r 读

    针对文件, 有r才能对此文件读取内容

    针对目录, 有r才能列表目录里内容

    w 写

    针对文件,有w才能对此文件进行编辑

    针对目录, 有w才能才能到此目录里创建或删除文件或子目录

    x 可执行

    针对文件,有x才能运行文件

    针对目录,有x才能切换进去(cd切换不进去)

    修改权限: chmod

    chmod u=rwx,g=r--,o=--- file

    chmod u+x,g-w,o+r file

    权限的数字表示方式(八进制)

    --- 000 0

    --x 001 1

    -w- 010 2

    -wx 011 3

    r-- 100 4

    r-x 101 5

    rw- 110 6

    rwx 111 7

    chmod 755 目录/ -R

    将目录及目录里所有文件都修改权限为755

    修改所属用户及组: chown

    chown 用户名:用户组 file -R

    粘贴位(只针对其它用户对文件夹设置权限 setVTX)

    作用: 防止其它用户删除

    chmod 777 目录/

    chmod o+t 目录/

    用户只能删除自己的东西

    ls查看粘贴位: 目录如果有执行权限显示t, 否则显示T

    特权位(setuid setgid)

    只能给所属用户与所属用户组设置

    默认可执行文件运行的权限为当前登录用户

    有了特权位可执行文件运行的权限为文件的所属用户

    用户特权:

    chmod u+s 可执行文件

    用户组特权:

    chmod g+s 可执行文件

    文件特殊属性:

    lsattr 查看文件的特殊属性

    chattr 修改文件的特殊属性

  • 相关阅读:
    表的转置 行转列: DECODE(Oracle) 和 CASE WHEN 的异同点
    Sql中EXISTS与IN的使用及效率
    Oracle学习之start with...connect by子句的用法
    Java复制、移动和删除文件
    简单的实现微信获取openid
    SQL语句中LEFT JOIN、JOIN、INNER JOIN、RIGHT JOIN的区别?
    java 基础最全网站
    SpringBoot(十一)过滤器和拦截器
    做项目遇到的问题集锦
    使用Java实现二叉树的添加,删除,获取以及遍历
  • 原文地址:https://www.cnblogs.com/longBig/p/6817219.html
Copyright © 2011-2022 走看看