linux操作系统基础命令大全

Linux的基本原则
1、由目的单一的小程序组成
2、一切皆文件,设备的访问入口也是文件
3、避免捕获用户接口,尽量不和用户交互
4、配置文件保存在纯文本格式,只要有一个文本编辑器,足以搞定所有的配置

终端

虚拟终端
默认有6个

ctrl + alt +f1/2/3/4/5/6

模拟终端

物理终端 控制台

GUI
默认有3个
Gnome: C
KDE: C++
XFace:轻量级

CLI command line interface

login:
登陆提示符
根据凭证来使用计算资源
大小写敏感;
root,超级用户

3A认证

认证 Authentication
授权 Authorization
审计 Audition(日志)

su (switch user)

su USERNAME     不切换用户环境
su - USERNAME   切换用户环境

passwd

密码复杂性规则;
    数字10^6
    字符数字36^6

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

基础命令

ls
列出,查看指定目录下的文件
-l
ll —> ls -l
-la
-h 做单位转换
-a 显示所有隐藏文件,包括.和..
-A 显示所有隐藏文件,不包括.和..
-d 显示目录本身的属性

pwd  print working directory  列出当前所在目录

rwx r-x r-x .
用户 所属组 其他人 扩展权限

文件类型
- 普通文件f
d 目录文件directory
l 符号链接文件link 软链接 快捷方式
b 块文件block 随机读,随机存的设备
c 字符设备character 顺序存取
s 套接字文件socket ip port
p 管道文件pipe

文件权限
rwx,st rwxrwxrwx. acl access control list
文件硬链接的次数 软连接/符号链接//快捷方式
文件所有者owner
文件所属组group
文件大小size,默认单位是字节,可以用h选项来自动调节单位
文件的时间戳timestamp,这里是mtime
访问时间 access
修改时间 modify,修改文件内容
改变 change,metadata,文件的属性等元数据,修改文件元数据
文件名

目录 是一个路径映射的文件,不是容器
路径 是从指定起始点到目的地所经过的位置
路径可以实现层次化文件管理,层次化结构可以实现快速追溯文件

文件系统 层次化文件管理机制就是文件系统
linux层次化文件结构,倒树状结构文件结构

默认目录 工作目录,working directory,current directory
FHS 文件系统层级结构标准,规定了目录的类型和文件存放类型

FHS 文件系统层级结构
/bin 可执行文件,binary,用户命令
/boot 系统启动相关的文件,如内核、initrd以及grub(bootloader)
/dev device,设备文件
设备文件
块设备 可实现随机访问的设备,如磁盘,按数据块访问
字符设备 线性访问的设备,如键盘,以字符为单位
问题?显示器是什么设备?
设备号 主设备号和次设备号
/etc 配置文件,纯文本文件的配置文件
/home 家目录,root用户的家目录不在/home目录
/lib library,库文件和内核模块文件
静态库
动态库 在windows中叫dll,在linux中叫so,shared object,
/lib/modules 内核模块文件
/lib64
/media 挂载点目录,通常挂载光盘,移动硬盘
/mnt 挂载点目录,通常挂载其他文件系统
什么是挂载点?光盘放进光驱后,必须要将设备关联到当前文件系统树上的某个节点上,才能进行访问,把某个设备和当前文件系统上某个目录进行关联的这个过程,叫做挂载。
/opt optional,可选的目录,其他应用程序的目录
/proc process,伪文件系统,该目录保存系统运行时内核的映射文件
/root root用户的家目录,在生产环境中不允许用root用户登录
/run 进程相关的数据
/sbin 管理员命令
/srv 系统服务相关数据
/sys 伪文件系统,跟硬件设备相关的属性映射文件,可以修改磁盘I/O调度
/tmp temp,临时文件目录
/usr universal shared read-only,全局只读共享对象,这里存放只读文件
Unix Software Resource
自身基本管理
/usr/bin
/usr/sbin
/usr/lib
第三方软件的,不是必须的
/usr/local
/usr/local/bin
/usr/local/sbin
/usr/local/lib
/var 可变化的文件存放的目录,如/var/log目录,/var/tmp mail
一定要熟悉,熟悉,再熟悉!!!!!!!!!!!么有注册表的概念,可直接复制文件在别的电脑上启动操作系统

