Linux 的一些基本命令

本贴最后更新于 2288 天前,其中的信息可能已经物是人非

003 bash 手册

bash 手册

  • man mterm:查看在线手册

  • man -k keyWords:关键字搜索

  • 某些程序运行时你想让它中途结束,直接 ctrl+c 就可以了

浏览文件系统

  • info info:info 页面也可以查找相关命令信息

  • -help

  • cd /usr:进入目录

  • pwd:显示当前目录

文件和目录列表

  • 显示列表

    ls:显示当前目前下的文件和目录(按字母顺序)

    ls -F:区分目录和文件

    ls -a:显示全部文件和目录(包括隐藏目录和文件)

    ls -R:递归的显示当前目录下的文件和目录和包含的子目录中的文件

    ls -l:显示长列表

    ls -l 名称:过滤器显示。eg:ls -l my_script(全匹配)、ls -l my_scr?pt(?:表示一个任意字符)、ls -l my*(*:表示零个或多个字符)、ls -l my_scr[ai]pt([]:一个字符位置的多种可能)、ls -l f[!a]ll(!:排除)

    ls -d:只列出目录本身信息

处理文件

  • touch 文件名:创建文件(空文件)

  • cp source destination:复制

    参数 -i 强制询问是否复制
    参数 -R 递归复制整个目录的内容

  • ln -s 文件1 文件2:创建符号链接

  • mv 文件名1 文件名2:重命名
    mv 文件名1 文件夹:移动
    参数 -i 询问是否执行

  • rm 文件名:删除文件
    参数 -i
    参数 -f 强制删除,不受提示符打扰

处理目录

  • mkdir 目录名:创建目录
    mkdir -p New_Dir/Sub_Dir/Under_Dir:创建多个目录和子目录

  • rmdir 目录名:默认情况下只能删除空目录
    无参数 -i 询问是否删除
    rm -ri 非空目录:删除非空目录
    rm -rf 非空目录:一口气删除目录及其所有内容,无警告无提示

  • tree 目录:树形目录

查看文件内容

  • file my_file:检测文件类型

  • cat fileName:查看文件内容(显示全文)
    cat -n fileName:给所有行加上行号
    cat -b fileName:只给文本的行加行号
    cat -T fileName:用 ^I 替换文中制表符

  • more fileName:显示一页内容
    q 退出

  • less fileName:也是显示一页内容(more 升级版)

  • tail fileName:查看末尾十行
    tail -n number fileName:查看末尾几行(number)

  • head fileName:查看开头十行
    head -n fileName:查看开头几行

004 更多的 bash shell 命令

