1.浏览文件或文件夹

ls

选项:-l  列出详细信息

linux文件类型

-:普通文件(f)

d:目录文件

b:块设备文件(block)

c:字符设备文件(chareacter)

l:符号链接文件(symbolic link file)

p:命名管道(pipe)

s:套接字文件(socket)

linux文件权限 9位字母,每三位一组,rwx(读写执行)

文件被硬链接的次数

文件的属主(owner)

文件的属组(group)

文件的大小:默认是字节

时间戳(timestamp):这里显示的是最近一次文件内容被修改的时间。还有两种时间为:最近一次被访问的时间(读),修改的时间(modify指的是文件内容发生修改),最后一次被改变的时间(文件包含两种数据,即数据数据,属性数据,属性数据又被称为元数据,属性被修改成为改变)


-h :human readable 将单位换算为人类刻度的单位

因此可以经常写为ls-lh


-a:显示所有文件,包含以.开头的隐藏文件

-A:显示所有隐藏文件,不包含 . 和..

-d:显示目录自身属性,例如:ls -ld /root

index node,简称为inode

例如ls -i 用来显示文件的节点索引号


-r :逆序显示文件(默认是正序文件名)

-R:递归显示


2.切换目录

cd + 目录名

cd不加任何参数为回到用户的家目录

cd ~回到自己家

cd ~用户名: 进入指定用户的家目录

cd -回到上一个目录


3. 查看linux命令类型

内置命令(shell内置):为了方便执行,自带一些管理命令如:cd

外部命令:在文件系统的某个路径下有一个与命令名称相应的程序


例如:

type cd显示结果为 cd is a shell builtin说明为内部命令

type ls 显示结果为/bin/ls


3.1 printenv显示系统环境变量

3.2 hash 列出缓存的命令


4.显示和修改时间

硬件时钟与系统(是软件模拟的)时钟

clock :查看硬件时间

hwclock:也是查看硬件时间

date 设置时间如:date 0226104913.30 设置为2月26日10点49分30秒 2019年

date +"Today is %d"

date +"%Y-%m-%d %H:%M:%S" 显示年月日时分秒

date +%s 显示1970年开始的世纪秒

hwclock -w将系统时间同步到硬件去

hwclock -s将硬件时间同步到系统时钟



4.1获取命令帮助

内部命令:help COMMAND 例如help cd

外部命令:加长选项--help 获得简要 帮助信息。

info 也可查看命令帮助

帮助文件:/usr/share/doc

使用man COMMAND 用手册来查看帮助

分章节显示命令

man LAND=en


whatis command查看命令在哪个章节:如whatis read

1章:用户命令,所有用户都可以(/bin:/usr/bin/:/usr/local/bin)

2章:系统调用

3章:库调用

4章:特殊文件(设备文件)

5章:文件格式,配置文件。如,passwd 。

6章:游戏

7章:杂项(Miscellaneous)

8章:管理员才能使用的命令(/sbin:/usr/sbin:/usr/local/sbin)

如man 5 passwd
用来查看文件帮助

man passwd 用来查看命令


如:man 2 read 查看系统调用的read


查看命令帮助的一般约定:

[ ]中括号括起来的可以省略

<>尖括号是必须给出的

竖线分割代表必选其一

...可以出现多次

{} 分组


NAME:命令名称及功能简要说明

SYNOPSIS:用法说明

DESCRIPTION:命令功能的详细描述,包括每一个选项的意义

OPTION:说明每一个选型的意义

FILES:此命令想干的配置文件

BUGS:

EXAMPLES:

SEE ALSO:另外参照


翻页方法

向后翻一屏: 空格键

向前翻一屏:b

向后翻一行:ENTER

向前翻一行:k

查找:

/关键字:向后

?KEYWORD:向前

退出:q

n:下一个

N:前一个


如:man lvcreate


4.2日历 cal


5.echo

6.printf

printf "The year is 2013"        默认没有换行符

printf "The year is 2013\n"    使用\n可以换行

7.file 如:file /bin/lb

windows:PE

Linux:ELF 为可执行文件


rootfs:根文件系统

FHS:文件系统层级标准,规定了Linux发行版应该创建那些目录,

并且在固定的位置看到相应的文件。

/boot:系统启动相关的文件,如内核、initrd、以及grub(bootloader)

vmlinux-2.6.18-308.el5操作系统启动用到的内核

initrd-2.6.18-308.el5.img操作系统映像

/dev:设备文件

如果光驱设备显示为dvd,cdrw

或者cdrom,显示为青色的是符号链接文件,

尝试用:ls -l /dev查看发现有很多链接,

如:cdrom指向sr0 ,dvd和scd0也指向sr0

大多数发行版都可以通过cdrom来引用


设备文件分类:

块设备:随机访问,例如磁盘;

字符设备:只能线性访问,以字符为单位,例如鼠标、显示器、键盘;

背景为黑色,前景为×××的文件,存储为只有数据,没有元数据。

主设备号(major)和次设备号(minor)


/etc:配置文件

/home:家目录

/root:root的家

工作的时候千万不能用root登录

/lib:库文件

/lib/modules:内核模块文件

静态库, .a    ; .la(windows)

动态库:.dll (windows);  .so(shared object),在内存中只存储一份


lost+found:任何分区都会有

/media: 挂载点目录,通常用于挂在移动设备

/mnt:挂载点目录,额外的临时文件系统

/misc:杂项

/opt:optional可选目录,早期用于安装第三方软件,例如早期oracle.

/proc:伪文件系统,系统启动起来不为空,内核映像文件,内核的统计数据或配置。例如网卡发送多少个数据包,是否支持IPV4.系统调优会用。

/sys:伪文件系统,跟硬件设备相关的属性映射文件。例如修改磁盘调度队列

/tmp:临时文件,公共临时文件,一个月之内没有被修改,会被自动删除;任何一个用户都可以创建文件,但是只能删除自己的文件,不能删除别人的文件。

/var:可变化的文件

lock:锁文件

log:日志

run:

tmp:另一个临时文件存储目录


/bin:可执行文件,用户命令

/sbin:可执行文件,管理命令

/usr:universil shared read-only全局共享只读文件

/usr/bin

/usr/sbin

/usr/lib


/usr/local:第三方软件

/usr/local/bin:

/usr/local/lib:


命名规则:1.长度不超过255个字符;2.不能使用/当文件名;3.严格区分大小写

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

linux基本操作

1)文件管理




2)目录管理

ls

cd

pwd

mkdir -p /root/x/y/z

-v 显示创建过程

在同一路径下同时创建多个文件夹

可利用Bash Shell 提供的花括号展开

mkdir -pv /mnt/test/{x/m,y}

展开为

mkdir -pv /mnt/test/x/m /mnt/test/y


例子:在/mnt/test2/目录下用一条命令创建

a_b,a_c,d_b,d_c

mkdir /mnt/test2/{a,d}_{c,d}


波浪线展开

~USERNAME


删除目录(空目录)

rm /mnt/test2

rmdir -p /mtn/test2/a_c 删除一脉单传的目录


文件的创建删除

touch a :如果存在a文件,把a的时间戳改掉

touch -a a :只改变访问时间。

touch -m a :只改变修改时间

但是以上两条命令同时也改变了 change time

change time 是无法通过touch 改变的


touch -m -t 201212121212 a 

修改了 Modify time为2012年12月12日12时12分12秒



install 只能操作文件

mv 移动文件/文件夹


touch -c c 不建立c文件


stat 显示一个文件的状态信息


tree 查看文件系统树


cp 难点,较复杂 默认会将链接复制为文件

-P 保持为链接

-l 如果是链接就复制链接指向的文件

-d 保持链接

-a 不改变文件的一切属性,归档复制,常用于备份



文本处理命令:

cat    more    less    head

tail    tac    cut     

   grep


uniq :报告重复的行,如果三行一样但不相邻,并非一样的行

例子 uniq sort.txt

-d 只显示重复的行

-c 报告某一行重复了几次


cut 按标号分割字符串

例子:cut -d : -f1 /etc/passwd  以分隔符:分割,显示第一个字段

-d :指定字段分隔符,默认是空格

-f +数字 :显示指定的字段 如果 -f1,3 显示第一个第三个; -f1-3显示1到3字段 


join 合并文本


sort文本排序

例子:sort /etc/fstab : 用于排序显示文件,默认升序

-n 按照数值大小排序

-r 按照降序排序

-t 指定分隔符

-k 指定按照哪个进行排序

例子:

sort -t: -k3 /etc/asswd 以冒号分割,按照第三个字段排序

sort -t: -k3 -n /etc/asswd 以冒号分割,按照第三个字段排序,并按照数字排序

-u 如果排序完成之后又重复的行,只显示一次

-f 排序时忽略字符大小写


wc 文本统计 word count

例子wc /etc/fstab 报告 8行 48个单词 608个字节

-l 只显示行数

-w 只显示单词数

-c 只显示字符数

-L 最长的一行包含多少个字符


tr字处理命令转换或删除字符

例子:tr ab AB 把a换成A,把b换成B

tr只能用文件重定向,不支持加文件名参数

例子:tr 'ab' 'AB'< /etc/passwd

tr 'a-z' 'A-Z'< /etc/passwd 把所有的小写换成大写

tr -d 'ab' 出现字符a和b的时候都会被删除,使用此选项只有一个参数即可。按照单个字符删除而不是单词