ls命令不加选项和参数,执行后查看当前目录的文件,那么默认参数是什么?
    默认显示当前路径下的文件,那当前路径是哪个路径呢?

pwd 查看当前目录 print workding directory
linux使用“/”来表示根目录,windows用“\”反斜线来作为路径分隔符

cd change directory 切换目录
绝对路径 从根开始到目标的路径叫绝对路径
相对路径 相对当前目录开始到目标路径
~ 家目录
~USERNAME(root用户有权限) 直接切换到指定用户的家目录
- 在上一个目录和当前目录来回切换
.
..

type 查看命令类型
命令类型
内置命令 (shell内置) bash
外置命令,在文件系统的某个目录下,有个与命令名称相同的文件
区别:shell为了完成自我管理和基本的管理,不同的shell内置不同的命令,但是大部分都差不多
那命令怎么知道是那个路径下的命令呢?系统为了让用户在命令行快速方便地执行命令,用一种机制来实现,这种机制就叫做环境变量,
变量是什么?变量是命名的内存空间。
变量赋值
NAME=haha
变量声明的过程就是申请内存使用的过程
环境变量
定义当前用户工作环境属性的变量
PATH

hash 实现缓存管理 哈希
缓存,命中率相当高,在hash表中保存了执行过的所有的路径,当缓存很大时,一定比PATH查找速度快吗?

hash 命令哈希
-p /bin/ls haha 添加哈希表
-t ls 查看指定命令的哈希表
-d ls 删除指定命令的哈希表
-r 清空所有的hash表

alias 添加指定命令别名
alias 目标命令名称=’需要执行的命令串本身’
~/.bashrc

unalias 删除指定的命令别名

date 输出和更改日期时间
更改日期的格式 月日时分年.秒

date -s //设置当前时间,只有root权限才能设置,其他只能查看
date -s 20160813 //设置成20160813,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2016-08-13″ //这样可以设置全部时间
date -s “01:01:01 20160813″ //这样可以设置全部时间
date -s “2016-08-13 01:01:01″ //这样可以设置全部时间
date -s “20160813 01:01:01″ //这样可以设置全部时间

clock 查看时间

hwclock 查看硬件时间
-r or hwclock –show
-w or hwclock –systohc
-s or hwclock –hctosys

cal 查看日历,如果只有一个参数则表示年份,如果有两个则表示月份,年份
cal [参数][月份][年份]

-1 显示一个月的月历
-3 显示系统前一个月,当前月,下一个月的月历 
-s 显示星期天为一个星期的第一天,默认的格式 
-m 显示星期一为一个星期的第一天
-j 显示在当前年份中的第几天
-y 显示当前年份的日历

1752年9月为什么少了11天?

命令使用帮助
内部命令
help COMMAND
COMMAND –help/-h
外部命令
COMMAND –help
命令手册 manual
man COMMAND
man手册分段
NAME 命令名称及功能简要说明
SYNOPSIS 格式说明,用法说明,包括可用的选项
DESCRIPTION 命令功能的详尽说明,可能包括每一个选项的意义
OPTIONs 选项,说明每一个选项的意义
EXAMPLE 示例,举例说明
FILES 此命令相关的配置文件
AUTHOR 作者
REPORTING BUGS bug反馈
COPYRIGHT 版权
SEE ALSO 参见
man手册章节
从1到9哪个章节先出现就显示哪个,如man mount就显示第8章节,那如何知道命令有哪些章节呢?
用whatis read
举例man read,man 2 read,export LANG=en修改字符集
1 用户命令,/bin,/usr/bin,/usr/local/bin
2 系统调用,系统调用和命令有可能重名,但是不是一回事
3 库调用,只有库才有库调用
4 特殊文件,如设备文件,系统上的设备文件只是设备的访问入口,文件中不存储任何内容
5 文件格式,配置文件的格式说明,举例passwd
6 games,游戏,休闲益智类的游戏
7 杂项,不便归类的杂项,Miscellaneous
8 管理命令,/sbin,/usr/sbin,/usr/local/sbin
9 内核相关的文件

        手册符号说明
            []  可省略
            <>  必选
            ... 多选多
            {}  分组
        翻屏
            下翻      空格
            上翻      b
            下翻一行    回车
            上翻一行    k
        查找
            /KEYWORD    向后
                n   下一个
                N   前一个
            ?KEYWORD
                N   下一个
                n   上一个
        退出
            q
