学习思路:总----->分------------>总;

程序:指令+数据;

内核功能:进程管理,内存管理,文件系统,网络功能,硬件驱动,安全机制;

基础命令:

命令 常用选项 作用
ls
列表

-l 长格式显示详细信息(详细信息参见图-1所示)

-h 以人类可读方式显示,单位转换

-a 显示隐藏信息

-A 显示隐藏文件(但不显示.和..linux基础知识_第1张图片

-d 显示目录自身属性

-i

显示inode

-r 逆序显示

-R 递归显示



linux基础知识_第2张图片这里的文件时间戳是指最近一次被访问的时间


文件类型:    

        - : 普通文件

        d : 目录文件

        b : 块设备文件

        c: 字符串设备文件

        l : 链接文件(符号链接(也叫软链接)文件)

        p : 管道文件

        s : 套接字文件

权限:

        9位。每3位1组,每组的权限都有r(读:4)w(写:2)x(执行:1)

        第一组:代表文件拥有者,属主权限

        第二组:代表文件所属组的权限

        第三组:代表其他人的权限

还有特殊权限:suid,sgid (粘滞位权限 将 x 变为 s)


时间戳:(ls -l 显示的时间是最近一次被访问的时间)

    访问时间:access

    修改时间:modify (文件内容发生了变化)

    改变时间:change , metadata , 元数据发生了变化


cd 

切换目录 (cd - : 在当前目录和上一级目录之间来回切换)

type

显示属于哪种类型(①内部命令:shell内置,内建;;②外部命令:在文件系统的某个路径下有一个与命令名称对应的可执行文件。)


环境变量: 命名的内存空间(例子:变量赋值: NAME=ZZZHBR 解释:在内存中找一段空间叫NAME,数据内容为ZZZHBR);;路径(PATH)使用“:”分割的一堆路径

05a70460e0db757f0626352c142c9419.png-wh_


环境变量设置:

使用 unset命令 可以删除全部环境变量  如:  unset PATH

source/etc/profile是让/etc/profile文件修改后立即生效;还有一种方法是:. /etc/profile     注意:.和/etc/profile有空格


Linux的变量种类

按变量的生存周期来划分,Linux变量可分为两类:

1. 永久的:需要修改配置文件,变量永久生效。

2. 临时的:使用export命令行声明即可,变量在关闭shell时失效。

      设置变量的三种方法

1. 在/etc/profile文件中添加变量【对所有用户生效(永久的)】

用vi在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。

例如:编辑/etc/profile文件,添加CLASSPATH变量

# vi /etc/profile
export CLASSPATH=/etc/local

:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。

2. 在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】

用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。

例如:编辑li用户目录(/home/li)下的.bashrc

$ vi /home/li/.bashrc

添加如下内容:
export CLASSPATH=/etc/local

:修改文件后要想马上生效还要运行$ source /home/li/.bashrc不然只能在下次重进此用户时生效。

3. 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】

在shell的命令行下直接使用 export 变量名=变量值 定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。




hash 缓存,可查看使用过的命令的路径和次数  (级别:o(1):衡量程序执行速度的标准)



获得帮助的途径:

    

内部命令 help COMMAND man COMMAND(一般比较少用)
外部命令 COMMAND --help (简要信息帮助) man COMMAND 命令手册,一般分章节(1,用户命令(/bin ; /usr/bin ; /usr/local/bin ; ) 2,系统调用 3,库用户调用;4,特殊文件; 5,文件格式;6,游戏;7,杂项;8.超级用户命令)详细信息参见man使用说明
在线文档 info COMMAND  更加详细的说明,前世今生都会讲
帮助文档 /usr/share/doc
搜索引擎帮助 google,baidu
官方使用文档手册 相关书籍等
whatis COMMAND 可以查看命令在man中出现在哪几个章节




man命令说明 章节 详细说明
man 数字 COMMAND 1 用户命令(/bin ; /usr/bin ; /usr/local/bin ; )

2 系统调用

3 库用户调用

4 特殊文件(设备文件。没有数据,只提供访问路口)

5 文件格式(解释某一命令配置文件的语法)

6 游戏

7 杂项

8 超级用户命令(/sbin ; /usr/sbin ; /usr/local/sbin ; )

MAN:    

代号 内容说明
NAME 简要说明命令名称及功能
SYNOPSIS 用法说明,包括可用的选项
DESCRIPTION 命令功能的详尽说明,可能包括每一个选项的意义
OPTIONS 说明每一个选项的意义
FILES 此命令相关的配文件,相关文档
BUGS
EXAMPLES 使用示例
SEE ALSO 另外参照
按鍵 進行工作
空白鍵 向下翻一頁
[Page Down] 向下翻一頁
[Page Up] 向上翻一頁
[Home] 去到第一頁
[End] 去到最後一頁
/string 向『下』搜尋 string 這個字串,如果要搜尋 string 的話,就輸入 /string
?string 向『上』搜尋 string 這個字串
n, N 利用 / 或 ? 來搜尋字串時,可以用 n 來繼續下一個搜尋 (不論是 / 或 ?) ,可以利用 N 來進行『反向』搜尋。舉例來說,我以 /string 搜尋 string 字串, 那麼可以 n 繼續往下查詢,用 N 往上查詢。若以 ?string 向上查詢 string 字串, 那我可以用 n 繼續『向上』查詢,用 N 反向查詢。
q 結束這次的 man page



命令用法 选项 说明
 [ option ]  [ ]  中括号里的选项代表可省略
[c | cut | .... ] | 代表选项可选
<> <> 代表必须给出的内容

...

... 可以使用多次
{ }
{ } 分组

时间说明:    

命令 选项 说明
data
显示时间

修改时间 hwclock -w (修改硬件时间同步到系统时间)


hwclock -s (修改系统时间同步到硬件时间)
系统关机后再次开机时间依旧正确:因为主板带了有纽扣电池。有晶体振荡器,保证时间的 准确,每次开机都是将硬件时间同步至系统时间(windows)

linux有系统时间(cpu模拟晶体振荡器)和硬件时间;所以可能导致时间不一致

hwclock:硬件时间


cal 日历显示


目录管理:

    ls

    cd    

    pwd

    mkdir  -p -v

    tree

    touch

    stat

    以下详细信息摘抄自老男孩博客http://oldboy.blog.51cto.com/2561410/1951107 然后整理补充说明一些常用选项和使用


命令

功能说明

线上查询及帮助命令(2个)

man

查看命令帮助,命令的词典,更复杂的还有info,但不常用。

help

查看Linux内置命令的帮助,比如cd命令。

文件和目录操作命令(18个)

ls

全拼list,功能是列出目录的内容及其内容属性信息。

cd

全拼change directory,功能是从当前工作目录切换到指定的工作目录。

cp

全拼copy,其功能为复制文件或目录。

find

查找的意思,用于查找目录及目录下的文件。

mkdir

-p

-v

全拼make directories,其功能是创建目录。

mv

全拼move,其功能是移动或重命名文件。

pwd

全拼print working directory,其功能是显示当前工作目录的绝对路径。

rename

用于重命名文件。

rm

-r

-f

全拼remove,其功能是删除一个或多个文件或目录。

rmdir

全拼remove empty directories,功能是删除空目录。

touch

创建新的空文件,改变已有文件的时间戳属性。

tree

功能是以树形结构显示目录下的内容。

basename

显示文件名或目录名。

dirname

显示文件或目录路径。

chattr

改变文件的扩展属性。

lsattr

查看文件扩展属性。

file

显示文件的类型。

md5sum

计算和校验文件的MD5值。

查看文件及内容处理命令(21个)

cat

-n

全拼concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。

tac

taccat的反向拼写,因此命令的功能为反向显示文件内容。

more

分页显示文件内容。

less

分页显示文件内容,more命令的相反用法。

head

-f

-n

显示文件内容的头部。

tail

-f

-n

显示文件内容的尾部。

cut

-d:指定字段分隔符


-f:指定要现实的字段

将文件的每一行按指定分隔符分割并输出。

split

分割文件为不同的小片段。

paste

按行合并文件内容。

sort

-n:数值排序

-u:排序后相同的行只显示一次

-t:字段分隔符

-f:忽略大写小

-k:以哪个字段为关键字进行排序

-r:降序

对文件的文本内容排序。

uniq

-c:显示文件中行重复的次数

-d:只显示重复的行

去除重复行(相邻重复行)

wc

-l

-w

-c

-L

统计文件的行数、单词数或字节数。

iconv

转换文件的编码格式。

dos2unix

DOS格式文件转换成UNIX格式。

diff

全拼difference,比较文件的差异,常用于文本文件。

vimdiff

命令行可视化文件比较工具,常用于文本文件。

rev

反向输出文件内容。

grep/egrep

过滤字符串,三剑客老三。

join

按两个文件的相同字段合并。

tr (tr ‘ab’ ‘AB’ 

           abc   ABc

            apple Apple        )  

-d:删除字符集中出现的所有字符

替换或删除字符。

vi/vim

命令行文本编辑器。

文件压缩及解压缩命令(4个)

tar

打包压缩。

unzip

解压文件。

gzip

gzip压缩工具。

zip

压缩工具。

信息显示命令(11个)

uname

显示操作系统相关信息的命令。

hostname

显示或者设置当前系统的主机名。

dmesg

显示开机信息,用于诊断系统故障。

uptime

显示系统运行时间及负载。

stat

显示文件或文件系统的状态。

du

计算磁盘空间使用情况。

df

报告文件系统磁盘空间的使用情况。

top

实时显示系统资源使用情况。

free

查看系统内存。

date

显示与设置系统时间。

cal

查看日历等时间信息。

搜索文件命令(4个)

which

查找二进制命令,按环境变量PATH路径查找。

find

从磁盘遍历查找文件或目录。

whereis

查找二进制命令,按环境变量PATH路径查找。

locate

从数据库 (/var/lib/mlocate/mlocate.db)查找命令,使用updatedb更新库。

用户管理命令(10个)老男孩

useradd

添加用户。

usermod

修改系统已经存在的用户属性。

userdel

删除用户。

groupadd

添加用户组。

passwd

修改用户密码。

chage

修改用户密码有效期限。

id

查看用户的uid,gid及归属的用户组。

su

切换用户身份。

visudo

编辑/etc/sudoers文件的专属命令。

sudo

以另外一个用户身份(默认root用户)执行事先在sudoers文件允许的命令。

基础网络操作命令(11个)老男孩

telnet

使用TELNET协议远程登录。

ssh

使用SSH加密协议远程登录。

scp

全拼secure copy,用于不同主机之间复制文件。

wget

命令行下载文件。

ping

测试主机之间网络的连通性。

route

显示和设置linux系统的路由表。

ifconfig

查看、配置、启用或禁用网络接口的命令。

ifup

启动网卡。

ifdown

关闭网卡。

netstat

查看网络状态。

ss

查看网络状态。

深入网络操作命令(9个)

nmap

网络扫描命令。

lsof

全名list open files,也就是列举系统中已经被打开的文件。

mail

发送和接收邮件。

mutt

邮件管理命令。

nslookup

交互式查询互联网DNS服务器的命令。

dig

查找DNS解析过程。

host

查询DNS的命令。

traceroute

追踪数据传输路由状况。

tcpdump

命令行的抓包工具。

有关磁盘与文件系统的命令(16个)

mount

挂载文件系统。

umount

卸载文件系统。

fsck

检查并修复Linux文件系统。

dd

转换或复制文件。

dumpe2fs

导出ext2/ext3/ext4文件系统信息。

dump

ext2/3/4文件系统备份工具。

fdisk

磁盘分区命令,适用于2TB以下磁盘分区。

parted

磁盘分区命令,没有磁盘大小限制,常用于2TB以下磁盘分区。

mkfs

格式化创建Linux文件系统。

partprobe

更新内核的硬盘分区表信息。

e2fsck

检查ext2/ext3/ext4类型文件系统。

mkswap

创建Linux交换分区。

swapon

启用交换分区。

swapoff

关闭交换分区。

sync

将内存缓冲区内的数据写入磁盘。

resize2fs

调整ext2/ext3/ext4文件系统大小。

系统权限及用户授权相关命令(4个)

chmod

改变文件或目录权限。

chown

改变文件或目录的属主和属组。

chgrp

更改文件用户组。

umask

显示或设置权限掩码。

查看系统用户登陆信息的命令(7个)

whoami

显示当前有效的用户名称,相当于执行id -un命令。

who

显示目前登录系统的用户信息。

w

显示已经登陆系统的用户列表,并显示用户正在执行的指令。

last

显示登入系统的用户。

lastlog

显示系统中所有用户最近一次登录信息。

users

显示当前登录系统的所有用户的用户列表。

finger

查找并显示用户信息。

内置命令及其它(19个)

echo

打印变量,或直接输出指定的字符串

printf

将结果格式化输出到标准输出。

rpm

管理rpm包的命令。

yum

自动化简单化地管理rpm包的命令。

watch

周期性的执行给定的命令,并将命令的输出以全屏方式显示。

alias

设置系统别名。

unalias

取消系统别名。

date

查看或设置系统时间。

clear

清除屏幕,简称清屏。

history

查看命令执行的历史纪录。

eject

弹出光驱。

time

计算命令执行时间。

nc

功能强大的网络工具。

xargs

将标准输入转换成命令行参数。

exec

调用并执行指令的命令。

export

设置或者显示环境变量。

unset

删除变量或函数。

type

用于判断另外一个命令是否是内置命令。

bc

命令行科学计算器

系统管理与性能监视命令(9个)

chkconfig

管理Linux系统开机启动项。

vmstat

虚拟内存统计。

mpstat

显示各个可用CPU的状态统计。

iostat

统计系统IO

sar

全面地获取系统的CPU、运行队列、磁盘I/O、分页(交换区)、内存、 CPU中断和网络等性能数据。

ipcs

用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。

ipcrm

用来删除一个或更多的消息队列、信号量集或者共享内存标识。

strace

用于诊断、调试Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。

ltrace

命令会跟踪进程的库函数调用,它会显现出哪个库函数被调用。

关机/重启/注销和查看系统信息的命令(6个)

shutdown

关机。

halt

关机。

poweroff

关闭电源。

logout

退出当前登录的Shell

exit

退出当前登录的Shell

Ctrl+d

退出当前登录的Shell的快捷键。

进程管理相关命令(15个)

bg

将一个在后台暂停的命令,变成继续执行 (在后台执行)。

fg

将后台中的命令调至前台继续运行。

jobs

查看当前有多少在后台运行的命令。

kill

终止进程。

killall

通过进程名终止进程。

pkill

通过进程名终止进程。

crontab

定时任务命令。

ps

显示进程的快照。

pstree

树形显示进程。

nice/renice

调整程序运行的优先级。

nohup

忽略挂起信号运行指定的命令。

pgrep

查找匹配条件的进程。

runlevel

查看系统当前运行级别。

init

切换运行级别。

service

启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。


如何获取linux当前最新的内核版本号:www.kernel.org



linux的符号:

    

>输出重定向(清除原来存在的内容)

>>输出追加重定向(追加到原来内容的后面)

0>标准输出重定向

0>>标准输出追加重定向

1>标准输出正常从定向

1>>标准输出正常追加重定向

2>> 错误输出追加重定向

2> 错误输出重定向

 

< 输入重定向

<<输入追加重定向

0<标准输入重定向

0<<标准输入追加重定向

1<标准输入正常从定向

1<<标准输入正常追加重定向


说明:箭头的指向就是数据流的方向

 0表示输入输出

 1表示正常输入输出

 2表示错误输入输出



/dev/null  黑洞,即所有的内容都扔进黑洞,不保存

 

\ 让原本有意义的字符脱掉马甲,还原他本来的意义

 

. 代表任意一个字符

 

.* 代表所有


 

| 管道

.. 上一级目录

. 当前目录

1)取反;2)!数字 执行第几条历史记录 3)字母 调出最近一次用此字母开头的命令 4)!!表示最近一次执行的命令

&&并且(相当于find -a

 

 

 

常用快捷键

  tab 补全命令或路径

ctrl+a到句首

ctrl+e到句首

ctrl+k把光标以后的内容删除

ctrl+u把光标以前的内容删除