Linux学习笔记(一)
2016-03-02 14:12
477 查看
Linux学习笔记(一)
基础概念:1. 分区:把大的硬盘分为小的逻辑分区(把大柜子分成几个小柜子) 2. 格式化:写入文件系统(分成小柜子之后,在各个小柜子中打格) 3. 分区设备文件名:给每个分区定义设备文件名(Linux没有图形操作界面,因此每一个分区都需要有一个名字来指代它,这就是设备文件名) 3. 挂载:给每个分区分配挂载点(相当于将分区与盘符联系起来)
Linux命令格式:
[root@localhost ~]# root代表当前登录用户,Linux中管理员账号是root localhost主机名 ~当前所在目录(家目录) #超级用户提示符 $普通用户提示符
一般命令格式:
命令 [选项] [参数] 1. 个别命令使用不遵从此格式 2. 当有多个选项时,可以写在一起 3. 简化选项与完整选项 -a等于--all
1.查询目录中的内容:ls
ls [选项] [文件或目录] 选项: -a 显示所有的文件,包括隐藏文件 -l 显示详细信息 -d 查看目录属性 -h 人性化显示文件大小 -i 显示inode 在显示详细信息的时候,界面上显示如下: -rw-------. 1 root root 1208 2月 25 03:02 anaconda-ks.cfg -rw-------. 表示什么呢? 第一个-表示文件的类型(常用的三种类型为:-文件、d目录、l软链接文件) 后面9位每3位为一组 第一组为所有者u、第二组为所属组g、第三组为其他人o r读、w写、x执行 .表示ACL权限 1代表引用次数,前一个root代表所有者,后一个root代表所属组 1208是文件大小
2.建立目录:mkdir
格式:mkdir [-p] 目录名 -p是递归创建,一次性创建多层路径时调用
3.切换目录cd
格式:cd 目录 cd ~ 进入当前用户的家目录 cd 进入当前用户的家目录 cd - 进入上次目录(window的后退) cd .. 进入上级目录 cd . 进入当前目录 相对路径:参照当前所在目录进行查找 如:[root@localhost abc]# cd ../def ../代表当前所在位置的上一次目录 如:[root@localhost abc]# cd ./def ./代表当前所在目录 绝对路径:从根目录开始指定,一级一级递归查找。在任何目录下都能进入指定位置 [root@localhost ~]# cd ect [root@localhost ~]# cd ect/ 两者效果都一样(上一个是文件、下一个是目录,其实都一样,Linux中所有的东西都是文件)
4.打印当前目录位置:pwd
print working directory 输出当前所在目录
5.删除空目录:rmdir
rmdir 目录名 只能删除空的文件夹
6.删除文件或目录:rm
rm -rf 文件或目录 -r删除目录 -f强制
7.复制命令:cp
cp [选项] 源文件或者目录 目标目录 选项: -r 复制目录 -p 连带文件属性复制 -d若源文件是链接文件,则复制链接属性 -a 相当于 -pdf 完全复制
8.剪切或改名命令:mv
mv 原文件或目录 目标目录
常见目录的作用:
/根目录 /bin 存放必要的命令 /boot 存放内核以及启动所需的文件等 /dev 存放设备文件,硬盘或挂载的移动设备都会显示在这 /etc 存放系统的配置文件 /home 用户文件的主目录,用户数据存放在其主目录中 /lib 存放必要的运行库 /mnt 存放临时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子目录下 /proc 存放存储进程和系统信息 /root 超级用户的主目录 /sbin 存放系统管理程序 /tmp 存放临时文件的目录 /usr 包含了一般不需要修改的应用程序,命令程序文件、程序库、手册和其他文档 /usr/bin/系统命令(普通用户) /usr/sbin/系统命令(超级用户) /var 包含系统产生的经常变化的文件
9.链接命令(较难理解)
软链接:ln -s 1.可简单理解为快捷方式,可修改,但原文件删除后不可使用 2.它的权限取决于原文件 3.记录的是原文件的存储位置 4.使用绝对路径 硬链接:ln 1.针对同一文件,不适用于目录 2.是真实记录原文件,包括i节点,存储位置block等。修改原文件或硬链接对方也会改变。 3.相当于一间教室的两个门(其中一个文件被删除另一个文件还能用,就如:一个门被关了,另一个门还能进入) 4.对于文件路径无限制,相对绝对都可
10.文件搜索:locate
locate 文件名 //在后台数据库中按文件名搜索,搜索速度更快 /var/lib/mlocate #locate命令所搜索的后台数据库 [root@localhost ~]# updatedb //更新数据库 [root@localhost ~]# vi /ect/updatedb.conf 这是搜索的配置文件 PRUNE_BIND_MOUNTS="yes" 开启搜索限制 PRUNEFS= 搜索时,不搜索的文件系统 PRUNENAMES= 搜索时,不搜索的文件类型 PRUNEPATHS= 搜索时,不搜索的路径
11.搜索命令的命令whereis
whereis 命令名 //搜索命令所在路径及帮助文档所在位置 如: [root@localhost ~]# whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz 选项: -b 只查找可执行文件 -m 只查找帮助文件
12.搜索命令的命令which
which 命令名 //搜索命令所在路径,如果有别名会显示别名。
13.PATH环境变量
定义的是系统搜索命令的路径 [root@localhost ~]# echo $PATH /usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 我们之所以可以直接使用系统的命名,如:ls,而不必加路径,就是因为有环境变量。
14.find命令
一、find 搜索范围 [选项] 搜索条件 #搜索条件 如: find / -name install.log 查找名字为install.log的文件 避免大范围搜索,会非常耗费系统资源 find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配 find /root -iname install.log 不区分大小写 find /root -user root 按照所有者搜索 find /root -nouser 查找没有所有者的文件 二、Linux中的通配符 * 匹配任意内容 ? 匹配任意一个字符 [] 匹配任意一个中括号内的字符 [root@localhost ~]# find /root -name "ab*" 三、find /var/log/ -mtime +10 //查找10天前修改的文件 -10 10天内修改的文件 10 10天当天修改的文件 +10 10天前修改的文件 atime 文件访问时间啊 ctime 改变文件属性 mtime 修改文件内容 四、find 路径 -size 大小 [root@localhost ~]# find /root -size -25k //查找文件大小是25KB的文件 -25k 小于25KB的文件 25k 等于25KB的文件 +25k 大于25KB的文件 k是小写,M是大写 五、find 路径 -inum i节点 //查找对应i节点的文件 [root@localhost ~]# find /root -inum 262170 六、find多条件查询: -a 与操作 -o 或操作 find /ect -size +20k -a -size -50k 查找大于20KB小于50KB的文件 利用-a多条件查询,-o -exec 操作 {} \; 对搜索结果执行后续操作 find /ect -size +20k -a -size -50k -exec ls-lh {} \;
15.grep命令
grep [选项] 字符串 文件名 //在文件中搜索符合条件的字符串 -i 忽略大小写 -v 排除指定字符串 [root@localhost ~]# grep "size" anaconda-ks.cfg 会输出文件中包含size的一行 #part /boot --fstype=ext4 --size=200 part /home --fstype=ext4 --size=2000 #part swap --size=1000 #part / --fstype=ext4 --grow --size=200 [root@localhost ~]# grep -v "size" anaconda-ks.cfg 会输出文件中不包含size的一行
16.帮助命令man
man 命令 //获取指定命令的帮助手册 man ls //查看ls的帮助 man -f 命令 相当于 whatis 命令 //查看命令拥有那个级别的帮助 man -k 命令 相当于 apropos 命令 //查看和命令相关的所有帮助 man的级别 1、查看命令的帮助 2、查看可被内核调用的函数的帮助 3、查看函数和函数库的帮助 4、查看特殊文件的帮助(主要是/dev目录下面的文件) 5、查看配置文件的帮助 6、查看游戏的帮助 7、查看其他杂项的帮助 8、查看系统管理员可用命令的帮助 9、查看和内核相关文件的帮助 [root@localhost ~]# man -5 password
17.选项帮助
命令 --help //获取命令选项的帮助 如: ls --help
18.shell内部命令帮助
help shell 内部命令 //获取shell内部命令帮助 如: whereis cd //确定是否是shell内部命令 help cd //获取内部命令帮助
19.详细命令帮助info
info 命令 -回车 //进入子帮助页面(带有*号标记) -u //进入上层页面 -n //进入下一个帮助小节 -p //进入上一个帮助小节 -q //退出
20.zip格式压缩
zip 压缩文件名 源文件 //压缩文件 zip -r 压缩文件名 源目录 //压缩目录
21.zip格式解压缩
unzip 压缩文件 //解压缩.zip文件
22.gz格式压缩
gzip 源文件 //压缩为.gz格式的压缩文件,源文件会消失 gzip -c 源文件 > 压缩文件 //压缩为.gz格式,源文件保留 gzip -r 目录 //压缩目录下所有的子文件,但是不能压缩目录 c19a
23.gz格式解压缩
gzip -d 压缩文件 //解压缩文件 gunzip 压缩文件 //解压缩文件
24.bz2格式压缩
bzip2 源文件 //压缩为.bz2格式,不保留源文件 bzip2 -k 源文件 //压缩之后保留源文件 注意:bzip2命令不能压缩目录
25.bz2格式解压缩
bzip2 -d 压缩文件 //解压缩,-k保留压缩文件 bunzip2 压缩文件 //解压缩,-k保留压缩文件
26.打包命令tar
因为上面的压缩有限制,因此将文件先打包 tar -cvf 打包文件名 源文件 选项: -c 打包 -v 显示过程 -f 指定打包后的文件名 tar -cvf abc.tar abc
27.解打包命令
tar -xvf 打包文件名 选项: -x 解打包 -v 显示过程 -f 指定打包后的文件名 tar -xvf abc.tar
28.tar.gz压缩格式
其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式 tar -zcvf 压缩包名.tar.gz源文件 选项: -z //压缩为.tar.gz格式 tar -zxvf 压缩包名.tar.gz 选项: -x //解压缩.tar.gz格式 要解压到指定目录 在最后加 -C : tar -zxvf jp.tar.gz -C /tmp/ 降压缩文件放到指定目录,在压缩文件前加绝对路径: tar -zcvf /tmp/jp.tar.gz jp 只查看压缩文件的内容 : tar -ztvf jp.tar.gz
29.tar.bz2压缩格式
tar -jcvf 压缩包名.tar.bz2 源文件 选项: -z //压缩为.tar.bz2格式 tar -jxvf 压缩包名.tar.bz2 选项: -x //解压缩.tar.bz2格式
30.关机命令shutdown命令
[root@localhost ~]# shutdown [选项] 时间 选项: -c //取消前一个关机命令 -h //关机 -r //重启 [root@localhost ~]# shutdown now //直接关机 其他关机命令: half poweroff init 0 其他重启命令 reboot init 6
系统运行级别: 0 //关机 1 //单用户 2 //不完全多用户,不含NFS服务 3 //完全多用户 4 //未分配 5 //图形界面 6 //重启
31.退出登录命令
logout
32.查询与自动挂载
mount //查询系统中已经挂载的设备 mount -a //依赖配置文件/ect/fstab的内容,自动挂载 挂载命令格式 [root@localhost ~]# mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点 选项: -t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统 -o 特殊选项:可以指定挂载的额外选项
33.挂载光盘
[root@localhost ~]# mkdir /mnt/cdrom/ //建立挂载点
[root@localhost ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/ //挂载光盘 [root@localhost ~]#mount /dev/sr0 /mnt/cdrom //不加文件系统
34.卸载光盘/U盘命令
[root@localhost ~]# umount 设备文件名或挂载点 [root@localhost ~]# umount /mnt/cdrom
35.挂载U盘
[root@localhost ~]# fdisk -l //查看U盘设备文件名 [root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb/ 注意:Linux默认是不支持NTFS文件系统的
36.查看登陆用户信息
[root@localhost ~]# w 命令输出: USER: 登陆的用户名 TTY: 登陆终端 FROM: 从哪个IP地址登陆 LOGIN@: 登陆时间 IDLE: 用户闲置时间 JCPU: 指的是该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但包括当前正在运行的后台作业所占用的时间 PCPU: 是指当前进程所占用的时间 WHAT: 当前正在运行的命令
37.查看当前登录和过去登陆的用户信息
last last命令默认是读取/var/log/wtmp文件数据 命令输出 -用户名 -登陆终端 -登陆IP -登陆时间 -退出时间(在线时间)
38.查看所有用户的最后一次登录时间
lastlog lastlog命令默认是读取/var/log/lastlog文件内容 命令输出 -用户名 -登陆终端 -登陆IP -最后一次登录时间
39.查看登陆用户信息
who 命令输出: -用户名 -登陆终端 -登陆时间(登陆来源IP地址)
40.echo输出命令
echo [选项] 输出内容 选项: -e:支持反斜杠控制的字符转换
Shell基础
一、Shell概述 二、脚本执行方式 脚本编写: [root@localhost ~]# vi hello.sh #/bin/bash #第一个shell程序 echo -e "\e[1;34m 你好世界 \e[0m" 脚本执行: 赋予执行权限,直接运行 chmod 755 hello.sh ./hello.sh 或: 通过Bash调用执行脚本 bash hello.sh 三、Bash的基本功能 1、命名别名与快捷键 alias //查看系统中所有的命令别名 alias 别名='原命令' //设定命令别名 命令生效顺序: 第一顺位执行用绝对路径或相对路径执行的命令。 第二顺位执行别名。 第三顺位执行Bash的内部命令 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。 快捷键: Ctrl c 强制终止 Ctrl l 清屏 Ctrl u 删除到行首 Ctrl a 光标移动到行首 Ctrl e 移动到行尾 Ctrl z 把命令放到后台 (没有终止,仅仅是放入后台执行) Ctrl r 在历史记录中搜索 2、历史命令 history [选项] [历史命令保存文件] 选项: -c //清空历史命令 -w //把缓存中的历史命令写入历史命令保存~/.bash_history 历史命令默认会保存1000条,可以在环境变量配置文件/ect/profile中进行修改 3、输出重定向 1.标准输入输出 设备 设备文件名 文件描述符 类型 键盘 /dev/stdin 0 标准输入 显示器 /dev/sdtout 1 标准输出 显示器 /dev/sdterr 2 标准错误输出 2.输出重定向 类型 符合 作用 标准输出重定向 命令 > 文件 以覆盖的方式,把命令的正确输出输出到指定的文件或设备中。 命令 >> 文件 以追加的方式,把命令的正确输出输出到指定的文件或设备当中 标准错误输出重定向 错误命令 2>文件 以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中 错误命令 2>>文件 以追加的方式,把命令的错误输出输出到指定的文件或设备当中 正确输出和错误输出同时保存 命令 > 文件 2>&1 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。 命令 >> 文件 2>&1 以追加的方式,把正确输出和错误输出都保存到同一个文件当中。 命令 &> 文件 以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。 命令 &>> 文件 以追加的方式,把正确输出和错误输出都保存到同一个文件当中。 命令>>文件1 2>>文件2 把正确的输出追加到文件1中,把错误的输出追加到文件2中 4、多命令顺序执行 多命令执行符 格式 作用 ; 命令;命令 多个命令顺序执行,命令之间没有任何逻辑联系 && 命令1&&命令2 逻辑与,当命令1正确执行,则命令2才会执行。当命令1执行不正确,则命令2不会执行 || 命令1||命令2 逻辑或,当命令1执行不正确,则命令2才会执行;当命令1正确执行,则命令2不会执行 管道符 命令格式: [root@localhost ~]# 命令1 | 命令2 //命令1的正确输出作为命令2的操作对象 例子: [root@localhost ~]# netstat -an | grep "ESTABLISHED" | wc -l netstat -an //查找出当前所有的链接 grep "ESTABLISHED" //查找出已建立的链接 wc -l 统计行数 5、Shell中特殊符号 通配符 作用 ? 匹配一个任意字符 * 匹配0个或任意多个任意字符,即匹配任何内容 [] 匹配中括号中任意一个字符,例如[abc] [-] 匹配中括号中任意一个字符,-代表一个范围。例如[a-z] [^] 匹配不是中括号内的一个字符 其他特殊符号: 符号 作用 '' 单引号。在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义。 "" 双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“`”和“\”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义。 `` 反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$()作用一样。不过推荐使用$(),因为反引号非常容易看错 $() 用来引用系统命令 # 代表注释 $ 用户调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。 \ 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当作是变量引用 例子: [root@localhost ~]# echo $(ls -a)
相关文章推荐
- Linux socket 初步
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- Linux 下无损图片压缩小工具介绍