在线文档
    info COMMAND
本地文档
    /usr/share/doc
搜索引擎
    google,baidu
命令和服务的官方文档

文件命名规则
1、文件名不能超过255个字符
2、不能使用“/”来当文件名,为什么?/是用来做根的,也是用来做路径分隔符的
3、严格区分大小写
除此之外,没有限制

touch 默认三个时间都发生改变
-a 只改变access时间
-m 只改变modify时间
问题,为什么没有change时间呢?
-t 指定时间

元数据


mtime   modify time     内容被改变了
ctime   change time     元数据被改变
atime   access time     看了一下内容

stat 查看文件的详细信息

rm 删除文件,命令别名默认带-i,该选项用来提示用户进行交互。

-f  force,强行删除,不提示
-r  recursive,递归删除来删除目录
    问题?rm -rf /,该命令的执行效果是啥?

目录管理
mkdir
-p parent 父目录
-v verbose 详细信息

rmdir   只能删除空目录

练习题
1、创建目录
在/mnt下创建boot和sysroot目录
在/mnt/boot下创建grub目录
在/mnt/sysroot下创建proc,sys,bin,sbin,lib,usr,var,etc,dev,
home,root,tmp
在/mnt/sysroot/usr下创建bin,sbin,lib
在/mnt/sysroot/lib下创建modules
在/mnt/sysroot/var下创建run,log,lock
在/mnt/sysroot/etc下创建init.d

cp 复制命令
-r 复制目录
-p 复制的时候保留文件原有的属性,时间戳等信息
-a 归档复制,常用于备份

mv 移动文件
-i 提示
-f 强制覆盖
-t 先写目标,后写源

练习题
1、ls命令是否可以显示某个目录的整体大小,即包括其内部的所有文件的整体大小?
2、通过man手册来学习du命令

文本查看
cat 连接并显示文件到标准输出
-n 显示行号,行号只是行号,不是文件内容
不带任何选项时,从标准输入接收输出到标准输出

tac     按行逆序显示文件,同cat
more    支持向后翻,在没有翻到最后一屏时支持向前翻,空格/k/回车
less    前后翻,用法同man,man手册就是用less命令打开的
head    查看文件前n行,默认是10行
    -n  指定多少行
    -LINE NUMBER    直接用行数作为选项
tail    查看文件后n行,默认是10行
    -n  指定多少行
    -f  follow,查看文件后并不退出,滚动显示追加内容

重定向

把前面命令的输出 (覆盖)重定向到 后面的文件

把前面命令的输出 追加重定向到 后面的文件

文本处理
cut 文件切割,passwd文件
-d delimiter,指定分隔符,默认选项是空格
-f fields,指定字段
-f 1 显示第一字段
-f 1,3 显示第1,3字段
-f 1-3 显示第1到3字段

文本排序
sort 默认根据字符在ASCII码中的升序排序
-n
-r reverse,逆序排序
-t 指定字段分隔符
-k key,指定字段进行排序
-u unique,去重
-f 排序时忽略字符大小写

uniq    等同于sort -u,报告重复的行,注意,重复的行必须相邻
    -d  只显示重复的行
    -D  显示所有重复的行
    -c  显示重复行重复的次数