sed

awk(最难)


linux shell 特性

c shell 类似于C语言,Cshell比Bshell更强大

K shell 功能更强大,但是只能付费才能使用,后来分为社区版和

BashShell 指的是原来shell的增强版。遵循开源协定。


bash shell 可以支持个性化配置

shell 有子shell概念

输入bash可以进入子shell

export LANG=en

通过exit可以退出子shell

通过pstree 可以查看到其中关系


通过csh可以切换到cshell

通过ksh可以切换到kshell 


bash特性

1、命令历史、命令补全

    bash会自动记录命令并记录到内存

    history

history 即可显示命令历史,

黑客打扫痕迹会用到

例子:不想让别人知道自己执行过哪些历史

-c 清空整个命令历史

-d +行号例子:history -d 500删除第500行的历史命令

例子:history -d 500 10从第500个开始向后删10个 

历史命令的存储文件~/.bash_history

-w:保存命令历史到历史文件中


环境变量中有个

HISTSIZE:命令历史大小

echo $HISTSIZE 默认是1000

!n:叹号加数组,用来执行第n条命令

!-n:执行倒数第n条命令

!! 执行上一条命令

!str :执行命令历史中以指定字符串开头的命令,如:!man

!$ :可以引用上一个命令的最后一个参数,如:nano !$

按下esc 松开再按.也可以引用上一个命令的最后一个参数

alt+.(远程终端不支持)


补全命令:输入cl 敲两下tab键,路径也可补全



2、管道、重定向

3、命令别名

例子:alias cls=clear把clear起个别名为cls

alias CMDALIAS=COMMAND [OPTION] [ARG]

如果有选项空格等,需要用单引号引起来

关闭之后就没有

通过配置文件,可永久使其生效

alias cdnet='cd /etc/sysconfig/network-scripts'

alias cls='clear'

alias cp='cp -i'

还有根据自己的

unalias +别名:撤销别名


命令替换

把命令中某个子命令替换为其执行结果的过程

echo "The current director /root."没有任何替换

echo "The current director $(pwd)" 就是先执行命令,并用返回的结果拼接会原来的字符串

touch ./file-$(date +%F-%H-%M-%S).txt 建立文件名以日期命名

echo "Dir is `pwd`"



命令替换的方法:

$(cmd [option] [arg])

使用反引号`cmd [option] [arg]`

双引号:称为弱引用,可以实现变量替换,用变量的值来替换变量的名字

单引号:弱引用,不完成变量替换




4、命令行编辑

5、命令行展开

6、文件名通配 globbing

* 匹配任意长度的任意字符,没长度也可以

? 任意单个字符

[] 匹配指定范围内的任意单个字符 [abc]从abc中选一个,[a-z] [0-9]

[^] 托字符,指定范围之外的单个字符

[[]]两个中括号,

[:space:] 空白字符

[:alpha:] 所有字母 [^[:alpha:]]非字母

[:upper:] 大写字母

[:lower:] 小写字母

[:digit:] 数字

[:alnum:] 数字和大小写字母

[:punct:] 标点符号

#man 7 glob可以获得这些说明


字母开头字母结尾,中间含有空格

[[:alpha:]]*[[:space:]]*[[:alpha:]]


touch a123 ab123 abc xyz x12 xyz123

以一个字母开头,后面跟数字的文件名

以a开头,后面跟任意字符          

ls a*

以a开头,以3结尾               

ls a*3

以字母开头,后面跟任意数字的文件    

[a-zA-Z]*[0-9]


以a开头,后面跟了一个数字,后面又跟任意字符


显示文件名中包含了空白字符的文件

ls 


以任意一个字符开头,后面跟了y,又跟了任意字符 

ls ?y*


ls [^0-9]*


显示所有以a或m开头的文件

ls [am]*

显示所有文件命中包含了数字的文件

ls *[[:digit:]]*


显示所有以数字结尾且文件名中不包含空白的文件

ls *[^[:space:]]*[[:digit:]] 这是错误的,这个问题要依赖于正则表达式


显示文件名中包含了非字母或数字的特殊符号的文件

ls *[^[:alnum:]]* 这个也是有疑问的



7、变量

8、编程

通过man bash可以查看bash的帮助。


快捷键

命令光标跳转

    ctrl+a :调转到行首

    ctrl+e : 调到行尾

    ctrl+d : 

    ctrl+u :删除光标至命令行首的内容

    ctrl+k :删除光标至命令行尾的内容

    ctrl 加左右箭头可以向左右跳转一个单词(只有模拟终端支持)

    ctrl+l 可以清屏

    


3)启动程序

4)设备管理->安装系统

5)软件管理 安装与卸载

6)进程管理

7)网络管理