监测程序

  • ps:显示运行在当前控制台下的属于当前用户的进程(只显示某个特定时间点的信息)
    ps -A:显示所有进程
    ps -e:显示所有进程
    ps -f:显示完整格式的进程

  • top:实时显示进程信息

  • kill PID(进程id):结束进程

  • killall 进程名:结束进程(支持通配符,eg:killall http*

监测磁盘空间

  • mount:显示当前系统上挂载的设备列表
    mount -t type device directory:类型-设备位置-要挂载的位置,eg:mount -t /dev/sdb1 /media/disk

  • umount [directory | device]

  • df:查看所有已挂载磁盘的使用情况
    df -h:常用这个

  • du:显示某个特定目录(默认当前目录)的磁盘使用情况
    参数 -c:显示所有已解除文件总的大小
    参数 -h:单位换为 KMG
    参数 -s:显示每个输出参数的总计

处理数据文件

  • 排序
    sort file
    sort -n:把数字看成数字而不是字符排序
    sort -M:按月排序
    sort -t "指定字段分隔符" -k n(number指定字段)-n directory
    du -sh * | sort -nr:(|,管道符,将 du 命令的输出重定向到 sort 命令)

  • 搜索数据
    grep [options] pattern [file]:输出包含匹配模式的行(搜一个文件中的内容)
    参数 -v:反向搜索
    参数 -n:加上行号
    参数 -c:有多少行匹配
    参数 -e:匹配多个模式,eg:-e t -e f

  • 压缩数据
    gzip fileName:压缩文件(可匹配模式,多个文件同时压缩),输出 fileName.gz
    gzcat fileName:查看压缩过的文本文件的内容
    gunzip fileName:解压文件

  • 归档数据
    tar function [options] object1 object2 ...
    tar -zxvf fileName.tgz:最常用,解压 gzip 压缩过得 tar 文件
    tar -cvf test.tar test1/ test2/:创建名为 test.tar 的归档文件,含有 test1 和 test2 目录内容
    tar -tf test.tar:列出 tar 文件 test.tar 的内容(但不提取)
    tar -xvf test.tar:从 test.tar 中提取内容

007 理解 Linux 文件权限

Linux 的安全性

  • cat /etc/passwd:查看系统用户有关信息(用户名、密码、UID、GID、备注、HOME 目录位置、默认 shell)

  • cat /etc/shadow:查看每个账户的密码信息(登录名、密码、密码上次修改后天数、多少天后可改密、多少天后必须改密、密码过期前多少天提醒改密、过期多少天后禁用、被禁日期、预留字段)

  • useradd:创建系统新用户
    useradd -m testUser:使用默认设置创建用户,并(-m 选项)创建 HOME 目录

  • userdel:删除用户
    userdel -r userName:删除用户的 HOME 目录以及邮件目录(还可能残存删除用户的其他文件)

  • 修改用户
    usermod:修改用户账户的字段
    参数 -l:修改登录名
    参数 -L:锁定用户,使其无法登录
    参数 -U:解除锁定
    参数 -p:修改密码

    passwd:修改已有用户的密码
    参数 -e:强制用户下次登录时修改密码

    chpasswd:从文件中读取登录名密码对,并更新密码
    eg:chpasswd < users.txt(用户名和密码对,用冒号分隔)列表

    chage:修改密码的过期日期
    chfn:修改备注
    chsh:修改用户登录默认 shell

使用 Linux 组

  • cat /etc/group:查看组信息(组名、组密码、GID、该组用户列表)

  • groupadd groupName:创建新组(空组)

  • usermod -G groupName userName:添加用户到组内
    usermod -g groupName userName:添加到组内,同时设置为用户的默认组

  • proupmod -n newGroupName oldGroupName:修改组名
    参数 -g :修改组 GID

  • gpasswd -d userName groupName:删除组员

理解文件权限

  • umask:显示新建文件默认权限(文件为 666-umask,目录为 777-umask)
    umask 026:设置文件默认权限

改变安全性设置

  • chmod 760 newfile:改变文件权限

  • chown options owner[.group] file:更改文件属主

009 安装软件程序

基于 Debian 系统(eg:Ubuntu)

dpkg 命令是基于 Debian 系 PMS 工具的核心,其他工具还有:

  • apt-get

  • apt-cache

  • aptitude(主要)

  • 使用 aptitude 管理软件包
    aptitude:查看系统已安装的软件信息列表(q 退出)
    aptitude show package_name:查看某个软件包的详细信息
    dpkg -L package_name:查看更某个软件包相关的所有文件列表
    dpkg --search absolute_file_name:查找某个特定文件术语哪个软件包

  • 用 aptitude 安装软件包
    aptitude search package_name:查找特定的软件包(自动通配符适配,包名前的 i 表示已安装,pv 说明可用未安装)
    aptitude install package_name:安装软件包(会自动安装相关依赖库和软件包)

  • 用 aptitude 更新软件
    aptitude safe-upgrade:自动将所有已安装的包更新到软件仓库最新版本

  • 用 aptitude 卸载软件
    aptitude remove package_name:只卸载软件而不删除数据和配置文件(重新用 aptitude search 查看,包前显示 c
    aptitude purge package_name:卸载同时删除数据和配置文件(重新用 aptitude search 查看,包前显示 p

基于 Red Hat 的系统(eg:Centos)

常见工具:

  • yum:(主要)在 Red Hat 和 Fedora 中使用
  • urpm:在 Mandriva 中使用
  • zypper:在 openSUSE 中使用

这些前端都是基于 rpm 命令行工具的。

  • 列出已安装包
    yum list installed:列表冗长(不易阅读)
    yum list installed > installed_software:把安装列表重定向到文件 installed_sofrware
    yum list package_name:查看软件包的详细信息
    yum list installed package_name:查看是否安装某个软件包
    yum provides file_name:查看某个文件属于哪个软件包

  • 用 yum 安装软件
    yum install package_name:安装某个软件

  • 用 yum 更新软件
    yum list updates:列出所有已安装包的可用更新
    yum update package_name:更新某个软件包
    yum update:更新所有软件包

  • 用 yum 卸载软件
    yum remove package_name:只卸载软件包,保留配置文件和数据文件
    yum erase package_name:删除软件和它所有的文件

  • 处理损坏的包依赖关系
    yum clean all,再 yum update。清理放错位置的文件,更新全部安装文件。
    yum deplist package_name:查询软件包的所有的库依赖关系以及什么软件可以提供这些库的依赖关系
    yum update --skip-broken:忽略依赖关系损坏的包,更新其他软件包

从源码安装

  • 从官网下载软件的 package_name.tar.gz 包
  • tar -zxvf package_name.tar.gz:解压 tar.gz 包
  • cd package_name/:进入 package_name 目录中
  • cat README/AAAREADME:查看软件包安装须知,进行软件设置
  • make:如上一步没有出错,则用 make 命令来构建各种二进制文件
  • make install:安装到 Linux 系统常用位置完成安装

END

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    939 引用 • 940 回帖
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖 • 5 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    122 引用 • 73 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...