文本统计
wc word count,显示顺序为 行-单词数-字节数
-w 单词
-c 字节
-l(小写字母l) 行
-m 字符
-L 最长的一行有多少字符

输入输出重定向
命令行通配
变量

bash 用户接口
shell是离用户最近的程序,也是计算机和用户进行交互的程序
广义上的shell包含两类:
GUI Gnome,KDE,Xfce
CLI sh,csh,ksh,bash,tcsh,zsh
系统启动后,shell程序只有一个 ,但是shell进程却可以有很多,linux允许一个用户登录多次,在每个登陆进程看来,当前主机只存在内核和当前进程,以进程号识别进程,进程是程序的副本,进程是程序执行的实例,进程是有生命周期的。
shell自己是外部程序,但是shell有自己的内置命令
用户工作环境可以不一样
shell有子shell,对于父shell来说,子shell只是一个程序
特性:
1、命令行编辑
Ctrl+a 跳到命令行行首
Ctrl+e 跳到命令行行尾
Ctrl+d 向后删除,类似delete
Ctrl+u 删除光标至行首的内容
Ctrl+k 删除光标至行尾的内容
Ctrl+左右箭头, 在模拟终端中支持按单词跳转
Ctrl+l 清屏,等同于clear
Ctrl+c 取消执行当前命令

    2、命令历史
        history     命令历史管理
                命令历史文件为~/.bash_history
                命令历史大小由环境变量HISTSIZE来指定,默认为1000
                变量配置文件为/etc/profile
            -c  清空整个命令历史
            -d  删除指定命令历史
            -w  将缓冲区中的命令历史保存到命令历史文件

        使用技巧
            !n  执行命令历史中第n条命令
            !-n 执行命令历史中倒数第n个命令
            !!  执行上一条命令
            !KEY    执行最近一次以指定KEY开头的命令
            !$ 引用上一个命令中最后一个参数
            ESC+.   同上,多次按还可以切换
            ALT+.   同上,在远程终端无效?

    3、自动补全
        命令补全
            在PATH环境变量下搜索补全要输入的命令
        路径补全
            在输入的字符开始的路径下补全
        选项补全
            在输入命令之后,可以自动补全选项



    4、命令替换
        把命令中某个子命令替换为其执行结果
        $()
            echo "The current directory is $(pwd)."
            touch ./file$(date +%H-%M-%S).txt
        ``  
            echo "The current directory is `pwd`"
            echo 'The current directory is `pwd`'
        bash支持的引号
            ``  反引号,命令替换
            ""  双引号,弱引用,可以实现变量替换
            ‘’  强引用,不完成变量替换

查看帮助
    man bash

vim 重点中的重点

vim

插入模式
    a   光标后
    A   行尾
    o   光标所在行下一行
    O   光标所在行上一行
    i   光标前
    I   行首
    s   删除光标所在位置的字符并进入插入模式

命令模式
    d  删除
    dd 删除当前行
    dgg 删除光标到文档首
    dG  删除光标到文档尾部
    d$  删除光标到行尾,包括光标所在位置字符
    d^  删除光标到行首,不包括光标所在位置的字符
    dw  按单词删除
    gg  跳转到文档首部行首
    G   跳转到文档尾部行首
    u  撤销之前的操作
    Ctrl+r   重做
    行号G   跳转到指定行
    x   删除光标所在位置的内容

    行数yy  复制光标所在行开始第几行
    p   粘贴到光标所在行的下一行
    cc  剪切当前行
    行数cc    剪切当前行开始的几行
    H   跳转到当前屏幕输出的最上面一行
    L   跳转到当前屏幕输出的最下面一行
    M   跳转到当前屏幕输出的中间那一行
    $  行尾
    ^   行首
    w   按单词进行移动光标
    r   替换光标所在的字符
    h   往左按字符移动光标
    j   往下(后)按行移动光标
    k   往上(前)按行移动光标
    l   往右按字符移动光标

