Linux基础一

:
Linux中所有内容都是以“文件”形式存储的;
压缩包:.gz/bz2/.tar.bz2/.tgz
二进制软件包:.rpm
网页文件:.html/.php
脚本文件:.sh
配置文件:.conf
linux中是不靠扩展名区分文件类型的、是靠权限来区分文件的;

windows下的程序是无法直接安装在linux中的、除非在linux中安装模拟器之后才可以安装windows程序/软件;


linux字符界面的优势:
1.字符界面占用系统资源少(节省系统资源)
2.字符界面减少了出错、被攻击的可能性(容错性高)


1.分区类型:
①主分区:最多只能有4个;
②扩展分区:
最多只能有一个;
主分区加扩展分区最多有4个;
不能写入数据,只能包含逻辑分区;
③逻辑分区:
逻辑分区盘符一定从5开始;

2.格式化:
格式化的根本目的是为了写入文件系统、把分区划分为等大小的数据块;
划分分区列表(分区列表包含了多个数据块):
分区列表包含:ID号、修改时间、权限

文件系统:
FAT16\最大分区支持2G

FAT32\最大分区空间16TB,单个文件不能超过4G;

NTFS\

EXT2\

EXT3\

EXT4\centos6.3默认支持的文件系统;


Linux硬盘分区完整过程:
1分区:为硬盘划分逻辑分区;
2格式化:写入文件系统;
3分区设备文件名:给每个分区定义设备文件名;
4分配盘符:给每个分区分配挂载点;

硬件设备文件名:/dev/目录
IED硬盘

/dev/hd[a-d]
SCSI/SATA/USB硬盘   /dev/sd[a-p]
光驱         /dev/cdrom&/dev/hdc
软盘         /dev/fd[0-1]
打印机(25针)      /dev/lp[0-2]
打印机(USB)      /dev/usb/lp[0-15]
鼠标         /dev/mouse
键盘         /dev/stdin

3.分区设备文件名:
设备文件名:
/dev/hda1(IDE硬盘接口)
"a"代表第一块IDE硬盘、"1"代表第一个分区;
IDE硬盘已逐渐被淘汰

/dev/sda1(SCSI硬盘接口、SATA硬盘接口)
"a"代表第一块SCSI/SATA硬盘、"1"代表第一个分区;
SCSI硬盘
SATA硬盘/串口硬盘

4.分配盘符:
主分区:1-4;
逻辑分区:从5开始;

Linux中是用“目录”作为盘符,且称之为“挂载点”
必须分区:
1. /(根分区)
2.swap分区/交换分区/虚拟内存
分配大小:内存≤4GB,swap分区为内存的2倍,当内存>4GB,则swap分区则和内存大小一致即可)
推荐分区:
1./boot(启动分区,200MB)


Linux中的管理员账户为"root",不是"administrator"

在创建用户时,会自动生成一个家目录,超级用户root的家目录就在"/root",其他普通用户的家目录都在"/home"下的二级目录,目录名就是用户名;

命令格式:命令 [选项] [参数] / 个别命令使用不遵循此格式,当有多个选项时,可以写在一起;

Linux中以"."开头的文件是隐藏文件;ls -a可查看隐藏文件;


1.目录/文件处理命令:

a.建立目录:
mkdir (make directories)
   mkdir -p
[目录名]
      -p 递归创建