末行模式
    :w  保存
    :w FILENAME 另存为FILENAME
    :q  退出
    :wq 保存退出
    :q! 强制退出不保存
    :set nu   显示行号
    :r /FILENAME 读取指定文件的内容到当前文件
    :行号  跳转到指定行
    :set nonu  取消显示行号
    :%s/被替换内容/替换后的内容
    :%s/删除内容
    :%s/指定内容/替换成的内容/g   删除所有指定内容
    /   查找字符串
        n
        N
    :noh   取消高亮显示 

练习:
1、编辑/etc/ssh/sshd_config
130 UseDNS NO

systemctl restart sshd

2、编辑/etc/sysconfig/network-script/ifcfg-ens33

16 ONBOOT=yes

reboot

用户,组,权限

r 能读 w 能写 x 能执行
rwx rwx rwx .

所属者 所属组 其他人 扩展权限


权限的集合

txt

权限的分类
r 读
w 写
x 执行
文件
r 读,可用cat等命令查看文件内容
w 写,可以编辑或者删除文件
x 可执行,可以在命令提示符下当作命令提交给内核运行

目录
r 可以对此目录执行ls以列出内部的所有文件
w 可以在此目录创建文件,删除文件取决于文件本身的权限
x 可以使用cd命令切换进目录,也可以使用ll命令查看内部文件的详细信息

rwxrwxrwx filename1

——— filename1

chmod u+rwx,g+rwx,o+rwx filename

0 000 — 无权限
1 001 –x 可执行
2 010 -w- 可写
3 011 -wx 写和执行
4 100 r– 可读
5 101 r-x 读和执行
6 110 rw- 可读写
7 111 rwx 读写执行

用户类别
管理员 root uid 0
普通用户 1-65535,2^16个
系统用户 199-999,专门用来运行后台进程和服务的用户,不允许登陆系统
一般用户 1000-60000,后面的很少使用
用户组类别
按照用户类别的分法
管理员组
普通组
常用分法
基本组,用户的默认组 redhat redhat bluefly
附加组 额外组,默认组以外的其他组

用户管理
useradd
-u UID 指定UID
-g GID 指定基本组
-G GID1,GID2,… 指定附加组
-c “注释信息” 指定用户注释信息
-d /path/to/dir/ 指定某个目录为用户家目录
-s /shell 指定用户使用的shell
相关文件
/etc/skel
用户家目录中的默认隐藏配置文件
/etc/login.defs
用户的相关默认属性

passwd  修改用户密码
    --stdin
        echo "redhat" | passwd --stdin USERNAME
    -n  指定密码最短使用期限
    -x  指定密码最长使用期限
    -w  指定警告时间
    -d  删除用户密码,在redhat中,空密码用户禁止登陆
    密码和PAM相关    

useradd adduser是这个命令的别名
useradd USERNAME
    添加用户就是在/etc/passwd、/etc/shadow、/etc/group中添加用户相关信息
默认属性都来自什么地方呢?来自/etc/default/useradd

    /etc/default/useradd
    文件格式
    GROUP=100           组
    HOME=/home          家目录
    INACTIVE=-1         密码宽限期限
    EXPIRE=             账户过期期限
    SHELL=/bin/bash     指定shell
    SKEL=/etc/skel      默认文件
    CREATE_MAIL_SPOOL=yes   邮件配置

$?

userdel
    userdel USERNAME
    -r  删除用户时删除用户家目录和用户的邮箱

id      查看用户的ID信息,选项同useradd
    -u  显示UID
    -G  显示附加GID
    -g  显示GID

usermod 修改用户相关信息,选项同useradd
    -u  修改UID
    -g  修改基本组,基本组必须事先存在
    -G  这个选项会覆盖之前的附加组,和-a选项配合使用
        usermod -a -G 追加附加组
    -c  修改用户注释信息
    -s  修改用户shell
    -l  修改登陆名
    usermod -a -G caicaikan haha    ##添加附加组


chsh    -s修改用户shell

pwck    检查用户账号完整性,并进行报告

组管理
groupadd 添加一个组
-g GID
-r 添加系统组
groupdel 删除一个组
groupmod 修改一个组
-g GID
-n GRPNAME 修改组名
gpasswd 修改组密码
newgrp 登陆一个新组
使用exit退出新组

用户 UID /etc/passwd
组 GID /etc/group
影子口令
用户 /etc/shadow
组 /etc/gshadow

/etc/passwd 冒号隔开的七个字段
account 用户名
password 密码,x为密码占位符,目标为/etc/shadow第二个字段
UID 用户ID
GID 基本组ID,额外组信息在/etc/group文件中
CECOS 用户基本信息
HOME DIR 用户家目录,系统用户不允许登陆
shell 用户的默认shell,/etc/shells保存了所有的合法shell

/etc/shadow 冒号隔开的九个字段
account 用户名
password 加密后的密码,格式为 1 1 ????????$*
!!或者* 账户锁定 salt
最后一次修改时间 从1970年1月1日到最后一次密码改变的时间所经过的天数
密码最短使用期限 为0表示不限制
密码最长使用期限 密码使用多长时间之后必须要改密码,99999表示可不更改
密码过期警告时间 密码过期前多少天进行警告,提示用户改密码,但是不锁定用户
密码过期宽限期限 密码过期后必须改密码的时间,如果还没改,锁定用户,就只能找网管了
账号过期精确时间 如果为99999,意味着永不过期
保留字段

/etc/group
文件格式为:
组名:组密码:GID:以该组作为额外组的用户名,以逗号为分隔符

/etc/gshadow

练习题:
1、创建一个用户mandriva,其ID号为2002,基本组为distro(组ID为3003),附加组为linux?
groupadd -g 3003 distro;groupadd linux;useradd -u 2002 -g distro -G linux mandriva
2、创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh?
useradd -s /bin/tcsh -c “Fedora Community” fedora
3、修改mandriva的ID号为4004,基本组为linux,附加组为distro和fedora?
usermod -u 4004 -g linux -G distro,fedora mandriva
4、给fedora加密码,并设定其密码最短使用期限为2天,最长为50天?
passwd -n 2 -x 50 fedora
passwd fedora
5、将mandriva的默认shell改为/bin/bash?
usermod -s /bin/bash mandriva
6、添加系统用户hbase,且不允许其登陆系统?
useradd -r -s /sbin/nologin hbase

umask 查看权限掩码,文件默认权限为666,目录默认权限为777
umask 权限掩码 更改权限掩码

chown 改变文件或者目录的所属用户和所属组
chown USERNAME:GROUPNAME FILENAME -R

安全上下文
secure context

进程访问文件时,先查看用户权限,如果不是,再查看进程的发起用户是不是目标文件所属组成员
系统任何进程开始都保存为一个文件,由用户执行可执行程序后成为进程,而能否执行,取决于用户对可执行文件有没有权限,而程序一旦执行后转为进程,那么进程就与之前的可执行文件无关,进程的权限为进程发起者的权限,而进程能否访问某个文件,则取决于发起者是否有权限访问目标文件,而这一切就叫做安全上下文

特殊权限

SUID: 运行程序时,进程的属主是程序文件自身的权限,而不是进程发起者
chmod u[+|-]s FILENAME 如果文件原来有执行权限就显示为s,反之显示S
SGID: 运行程序时,进程的属组是程序文件自身的属组,而不是进程发起者的基本组
chmod g[+|-]s DIRNAME
Sticky:在一个公共目录,每个用户都可以创建文件,删除自己的文件,但不能删除别人的文件 对目录有效
chmod o[+|-]t DIRNAME

扩展权限
setfacl Filesystem Access Control list
getfacl
-m 设定
u: 用户
g: 组
setfacl -m u:UID:perm

    -x  取消
        u:  用户
        g:  组   