b.删除目录:
   删除空目录:
      rmdir(remove empty directories)
      rmdir [目录名]
   删除文件/目录:
      rm (remove0
      rm -rf [目录名/文件名]
         -r    :删除目录
         -f(force):强制删除

c.切换目录:
   cd(change
directory)
      ①cd [目录]
      ②cd ~   :进入当前用户的家目录
      ③cd
    :进入当前用户的家目录
      ④cd -   :进入上次目录
      ⑤cd ..   :进入上一级目录
      ⑥cd .   :进入当前目录

d.相对路径和绝对路径:
   ①相对路径:参照当前所在目录,进行查找
   ②绝对路径:从根目录开始指定,一级一级递归查找。

pwd(print working directory):显示当前目录所在位置;

e.复制
   cp(copy)
      cp [选项] [原文件或目录] [目标目录]
         -r复制目录
         -p连带文件属性复制
         -d若原文件是链接文件,则复制链接属性
         -a相当于-pdr

f.剪切/改名
   mv(move)
      mv [原文件或目录] [目标目录]

g.常见目录作用
   ①/:根目录;
   ②/bin:命令保存目录(普通用户就可以读取的命令);
   ③/sbin:命令保存目录(超级用户才能使用的目录);
   ④/usr:系统软件资源目录;
      /usr/bin/系统命令(普通用户);
      /usr/sbin/系统命令(超级用户);
   ⑤/boot:启动目录,系统启动相关文件;
   ⑥/dev:设备文件保存目录;
   ⑦/etc:系统配置文件保存目录;
   ⑧/root:超级用户的家目录;
   ⑨/home:普通用户的家目录;
   ⑩/lib:系统库保存目录;
   /mnt:系统挂载目录;
   /media:挂载目录;
   /tmp:临时目录;
   /proc:直接写入内存的;   
   /sys:直接写入内存的;
      /proc&/sys目录不能直接操作,该目录保存的是内存过载点
   /var:系统相关文档内容;

2.链接:
ln(link):生成链接文件;
   ln -s [原文件]
[目标文件]
      -s(soft):创建软链接
      不加-s创建的是硬链接
硬链接和软链接
   硬链接:
      1、拥有相同的i(inode)节点和存储block块,可看做同一个文件;
      2、可通过i节点识别;
      3、不能跨分区;
      4、不能针对目录使用;

软链接:
      1、类似windows快捷方式;
      2、软件拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据;
      3、lrwxrwxrwx   l 软链接;
         软链接文件权限都为rwxrwxrwx;
      4、修改任意文件,另一个文件都改变;
      5、删除原文件,软链接将不能使用;
      6、创建软链接的时,必须使用绝对路径;


文件搜索命令 locate
   locate
文件名
      在locate数据库中按“文件名”搜索,搜索速度快;

/var/lib/mlocate
   #locate命令所搜索的后台数据库,每天更新一次;不同版本的linux中的locate数据库名称有差异;

updatedb
   强制/手动更新locate数据库

locate/whereis/which遵守updatedb.conf文件中的各项条件限制;
   /etc/updatedb.conf配置文件;
      PRUNE_BIND_MOUNTS="yes/no"   //开启/关闭搜索限制
      PRUNEFS="*"   //搜索时,不搜索的文件系统;
      PRUNENAMES="*"   //搜索时,不搜索的文件类型;
      PRUNEPATHS="*"   //搜索时,不搜索的路径;


命令搜索命令 whereis/which
   whereis   命令名   //搜索系统命令所在路径及帮助文档所在位置;
      选项:
         -b:只查找可执行文件;
         -m:只查找帮助文件;

which   文件名   //搜索系统命令所在位置及别名;

PATH环境变量:定义的是系统搜索命令的路径;


find [搜索范围] [搜索条件]
   #搜索文件
   #避免大范围搜索,会非常耗费系统资源;
   #find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配;

linux中主要的通配符:
         *   :匹配任意多个内容
         ?   :匹配任意一个字符
         []   :匹配任意一个中括号内的字符

find选项
      -name:根据文件名进行查找;
      -iname:不区分大小写;
      -user:根据所有者进行查找;
      -nouser:查找没有所有者的文件;

-atime:文件访问时间;
      -ctime:改变文件属性;
      -mtime:修改文件内容;
         -10/10/+10:十天内/十天当天/10天前
      -size:按照文件大小查找;
         -25k/25k/+25k:小于25k/等于25k/大于25k;         k必须是小写,M必须是大写;
      -inum:根据文件的i节点进行查找;
      -a(and):逻辑与,多个条件同时满足;
      -o(or):逻辑或,多个条件满足其中一个即可;
      -exec命令{}\;   :对搜索接口执行第二次操作;

grep [选项] "字符串" 文件名
   #子文件当中匹配符合条件的字符串;
   选项:
      -i   忽略大小写;
      -v   排除指定字符串/反向查找;

find与grep的区别
   find:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配;

grep:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配;


帮助命令:man
   man
[命令]   :#即可查询某个命令的详细信息

[命令]
--help   :#获取命令选项的帮助;

shell内部命令帮助:

help
shell   :#只能获取shell内部命令的帮助;
确认是否为shell内部命令的方式:

whereis
[命令]   //#查询结果如若没有执行文件则为内部命令;
   help
[命令]   //#只能获取内部命令的帮助;

详细命令帮助info:
   info
[命令]
      - 回车://进入子帮助页面(带有*号标记)
      - u ://进入上层页面;
      - n ://进入下一个帮助小节;
      - p ://进入上一个帮助小节;
      - q ://退出;


压缩与解压缩命令:

1、常用压缩格式:   .zip/.gz/.bz2
      (1).zip:
      .zip格式压缩:
         ①zip 压缩文件名.zip 源文件 //压缩文件;
         ②zip -r 压缩文件名 源目录 //压缩目录;

.zip格式解压缩:
         ①unzip   压缩文件   //解压缩.zip文件;

(2).gz:
      .gz格式压缩:
         ①gzip 源文件 //压缩为.gz格式的压缩文件,源文件会消失;
         ②gzip -c 源文件 > 压缩文件名.gz
//压缩为.gz格式,源文件保留;
         ③gzip -r 目录 //压缩目录下所有的子文件,但不能压缩目录;

.gz格式解压缩:
         ①gzip -d 压缩文件
//解压缩文件;   
         ②gzip -r 压缩文件 //解压目录;
         ③gunzip 压缩文件 //解压缩文件;

(3)
.bz2:
      .bz2格式压缩:
         !!bzip2命令不能压缩目录
         ①bzip2 源文件 //压缩为.bz2格式,不保留源文件;
         ②bzip2 -k 源文件 //压缩之后保留源文件;
         
      .bz2格式解压缩:
         ①bzip2 -d 压缩文件 //解压缩,-k保留压缩文件;
         ②bunzip2 压缩文件
//解压缩,-k保留压缩文件;

2、常用压缩格式:   .tar.gz/.tar.bz2

tar //解/打包命令
         tar -cvf 打包文件名.tar 源文件
            -c:打包;
            -v:显示过程;
            -f:指定打包后的文件名;

tar -xvf 打包文件名
            -x:解包

tar [参数] 打包文件名.tar.* 源文件 -C
[路径]   //指定解压存储路径;
如果需将多个文件打包,则直接在源文件后用空格连接即可;
例:   tar -zcvf
打包文件名 源文件1 源文件2 源文件3
若只查看不解压.tar/.tar.*文件,则使用-t选项即可;
            -t:显示.tar/.tar*文件,不进行解压操作;

其实.tar.gz/.tar.bz2格式是先打包为.tar格式,再压缩为.gz/.bz2格式;

.tar.gz:
         tar -zcvf 压缩包名.tar.gz 源文件
            -z:压缩为.tar.gz格式

tar -zxvf 压缩包名.tar.gz
            -x:解压缩.tar.gz格式

.tar.bz2:

tar -jcvf 压缩包名.tar.bz2 源文件
            -j:压缩为.tar.bz2格式

tar -jxvf 压缩包名.tar.bz2
            -x:解压缩.tar.bz2格式

linux最常用的压缩格式:.tar.gz/.tar.bz2


推荐关机使用shutdown!!!!!!!
shutdown [选项] 时间

选项:
      ①-c:取消前一个关机命令;
      ②-h:关机
      ③-r:重启

时间:
      ①now   //现在
      ②时:分
其他关机命令:
   ①halt
   ②poweroff
   ③init
0
以上三个关机命令不建议使用,相对shutdown,shutdown更为安全;
其他重启命令:
   ①reboot
   ②init
6

系统运行级别:
   0   //关机
   1   //单用户(类似windows安全模式)
   2   //不完全多用户,不含NFS服务(字符界面,不包含文件共享服务)
   3   //完全多用户(字符界面)
   4   //未分配
   5   //图形界面
   6   //重启

runlevel   //查询上次及当前的系统级别;

vim   /etc/inittab      //系统级别配置文件;
         id:3:initdefault:   //修改系统默认运行级别(id后的数字则为系统级别)

logout   //退出登录命令(每次使用后,建议退出当前用户,避免他人因账户占用无法使用!与windows中的注销相似!)


挂载命令:
   mount      //查询系统中已挂载的设备;
   mount
-a   //根据配置文件/etc/fstab内容,自动重新再挂载;
      外接设备不建议设为自动挂载;

挂载命令格式:
   mount [-t
文件系统] [-o 特殊选项] 设备文件名 挂载点;
      /dev/sr0是linux中光盘的设备文件名,而/dev/cdrom则是/dev/sr0的软链接,建议挂载时使用/dev/sr0;

-t 文件系统   //加入文件系统该类型来指定挂载的类型,可以为ext3、ext4、iso9660等文件系统;
         linux标准文件系统ext3/ext4,centos6.0以后默认文件系统都是ext4、光盘的默认文件系统为:iso9660;
         
      -o 特殊选项   //可以指定挂载的额外选项;

umount
设备文件名或挂载点   //取消挂载/卸载 命令;
      当在linux中,挂载U盘/光盘/移动硬盘类似的外接设备后,当不使用时、需要将挂载点卸载掉!

挂载U盘:
   fdisk
-l   //查看系统当前已识别的硬盘;
   mount -t
vfat 设备文件名 挂载点      //文件系统vfat其实就是windows中的FAT32(此种文件系统类型几乎已经淘汰,因为该文件系统最多识别4G;linux默认是
支持NTFS文件系统的(如果需要linux系统识别NTFS,要么重新编译系统内核,要么下载安装“NTFS-3G”该软件安装之后系统则可识别
NTFS文件系统;


用户登录查看:
   1、查看登录信息:
      w [用户名]
         命令输出:
            ①USER   //登陆的用户名;
            ②TTY   //登录终端;tty1是本地登陆,不会有登录的IP地址;pts/0则是第一个远程登陆,会存在登录的IP地址;            
            ③FROM   //从哪个IP地址登录;
            ④[email protected]   //登陆时间;
            ⑤IDLE   //用户闲置时间;
            ⑥JCPU   //指的是和该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间;
            ⑦PCPU   //是指当前进程所占用的时间;
            ⑧WHAT   //当前正在运行的命令;

who [用户名]
         命令输出:
            ①- 用户名;
            ②- 登陆终端;
            ③-登录时间(登录来源IP地址);

2、查询当前登录和过去登录的用户信息:
      last
         last命令默认是读取/var/log/wtmp文件数据;
         命令输出:
            ①- 用户名;
            ②- 登录终端;
            ③- 登录IP;
            ④- 登录时间;
            ⑤- 退出时间(在线时间);

3、查看所有所有用户的最后一次登录时间:
      lastlog
         lastlog命令默认是读取/var/log/lastlog文件内容;
         命令输出:
            ①- 用户名;
            ②- 登陆终端;
            ③- 登录IP;
            ④- 最后一次登录时间;

bandicam

Shell概述:
   echo
$shell
   /etc/shells   //shell配置文件;


echo输出命令
   echo [选项]
[输出内容]
      -e   //支持反斜线控制的字符转换;
   控制字符:
      \a   //输出警告音;
      \b   //退格键,也就是向左删除键;
      \n   //换行符;
      \r   //回车键;
      \t   //制表符,也就是Tab键;
      \v   //垂直制表符;
      \0nnn   //按照八进制ASCLL码表输出字符。其中0位数字零,nnn是三位八进制数;
      \xhh   //按照十六进制ASCLL码表输出字符。其中nn是两位十六进制数;
      \e[1;31m   //开启颜色显示;
         30m=黑色,31m=红色,32m=绿色,33m=黄色,34m=蓝色,35m=洋红,36m=青色,37m=白色;
      \e[0m      //结束颜色显示;

shell脚本执行:
   赋予执行权限,直接运行:
      chmod 755 *.sh
      ./*.sh
   通过Bash调用执行脚本
      bash *.sh


Bash的基本功能:
   1、别名:
      ①alias         //查看系统中所有的命令别名;
      ②alias 别名 =
‘原命令‘   //设定命令别名(临时生效,一旦重启则失效;
      ③vim
~/.bashrc      //将别名写入环境变量配置文件(永久生效)
      ④source
~/.bashrc   //立即调用该文件,使其立即生效;
      ⑤unalias   别名      //删除别名;

2、常用快捷键:
      ①ctrl+c   //强制终止当前命令
      ②ctrl+l   //清屏
      ③ctrl+a   //光标移动到命令行首
      ④ctrl+e   //光标移动到命令行尾
      ⑤ctrl+u   //从光标所在位置删除到行首
      ⑥ctrl+z   //把命令放入后台
      ⑦ctrl+r   //在历史命令中搜索


历史命令:
   history
[选项] [历史命令保存文件]
      ①-c   //清空历史命令;
      ②-w   //把缓存中的历史命令写入历史命令保存文件~/.bash_history
      ③历史命令默认会保存1000条,可在环境变量配置文件/etc/profile内HISTSIZE=1000处进行修改;

历史命令的调用:
      ①使用   ↑↓   调用以前的历史命令;
      ②使用    !n    重复执行第n条历史命令;
      ③使用    !!    重复执行上一条命令;
      ④使用    !字   串 重复执行最后一条以该字串开头的命令;


1、输出重定向:
   标准输出重定向:
      ①[命令] >
[文件]      //以覆盖的方式,把命令的正确输出 输出到指定的文件或设备当中;

②[命令] >>
[文件]   //以追加的方式,把命令的正确输出 输出到指定的文件或设备当中;

标准错误输出重定向:
      ①[错误命令]
2>[文件]   //以覆盖的方式,把命令的错误输出 输出到指定的文件或设备当中;(>后没有空格)

②[错误命令]
2>>[文件]   //以追加的方式,把命令的错误输出
输出到指定的文件或设备当中;(>>后没有空格)

正确输出和错误输出同时保存:
      ①[命令] > [文件]
2>&1   //以覆盖的方式,把命令的正确和错误输出都保存到指定的文件当中;

②[命令] >> [文件]
2>&1   //以追加的方式,把命令的正确和错误输出都保存到指定的文件当中;

③[命令]
&>[文件]   //以覆盖的方式,把命令的正确和错误输出都保存到指定的文件当中;(>后没有空格)

④[命令]
&>>[文件]   //以追加的方式,把命令的正确和错误输出都保存到指定的文件当中;(>>后没有空格)

⑤[命令] >> [文件1]
2>>[文件2]   //把正确的输出追加到文件1中,把错误的输出追加到文件2中;(2>>后没有空格)

2、输入重定向:
   [命令]<[文件]      //把文件作为命令的输入;
   [命令]<<[标识符]   //标识符把标识符质检内容作为命令的输入;
   wc [选项]
[文件名]
      选项:
      ①-c   //统计字节数;
      ②-w   //统计单词数;
      ③-l   //统计行数;


1、多命令顺序执行:   
   ;(命令1
;命令2)   //多个命令顺序执行,命令之间没有任何逻辑联系;
   &&(命令1&&命令2)   //逻辑与;当命令1正确执行,则命令2才会执行。当命令1执行不正确,则命令2不会执行;
   ||(命令1||命令2)   //逻辑或;当命令1执行不正确,则命令2才会执行。当命令1正确执行,则命令2不会执行;

2、管道符:
   |(命令1 |
命令2)   //命令1的正确输出作为命令2的操作对象;


1、通配符:
   ?   //匹配一个任意字符;
   *   //匹配0个或任意多个任意字符,也就是可以匹配任何内容;
   []   //匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c;
   [-]   //匹配中括号中任意一个字符,-代表一个范围,例如:[a-z]代表匹配一个小写字符。
   [^]   //逻辑非;表示匹配不是中括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符。

2、Bash中其他特殊符号:

‘‘   //单引号。在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义。

""   //双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“`”和“\”是例外,拥有“调用变量的值”、“引用命令
”和“转义符”的特殊含义。

``   //反引号。反引号括起来的内容是系统命令,在Bash中会先运行它、和$()作用一样,不过推荐使用$(),因为反引号非常容易看错。

$()   //和反引号作用一样,用来引用系统命令;

#   //在Shell脚本中,#开头的行代表注释;

$   //用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。

\   //转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当做是变量使用;

:
Linux中所有内容都是以“文件”形式存储的;
压缩包:.gz/bz2/.tar.bz2/.tgz
二进制软件包:.rpm
网页文件:.html/.php
脚本文件:.sh
配置文件:.conf
linux中是不靠扩展名区分文件类型的、是靠权限来区分文件的;

windows下的程序是无法直接安装在linux中的、除非在linux中安装模拟器之后才可以安装windows程序/软件;


linux字符界面的优势:
1.字符界面占用系统资源少(节省系统资源)
2.字符界面减少了出错、被攻击的可能性(容错性高)


1.分区类型:
①主分区:最多只能有4个;
②扩展分区:
最多只能有一个;
主分区加扩展分区最多有4个;
不能写入数据,只能包含逻辑分区;
③逻辑分区:
逻辑分区盘符一定从5开始;

2.格式化:
格式化的根本目的是为了写入文件系统、把分区划分为等大小的数据块;
划分分区列表(分区列表包含了多个数据块):
分区列表包含:ID号、修改时间、权限

文件系统:
FAT16\最大分区支持2G

FAT32\最大分区空间16TB,单个文件不能超过4G;

NTFS\

EXT2\

EXT3\

EXT4\centos6.3默认支持的文件系统;


Linux硬盘分区完整过程:
1分区:为硬盘划分逻辑分区;
2格式化:写入文件系统;
3分区设备文件名:给每个分区定义设备文件名;
4分配盘符:给每个分区分配挂载点;

硬件设备文件名:/dev/目录
IED硬盘

/dev/hd[a-d]
SCSI/SATA/USB硬盘   /dev/sd[a-p]
光驱         /dev/cdrom&/dev/hdc
软盘         /dev/fd[0-1]
打印机(25针)      /dev/lp[0-2]
打印机(USB)      /dev/usb/lp[0-15]
鼠标         /dev/mouse
键盘         /dev/stdin

3.分区设备文件名:
设备文件名:
/dev/hda1(IDE硬盘接口)
"a"代表第一块IDE硬盘、"1"代表第一个分区;
IDE硬盘已逐渐被淘汰

/dev/sda1(SCSI硬盘接口、SATA硬盘接口)
"a"代表第一块SCSI/SATA硬盘、"1"代表第一个分区;
SCSI硬盘
SATA硬盘/串口硬盘

4.分配盘符:
主分区:1-4;
逻辑分区:从5开始;

Linux中是用“目录”作为盘符,且称之为“挂载点”
必须分区:
1. /(根分区)
2.swap分区/交换分区/虚拟内存
分配大小:内存≤4GB,swap分区为内存的2倍,当内存>4GB,则swap分区则和内存大小一致即可)
推荐分区:
1./boot(启动分区,200MB)


Linux中的管理员账户为"root",不是"administrator"

在创建用户时,会自动生成一个家目录,超级用户root的家目录就在"/root",其他普通用户的家目录都在"/home"下的二级目录,目录名就是用户名;

命令格式:命令 [选项] [参数] / 个别命令使用不遵循此格式,当有多个选项时,可以写在一起;

Linux中以"."开头的文件是隐藏文件;ls -a可查看隐藏文件;


1.目录/文件处理命令:

a.建立目录:
mkdir (make directories)
   mkdir -p
[目录名]
      -p 递归创建

b.删除目录:
   删除空目录:
      rmdir(remove empty directories)
      rmdir [目录名]
   删除文件/目录:
      rm (remove0
      rm -rf [目录名/文件名]
         -r    :删除目录
         -f(force):强制删除

c.切换目录:
   cd(change
directory)
      ①cd [目录]
      ②cd ~   :进入当前用户的家目录
      ③cd
    :进入当前用户的家目录
      ④cd -   :进入上次目录
      ⑤cd ..   :进入上一级目录
      ⑥cd .   :进入当前目录

d.相对路径和绝对路径:
   ①相对路径:参照当前所在目录,进行查找
   ②绝对路径:从根目录开始指定,一级一级递归查找。

pwd(print working directory):显示当前目录所在位置;

e.复制
   cp(copy)
      cp [选项] [原文件或目录] [目标目录]
         -r复制目录
         -p连带文件属性复制
         -d若原文件是链接文件,则复制链接属性
         -a相当于-pdr

f.剪切/改名
   mv(move)
      mv [原文件或目录] [目标目录]

g.常见目录作用
   ①/:根目录;
   ②/bin:命令保存目录(普通用户就可以读取的命令);
   ③/sbin:命令保存目录(超级用户才能使用的目录);
   ④/usr:系统软件资源目录;
      /usr/bin/系统命令(普通用户);
      /usr/sbin/系统命令(超级用户);
   ⑤/boot:启动目录,系统启动相关文件;
   ⑥/dev:设备文件保存目录;
   ⑦/etc:系统配置文件保存目录;
   ⑧/root:超级用户的家目录;
   ⑨/home:普通用户的家目录;
   ⑩/lib:系统库保存目录;
   /mnt:系统挂载目录;
   /media:挂载目录;
   /tmp:临时目录;
   /proc:直接写入内存的;   
   /sys:直接写入内存的;
      /proc&/sys目录不能直接操作,该目录保存的是内存过载点
   /var:系统相关文档内容;

2.链接:
ln(link):生成链接文件;
   ln -s [原文件]
[目标文件]
      -s(soft):创建软链接
      不加-s创建的是硬链接
硬链接和软链接
   硬链接:
      1、拥有相同的i(inode)节点和存储block块,可看做同一个文件;
      2、可通过i节点识别;
      3、不能跨分区;
      4、不能针对目录使用;

软链接:
      1、类似windows快捷方式;
      2、软件拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据;
      3、lrwxrwxrwx   l 软链接;
         软链接文件权限都为rwxrwxrwx;
      4、修改任意文件,另一个文件都改变;
      5、删除原文件,软链接将不能使用;
      6、创建软链接的时,必须使用绝对路径;


文件搜索命令 locate
   locate
文件名
      在locate数据库中按“文件名”搜索,搜索速度快;

/var/lib/mlocate
   #locate命令所搜索的后台数据库,每天更新一次;不同版本的linux中的locate数据库名称有差异;

updatedb
   强制/手动更新locate数据库

locate/whereis/which遵守updatedb.conf文件中的各项条件限制;
   /etc/updatedb.conf配置文件;
      PRUNE_BIND_MOUNTS="yes/no"   //开启/关闭搜索限制
      PRUNEFS="*"   //搜索时,不搜索的文件系统;
      PRUNENAMES="*"   //搜索时,不搜索的文件类型;
      PRUNEPATHS="*"   //搜索时,不搜索的路径;


命令搜索命令 whereis/which
   whereis   命令名   //搜索系统命令所在路径及帮助文档所在位置;
      选项:
         -b:只查找可执行文件;
         -m:只查找帮助文件;

which   文件名   //搜索系统命令所在位置及别名;

PATH环境变量:定义的是系统搜索命令的路径;


find [搜索范围] [搜索条件]
   #搜索文件
   #避免大范围搜索,会非常耗费系统资源;
   #find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配;

linux中主要的通配符:
         *   :匹配任意多个内容
         ?   :匹配任意一个字符
         []   :匹配任意一个中括号内的字符

find选项
      -name:根据文件名进行查找;
      -iname:不区分大小写;
      -user:根据所有者进行查找;
      -nouser:查找没有所有者的文件;

-atime:文件访问时间;
      -ctime:改变文件属性;
      -mtime:修改文件内容;
         -10/10/+10:十天内/十天当天/10天前
      -size:按照文件大小查找;
         -25k/25k/+25k:小于25k/等于25k/大于25k;         k必须是小写,M必须是大写;
      -inum:根据文件的i节点进行查找;
      -a(and):逻辑与,多个条件同时满足;
      -o(or):逻辑或,多个条件满足其中一个即可;
      -exec命令{}\;   :对搜索接口执行第二次操作;

grep [选项] "字符串" 文件名
   #子文件当中匹配符合条件的字符串;
   选项:
      -i   忽略大小写;
      -v   排除指定字符串/反向查找;

find与grep的区别
   find:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配;

grep:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配;


帮助命令:man
   man
[命令]   :#即可查询某个命令的详细信息

[命令]
--help   :#获取命令选项的帮助;

shell内部命令帮助:

help
shell   :#只能获取shell内部命令的帮助;
确认是否为shell内部命令的方式:

whereis
[命令]   //#查询结果如若没有执行文件则为内部命令;
   help
[命令]   //#只能获取内部命令的帮助;

详细命令帮助info:
   info
[命令]
      - 回车://进入子帮助页面(带有*号标记)
      - u ://进入上层页面;
      - n ://进入下一个帮助小节;
      - p ://进入上一个帮助小节;
      - q ://退出;


压缩与解压缩命令:

1、常用压缩格式:   .zip/.gz/.bz2
      (1).zip:
      .zip格式压缩:
         ①zip 压缩文件名.zip 源文件 //压缩文件;
         ②zip -r 压缩文件名 源目录 //压缩目录;

.zip格式解压缩:
         ①unzip   压缩文件   //解压缩.zip文件;

(2).gz:
      .gz格式压缩:
         ①gzip 源文件 //压缩为.gz格式的压缩文件,源文件会消失;
         ②gzip -c 源文件 > 压缩文件名.gz
//压缩为.gz格式,源文件保留;
         ③gzip -r 目录 //压缩目录下所有的子文件,但不能压缩目录;

.gz格式解压缩:
         ①gzip -d 压缩文件
//解压缩文件;   
         ②gzip -r 压缩文件 //解压目录;
         ③gunzip 压缩文件 //解压缩文件;

(3)
.bz2:
      .bz2格式压缩:
         !!bzip2命令不能压缩目录
         ①bzip2 源文件 //压缩为.bz2格式,不保留源文件;
         ②bzip2 -k 源文件 //压缩之后保留源文件;
         
      .bz2格式解压缩:
         ①bzip2 -d 压缩文件 //解压缩,-k保留压缩文件;
         ②bunzip2 压缩文件
//解压缩,-k保留压缩文件;

2、常用压缩格式:   .tar.gz/.tar.bz2

tar //解/打包命令
         tar -cvf 打包文件名.tar 源文件
            -c:打包;
            -v:显示过程;
            -f:指定打包后的文件名;

tar -xvf 打包文件名
            -x:解包

tar [参数] 打包文件名.tar.* 源文件 -C
[路径]   //指定解压存储路径;
如果需将多个文件打包,则直接在源文件后用空格连接即可;
例:   tar -zcvf
打包文件名 源文件1 源文件2 源文件3
若只查看不解压.tar/.tar.*文件,则使用-t选项即可;
            -t:显示.tar/.tar*文件,不进行解压操作;

其实.tar.gz/.tar.bz2格式是先打包为.tar格式,再压缩为.gz/.bz2格式;

.tar.gz:
         tar -zcvf 压缩包名.tar.gz 源文件
            -z:压缩为.tar.gz格式

tar -zxvf 压缩包名.tar.gz
            -x:解压缩.tar.gz格式

.tar.bz2:

tar -jcvf 压缩包名.tar.bz2 源文件
           -j:压缩为.tar.bz2格式

tar -jxvf 压缩包名.tar.bz2
            -x:解压缩.tar.bz2格式

linux最常用的压缩格式:.tar.gz/.tar.bz2


推荐关机使用shutdown!!!!!!!
shutdown [选项] 时间

选项:
      ①-c:取消前一个关机命令;
      ②-h:关机
      ③-r:重启

时间:
      ①now   //现在
      ②时:分
其他关机命令:
   ①halt
   ②poweroff
   ③init
0
以上三个关机命令不建议使用,相对shutdown,shutdown更为安全;
其他重启命令:
   ①reboot
   ②init
6

系统运行级别:
   0   //关机
   1   //单用户(类似windows安全模式)
   2   //不完全多用户,不含NFS服务(字符界面,不包含文件共享服务)
   3   //完全多用户(字符界面)
   4   //未分配
   5   //图形界面
   6   //重启

runlevel   //查询上次及当前的系统级别;

vim   /etc/inittab      //系统级别配置文件;
         id:3:initdefault:   //修改系统默认运行级别(id后的数字则为系统级别)

logout   //退出登录命令(每次使用后,建议退出当前用户,避免他人因账户占用无法使用!与windows中的注销相似!)


挂载命令:
   mount      //查询系统中已挂载的设备;
   mount
-a   //根据配置文件/etc/fstab内容,自动重新再挂载;
      外接设备不建议设为自动挂载;

挂载命令格式:
   mount [-t
文件系统] [-o 特殊选项] 设备文件名 挂载点;
      /dev/sr0是linux中光盘的设备文件名,而/dev/cdrom则是/dev/sr0的软链接,建议挂载时使用/dev/sr0;

-t 文件系统   //加入文件系统该类型来指定挂载的类型,可以为ext3、ext4、iso9660等文件系统;
         linux标准文件系统ext3/ext4,centos6.0以后默认文件系统都是ext4、光盘的默认文件系统为:iso9660;
         
      -o 特殊选项   //可以指定挂载的额外选项;

umount
设备文件名或挂载点   //取消挂载/卸载 命令;
      当在linux中,挂载U盘/光盘/移动硬盘类似的外接设备后,当不使用时、需要将挂载点卸载掉!

挂载U盘:
   fdisk
-l   //查看系统当前已识别的硬盘;
   mount -t
vfat 设备文件名 挂载点      //文件系统vfat其实就是windows中的FAT32(此种文件系统类型几乎已经淘汰,因为该文件系统最多识别4G;linux默认是
支持NTFS文件系统的(如果需要linux系统识别NTFS,要么重新编译系统内核,要么下载安装“NTFS-3G”该软件安装之后系统则可识别
NTFS文件系统;


用户登录查看:
   1、查看登录信息:
      w [用户名]
         命令输出:
            ①USER   //登陆的用户名;
            ②TTY   //登录终端;tty1是本地登陆,不会有登录的IP地址;pts/0则是第一个远程登陆,会存在登录的IP地址;            
            ③FROM   //从哪个IP地址登录;
            ④[email protected]   //登陆时间;
            ⑤IDLE   //用户闲置时间;
            ⑥JCPU   //指的是和该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间;
            ⑦PCPU   //是指当前进程所占用的时间;
            ⑧WHAT   //当前正在运行的命令;

who [用户名]
         命令输出:
            ①- 用户名;
            ②- 登陆终端;
            ③-登录时间(登录来源IP地址);

2、查询当前登录和过去登录的用户信息:
      last
         last命令默认是读取/var/log/wtmp文件数据;
         命令输出:
            ①- 用户名;
            ②- 登录终端;
            ③- 登录IP;
            ④- 登录时间;
            ⑤- 退出时间(在线时间);

3、查看所有所有用户的最后一次登录时间:
      lastlog
         lastlog命令默认是读取/var/log/lastlog文件内容;
         命令输出:
            ①- 用户名;
            ②- 登陆终端;
            ③- 登录IP;
            ④- 最后一次登录时间;

bandicam

Shell概述:
   echo
$shell
   /etc/shells   //shell配置文件;


echo输出命令
   echo [选项]
[输出内容]
      -e   //支持反斜线控制的字符转换;
   控制字符:
      \a   //输出警告音;
      \b   //退格键,也就是向左删除键;
      \n   //换行符;
      \r   //回车键;
      \t   //制表符,也就是Tab键;
      \v   //垂直制表符;
      \0nnn   //按照八进制ASCLL码表输出字符。其中0位数字零,nnn是三位八进制数;
      \xhh   //按照十六进制ASCLL码表输出字符。其中nn是两位十六进制数;
      \e[1;31m   //开启颜色显示;
         30m=黑色,31m=红色,32m=绿色,33m=黄色,34m=蓝色,35m=洋红,36m=青色,37m=白色;
      \e[0m      //结束颜色显示;

shell脚本执行:
   赋予执行权限,直接运行:
      chmod 755 *.sh
      ./*.sh
   通过Bash调用执行脚本
      bash *.sh


Bash的基本功能:
   1、别名:
      ①alias         //查看系统中所有的命令别名;
      ②alias 别名 =
‘原命令‘   //设定命令别名(临时生效,一旦重启则失效;
      ③vim
~/.bashrc      //将别名写入环境变量配置文件(永久生效)
      ④source
~/.bashrc   //立即调用该文件,使其立即生效;
      ⑤unalias   别名      //删除别名;

2、常用快捷键:
      ①ctrl+c   //强制终止当前命令
      ②ctrl+l   //清屏
      ③ctrl+a   //光标移动到命令行首
      ④ctrl+e   //光标移动到命令行尾
      ⑤ctrl+u   //从光标所在位置删除到行首
      ⑥ctrl+z   //把命令放入后台
      ⑦ctrl+r   //在历史命令中搜索


历史命令:
   history
[选项] [历史命令保存文件]
      ①-c   //清空历史命令;
      ②-w   //把缓存中的历史命令写入历史命令保存文件~/.bash_history
      ③历史命令默认会保存1000条,可在环境变量配置文件/etc/profile内HISTSIZE=1000处进行修改;

历史命令的调用:
      ①使用   ↑↓   调用以前的历史命令;
      ②使用    !n    重复执行第n条历史命令;
      ③使用    !!    重复执行上一条命令;
      ④使用    !字   串 重复执行最后一条以该字串开头的命令;


1、输出重定向:
   标准输出重定向:
      ①[命令] >
[文件]      //以覆盖的方式,把命令的正确输出 输出到指定的文件或设备当中;

②[命令] >>
[文件]   //以追加的方式,把命令的正确输出 输出到指定的文件或设备当中;

标准错误输出重定向:
      ①[错误命令]
2>[文件]   //以覆盖的方式,把命令的错误输出 输出到指定的文件或设备当中;(>后没有空格)

②[错误命令]
2>>[文件]   //以追加的方式,把命令的错误输出
输出到指定的文件或设备当中;(>>后没有空格)

正确输出和错误输出同时保存:
      ①[命令] > [文件]
2>&1   //以覆盖的方式,把命令的正确和错误输出都保存到指定的文件当中;

②[命令] >> [文件]
2>&1   //以追加的方式,把命令的正确和错误输出都保存到指定的文件当中;

③[命令]
&>[文件]   //以覆盖的方式,把命令的正确和错误输出都保存到指定的文件当中;(>后没有空格)

④[命令]
&>>[文件]   //以追加的方式,把命令的正确和错误输出都保存到指定的文件当中;(>>后没有空格)

⑤[命令] >> [文件1]
2>>[文件2]   //把正确的输出追加到文件1中,把错误的输出追加到文件2中;(2>>后没有空格)

2、输入重定向:
   [命令]<[文件]      //把文件作为命令的输入;
   [命令]<<[标识符]   //标识符把标识符质检内容作为命令的输入;
   wc [选项]
[文件名]
      选项:
      ①-c   //统计字节数;
      ②-w   //统计单词数;
      ③-l   //统计行数;


1、多命令顺序执行:   
   ;(命令1
;命令2)   //多个命令顺序执行,命令之间没有任何逻辑联系;
   &&(命令1&&命令2)   //逻辑与;当命令1正确执行,则命令2才会执行。当命令1执行不正确,则命令2不会执行;
   ||(命令1||命令2)   //逻辑或;当命令1执行不正确,则命令2才会执行。当命令1正确执行,则命令2不会执行;

2、管道符:
   |(命令1 |
命令2)   //命令1的正确输出作为命令2的操作对象;


1、通配符:
   ?   //匹配一个任意字符;
   *   //匹配0个或任意多个任意字符,也就是可以匹配任何内容;
   []   //匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c;
   [-]   //匹配中括号中任意一个字符,-代表一个范围,例如:[a-z]代表匹配一个小写字符。
   [^]   //逻辑非;表示匹配不是中括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符。

2、Bash中其他特殊符号:

‘‘   //单引号。在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义。

""   //双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“`”和“\”是例外,拥有“调用变量的值”、“引用命令
”和“转义符”的特殊含义。

``   //反引号。反引号括起来的内容是系统命令,在Bash中会先运行它、和$()作用一样,不过推荐使用$(),因为反引号非常容易看错。

$()   //和反引号作用一样,用来引用系统命令;

#   //在Shell脚本中,#开头的行代表注释;

$   //用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。

\   //转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当做是变量使用;

时间: 2024-10-06 13:32:16

Linux基础一的相关文章

Linux基础命令(之一)详解

Linux基础命令(之一)详解 学习linux的朋友都知道,系统大多数操作都是命令行的操作方式,当然如今也有图形化界面的操作方式,但是多数情况下仍然使用命令的操作模式,所以命令的作用与用法是成为学好.学会Linux系统的必备前提,也是重点之一,所以今天来聊一聊一些基础命令的用法与其作用. 1.系统关机或重启命令(小白也必须要会的) shutdown (win 系统也有) 常用参数:shutdown -h (halt) 直接关机(关闭电源) shutdown -h  now[+10]    现在关

linux基础命令——tree

Linux基础命令--tree 编辑文章 -d :只显示目录,不显示其目录下的子文件 -L level:显示第几级 图片描述 显示以rc开头的 备份: 创建多级目录: -v:可以看过程

Linux基础之磁盘管理

 Linux基础之磁盘管理         关于Linux中磁盘管理我们应该从以下四个方面入手,去了解和学习磁盘管理的知识. 第一点 磁盘的结构--硬盘         硬盘的参数 结构:磁盘的盘片,磁头,马达(机械键盘) 类型:固态硬盘(SSB)和机械硬盘 接口:早期的IDE接口,现在的SATA,SCSI,SAS 还有容量,转速,传输速度,缓存等. 硬盘存储术语 head: 磁头 track: 磁道 cylinder: 柱面 secotr: 扇区  512bytes(字节) 第二点 磁盘的分区

Linux 基础入门----推荐课程

Linux 基础入门课程:https://www.shiyanlou.com/courses/1 很好的一门Linux基础课,精炼.简洁!推荐! 课程内容: 第1节 Linux 系统简介 https://www.shiyanlou.com/courses/1/labs/1/document 第2节 基本概念及操作 https://www.shiyanlou.com/courses/1/labs/2/document 第3节 用户及文件权限管理 https://www.shiyanlou.com/

1、linux基础知识

第一天linux基础知识 1:linux操作系统组成 linux内核+GNU工具=完整的类UNIX系统 GNU工具(GNU软件是通过GNU项目发布的软件,它是一种根据GNU软件包的README手册以及自由软件指南开发的软件,大多数GNU软件是免费分发的,但不是所有的都这样,然而,所有的GNU软件必须是自由软件.) 2:linux发行版  slackware debian  reehad  Gentoo等 3:linux哲学思想 一切皆文件(硬件也已文件的形式展现在操作系统中) 小型,单一用途程序

Linux基础知识题解答(五)

题目来自老男孩BLOG:http://oldboy.blog.51cto.com/2561410/1709569,比较适合新手,空余的时候做一下,可以巩固Linux基础知识,有不对的地方欢迎指正. (1)155729 -rw-r--r--.  1 root root   35 Oct 28 2011  oldboy 请解析上面的每一列内容 文件inode号,文件访问权限,硬链接数,文件所属用户,文件所属组,文件最后修改时间,文件名 (2)描述下硬链接和软连接的区别 1.硬链接原文件/链接文件共用

第九天:Linux基础命令(二)与 C编译过程

一:Linux基础命令:   1.find 命令 查找文件 如 find / -name hello    查找根目录下已hello命名的文件.   2.grep命令 字符串匹配 如 grep "lucy" * -R 递归查找文件中含有“lucy”字符串的文件   3.du命令 查看文件所占容量   4 . >   重定向 如 ls > savels     重定向ls的标准输出从屏幕到savels文件 5 . >>    附加 如 ls >> sa

Linux基础文本查看命令之 cat,tac,more,less,head,tail

在使用linux的过程中多多少少都会涉及到文本的操作,因此掌握一些文本操作的工具命令能大大的提高我们的工作效率. cat命令 cat命令的用途是链接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者是从标准输入读取内容并显示,它常与重定向符号配合使用. 1)命令格式 cat    [选项]    [FILENAME] 2)命令功能 将文件或标准输入组合输出到标准输出. 3)命令参数 -E:在每行结束处显示 $ -n:对输出的所有行编号 -s:不输出多行空行 4)常

Linux基础概念-----环境变量

Shell 环境变量 Shell也是应用程序,工作与用户模式 变量类型 整形 浮点型 字符型 布尔型 bash变量类型 本地变量:仅对当前Shell有效 局部变量:仅对局部代码段有效(函数) 环境变量:expor VAR_NAME=Value,对当前Shell及子Shell有效 位置变量:$1;$2 .... 特殊变量:$?;$!;$$ .... 查看环境变量 printenv export 查看所有变量 set bash的引号 双引号:弱引用,可以实现变量替换: 单引号:强引用,不替换,而显示

Linux基础概念-----Linux I/O重定向 ,管道

标准输入:键盘 标准输出:显示器 错误输出:显示器 FD:文件描述符:让程序可以文件交互,并且便于内核识别文件,打开的每一个文件都有一个描述符 程序在和文件交互式,通过文件描述符来进行交互,而非文件名,文件名是方便用户分别文件. Linux一切皆文件,所以标准输入,标准输出都有各自的文件描述符 标准输入描述符:0 标准输出描述符:1 标准错误输出描述符:2 将其默认数据流改为其他设备:IO重定向 输出重定向 > 覆盖重定向 >> 追加重定向 /dev/null  黑洞 只针对当前Shel