隐藏属性
chattr

文件系统

# df -h
# free -m
# fdisk /dev/sda
    p
    n
    e
    n
    +5G
    p
    w
# partprobe
# fdisk -l
# mkfs.ext4 /dev/sda5
# mount /dev/sda5 /mnt
# touch /mnt/hehe
# ll /mnt
    hehe
# umount /dev/sda5   umount /mnt
# blkid
# vim /etc/fstab
    UUID=FKJLASJDFLJALSDJFLAJSDF  /mnt  ext4    defaults    0 0
    :wq
# reboot
# ll /mnt
    hehe

挂载
LVM

mount /dev/sr0 /mnt

mount 需要挂载的设备或者文件系统 挂载的目标

/dev/sda
sata接口的第一块硬盘
/dev/sda
/dev/sda1
/dev/sda2

/dev/sdb
    /dev/sdb1
    /dev/sdb2 
/dev/sdc

/dev/sr0

/dev/cdrom

软件安装
rpm
-ivh 安装
-e 删除
-qa 查询所有安装的软件包 ,一般在后面跟上管道符使用grep来过滤关键字
-ql 查看软件包释放的文件列表
-qf 查看某个文件是哪个软件包释放的

    rpm   redhat package manager    

yum     yellow  dog update manager 
    install 安装
    remove  删除
    localinstall    本地rpm软件包

yum仓库

    查看yum源
    yum repolist

    本地源
        /etc/yum.repos.d/base.repo
        内容为:
        [base]
        name=base
        baseurl=file:///mnt/
        gpgcheck=0

    yum clean all
    yum list
    yum grouplist
    yum groupinstall

查看本地YUM源配置文件
vim /etc/yum.repos.d/base.repo
查看对应的挂载情况,光盘是否挂载
安装ftp服务端软件
yum install vsftpd -y
挂载光盘镜像到ftp服务默认目录
mount /dev/sr0 /var/ftp/pub/
修改yum源配置文件,把仓库路径指定为ftp服务的网址
vim /etc/yum.repos.d/base.repo
启动ftp服务器
systemctl restart vsftpd
停止防火墙
systemctl stop firewalld
停止selinux
setenforce 0
然后使用网络源安装httpd软件
yum install httpd
启动httpd服务
systemctl start httpd

    网络源
        互联网源
        内网源
            服务端
                # 停止防火墙
                systemctl stop firewalld

                # 停止selinux
                setenforce 0

                # 清理yum缓存
                yum clean all

                # 安装vsftpd服务
                yum install vsftpd -y

                # 挂载光盘到/var/ftp/pub目录
                mount /dev/sr0 /var/ftp/pub

                # 重启vsftpd服务
                systemctl start vsftpd

            客户端
                # 编辑客户端repo配置文件为如下内容:
                /etc/yum.repos.d/base.repo
                    内容为:
                    [base]
                    name=base
                    baseurl=ftp://你的服务器的IP地址/pub
                    enable=1
                    gpgcheck=0
                # 清理yum缓存
                yum clean all
                # 安装wireshark软件进行确认配置无误
                yum install wireshark


源码安装

计划任务

解压源码包

tar zxvf tar-1.29.tar.gz

删除解压软件

yum remove tar -y

安装编译器

yum install gcc*

创建一个公共目录

mkdir /test

移动该源码包到该公共目录

mv tar-1.29 /test

切换到redhat用户

su - redhat

切换到源码目录

cd /test/tar-1.29

执行./configure命令,该命令不能使用root用户执行

./configure

执行完成后,退出redhat用户

exit

确认所在目录

pwd /test/tar-1.29

执行make命令,确保是root用户发起的

make

执行make install命令,

make install

安装完成后,如果没有错误提示,则安装成功

安装成功后,可能无法直接使用tar命令,因为之前我们使用tar命令解压了该源码包

所以需要清空hash表中的相关项

执行以下命令进行清理

hash -r

切换到该公共目录

cd ..

删除解压后的目录

rm -rf tar-1.29

再次使用tar命令解压该源码包

tar Jxvf -1.29.tar.xz

语法:tar [主选项+辅选项] 文件或者目录
使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
主选项:
c 创建新的打包文件。
x 从打包文件中释放文件。
t 列出打包文件的内容,查看已经打包了哪些文件。
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。
辅助选项:
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩或解压? 一般格式为xx.tar.gz或xx. tgz
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩或解压?一般格式为xx.tar.bz2
-J : 是xz格式的选项
-v :归档或者解包的过程中显示文件!这个常用
-f :使用文件名,请留意,在 f 之后要立即接文件名!不要再加其他参数!
-p :使用原文件的原来属性(属性不会依据使用者而变)
–exclude FILE:在打包的过程中,不要将 FILE 打包!

tar: 只归档,不压缩,默认不删除原文件
-c:创建归档文件
-C: 解压时,指定展开目录
-f:FILENAME.tar: 操作的归档文件
-x: 还原归档文件
–xattrs: 在归档时,保存文件扩展属性信息
-t:不展开归档,查看归档文件内文件列表

-zcf:调用gzip归档并压缩
-zxf:调用gzip解压缩并还原归档

-jcf: 调用bzip2归档并压缩
-jxf: 调用bzip2解压缩并还原归档

-Jcf:调用xz归档并压缩
-Jxf:调用xz解压缩并还原归档

该命令会自动判断归档文件的压缩格式,自动调用相关程序进行解压缩 

tar cvf 归档的目标文件  归档的源文件

tar cvf ceshi.tar 3
tar -tf ceshi.tar 

压缩、解压缩
压缩格式:gz,bz2,xz,zip,Z

gzip: .gz
-d: 等同于gunzip
-#:1-9,默认为6,压缩比
zcat: 查看.gz压缩的文件内容
gunzip: 解压缩.gz

bzip2: .bz2
-d: 解压缩
-#:1-9,压缩比,默认为6
bcat: 查看.bz2压缩的文本文件内容

xz: .xz
-d:解压缩
-#:1-9,压缩比,默认为6
-k:压缩时保留原文件
xzcat: 不解压直接查看压缩格式的文本文件
xzdec: 解压缩.xz文件

zip: 默认不删除原文件
zip FILENAME.zip FILE1,FILE2,…
unzip:
ARCHIVE: 归档,归档本身不意味着压缩

free -m
file
which 查找命令路径
whereis

df -h
du -sh

awk
sed
流编辑器

w
who
-r 显示运行级别
-H 显示信息头部
whoami
last 显示/var/log/wtmp文件,显示用户登录历史及系统重启历史
-n# 显示最近几次
lastb 显示/var/log/btmp文件,显示错误的登陆日志
-n# 显示最近几次
lastlog 显示每一个用户最近一次的成功登陆信息
-u USERNAME:显示特定用户的登陆信息
basename 显示文件基名
hostname 显示主机名
$HOSTNAME 该变量保存了主机名
hostnamectl set-hostname ZHUJIMING

scp 传送

进程管理
查看
pstree
ps process state
SYSTEM V风格:-
BSD风格: 不加减号

    分类:
        和终端有关
        和终端无关
    a:  有关
    x:  无关
    u:  更详细,显示启动进程的用户和其他字段

ps aux
ps -ef
lsof -i:80

kill    终止一个进程

    kill -l

    1:  让一个进程不用重启就可以重读配置文件,并让配置文件生效
    2:  ctrl+c,中断一个前台进程
    9:  杀死一个进程
    15:终止一个进程

killall 服务的后台进程名称
iptraf

vmstat
vmstat 1
vmstat 1 5

uptime
scp 传送

复习好操作系统基础命名,后期将会详细讲到rhce内容的服务配置

你可能感兴趣的:(linux操作系统基础命令大全)