本文主要是介绍Linux达人养成计划I 笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一.命令的基本格式
命令提示符格式
root@localhost ~
root :当前登陆用户
localhost: 主机名.
~: 家目录, home下的二级目录
\# :当前登陆超级用户
命令格式
命令 [选项] [参数]
例如:
ls -lls -lh
显示格式:
前10位表示什么啊:第一位表示文件类型, 后面9位表示用户和组
.所有者u 所属组g 其他人o 的权限
用 r读 w写 x执行 标示
后面部分 ACL权限 引用计数 最后一次修改时间
ls -a 显示包括隐藏文件(什么意义 告诉你系统文件,别轻易改)
ls -d 只显示目录信息,而不是文件
ls -h 人性化显示,后面跟文件大小
ls -i 显示文件id号
二.文件处理命令
目录处理命令
创建目录
mkdir [option] [directory]-p 递归创建
eg: mkdir -p japan/cangls
cd [directory]
cd ~ 到家目录cd - 返回上次目录cd .. 到上一层目录
(福利:Ctrl +L 清屏快捷键)
(概念:
.相对路径
.绝对路径)
pwd 打印当期目录
删除目录
rmdir 只删除空目录
rm -f [目录名]
拷贝目录
cp -r japan/ temp/
(虚拟机时间不准 没有电池)
cp -a [s] [t] 所有属性一起复制
ll 是 ls -l 缩写,可以设置
剪切目录
不需要加 -r 也是改名命令
mv [s] [t] linux开发的问题
linux根目录讲解:
bin的几个位置:
根目录下的bin和sbin,usr目录下的bin和sbin 这四个目录都是用来保存系统命令的,区别在sbin只有root才能执行.
boot 启动目录 启动数据dev 设备目录etc 配置文件lib 函数库的保存位置
media mnt misc: empty directoty, 挂载外接盘符,mnt就可以,老的linux没有其他两个空目录
pro sys 内存中的数据不应该操作
usr 系统软件资源目录,比如
usr/bin/系统命令(普通用户)usr/sbin/系统命令(超级用户)
var:系统可变文档的目录
linux是一个严谨系统, 别随便改.
文件处理命令
链接命令
链接命令
ln [源文件] [目标文件] ----hard link
ln -s [源文件] [目标文件] ----soft link
英文link
硬链接:一个文件不同接入点
1.拥有相同的i节点和存储的block块,可以看成是是同一个文件.2.可通过i节点识别3.不能跨分区4.不能针对目录使用
并不建议创建硬链接
软连接:
类似windows快捷方式
软连接拥有自己的i节点合Block块,但是数据只保存源文件名和i节点号,并没有实际的文件数据
.lrwxrwxrwx中 l是软连接的意思,而且软连接的权限一般都是这样的.
.修改任意文件,另一个都改变
.删除源文件,软连接不能使用
command: touch [fire]: create a filell -i : list all info. and node id of the file
三.文件搜索命令
文件搜索命令 lcoate 速度快 locate [文件名]
在后台数据库按文件名搜索,优点搜索速度快
.var/lib/mlocate #locate命令所搜索的数据库
updatedb,因为不是实时的
缺点只能按照文件名搜索
etc/updatedb.conf 里面定义了筛选规则. 比如tmp目录下创建文件不会被搜索到.whereis 和which也遵循这个筛选规则.
命令搜索命令
whereis与which
whereis [选项] [命令名]
查看命令命令执行目录和帮助文档所在位置
-b 只看命令位置 m 只看文档位置
which [选项] [命令名] ,可以看到命令别名
cd 命令不能被找到,是shell命令.
查看PATH 环境变量, echo PATH
文件搜索命令 find
精确搜索find / -name install.log
通配符: a[cd] *[cd] ?
[]–括号内的任意一个 ?–任意一个 *任意多个
find /root -name install.logfind /root -iname install.log 不区分大小写find /root -user root 搜索固定所有者的文件find /root -nouser 搜索指定目录下没有所有者的文件 即垃圾文件,但是外来文件和内核产生文件没有所有者find /var/log/ -mtime(modify) +10-10 十天内修改的文件10 10天当天修改文件+10 10天前修改文件
atime 文件访问时间
ctime 改变文件属性
mtime 改变文件
find . -size 25 按照文件大小搜索
+25k
25k
-25k
find . -inum 2131132 按节点搜索 ls -i 相反
find /etc +20k -a -size -50-a and-o orfind /etc +20k -a -size -50 -exec ls -lh {} \;
命令2处理命令1的结果
字符串搜索命令 grep
grep [选项] 字符串 文件名
-i 忽略大小写-v排除指定字符串
find命令与grep命令的区别
grep 包含匹配 , find 是完全匹配
四.帮助命令
帮助命令man
man [命令名] /-g 可以查询相关命令.
man -f [comment] 配置文件帮助等级 相当于what isman 1 ls man 1 null apropos passwd 查处所有含有关键字的命令信息
其他帮助命令
1.获取选项帮助
ls --help
获取shell命令帮助
help shell 内部命令
whereis 能够找到位置是后来安装的,而像cd这样的事找不到的,是系统自带的.
所以用 help cd 才可以
3.info 更详细的命令 太麻烦,信息杂
五压缩和解压缩命令
.zip .gz .bz2
zip格式
zip 压缩文件名 源文件 // 压缩文件zip -r 压缩文件名 源文件目录 // 压缩目录unzip 压缩文件 //解压缩
gz格式
.tar.gz 不保留源文件gzip 源文件 gzip -c 源文件 > 压缩文件 保留源文件gzip -r 目录 压缩目录下面所有子文件//解压缩文件gzip -s 压缩包gunzip 压缩文件 //解压缩目录
gunzip -r 压缩文件
.bz2 不能解压缩目录 加-k保留源文件
// 压缩bzip2 压缩文件//解压缩bunzip 或bzip -d 压缩文件
tar.bz2 先打包再压缩
tar -cvf 打包文件源文件-c 打包-v 显示所有文件-f 打包后文件名
再 gzip 打包文件
bzip2 打包文件
解压缩
gzip -d 压缩文件tar -xvf 包名
麻烦直接 tar就可以做
tar -zcvf 压缩包.tar.gz [后面可跟多个文件]
选项 -z : 压缩成 ..
tar -zxvf 压缩包名
选项 -x 解压缩
tar -jcvf 压缩包.tar.bz2
选项 -c : 压缩成 ..
tar -jxvf 压缩包名.tar.bz2 -C 指定解压缩位置
选项 -x 解压缩
tar -ztvf 压缩包.tar.gz 查看而不解压
六关机和重启命令
shutdown -r 05:30 //5:30 关机shutdown -c 取消前一个关机命令shutdown -h 关机shutdown -r 重启shutdown更安全,会保存一些状态.
不安全命令:
haltpoweroffinit 0
重启命令
rebootinit 6 //不要用了
系统运行级别:
0 关机1 单用户2 不完全用户,不包含NFS服务3 完全多用户4 未分配5 图形界面6 重启
runlevel 显示运行级别,之前运行级别与现在运行级别,以启动就进入钱一个级别是N(null)
远程时每次要退出.
七其他常用命令
挂在命令
mount mount -a // etc/fstab 里面保存开机自动挂载部分挂载一遍.mount [-t 文件系统] [-o 特殊选项]-t ext3 ext4 iso9660(光盘和U盘)
-o 特殊选项(读写权限 exec(是否挂在分区的可执行文件可执行))
用户登陆查看和用户交互命令
mount -o remount,noexec /home/ 取消home分区的执行文件的权限.mount -o remount,exec /home/ 恢复home分区的执行文件的权限. 把boot分区搞成这样就起不来了
挂载光盘
mkdir /mnt/cdrom/
mount -t iso9660 /dev/sr0 /mnt.cdrom/
mount /dev/sr0 /mnt/cdrom/
卸载光盘
1.退出光盘目录
unmount /mnt/cdrom/
如果强制换盘,linux容易崩溃
u盘名字 sdb1
fdisk -l 查看u盘设备文件名mount -t vfat /dev/sdb1 /mnt/usb/
挂载NTFS分区不太好
linux不支持NTFS系统, ntfs-3g 安装后默认支持,只能只读
用户登陆查看命令
w
JCPU 所有CPU耗费 PCPU当前CPU耗费
wholast 查询当前登陆和以前登陆用户的信息 存在 /var/log/wtmp中lastlog 用户名 登陆终端登陆IP 最后一次登陆时间
shell 基础
shell概述
linux 标准 Bash bourne 和 c 两种
echo $变量名sh // 切换到另一个shell
操作终端可以接连调用好几个层级.
执行方式: 命令后加分号
echo -e ""alias 显示别名alias ls= "ls --color=never" 设置命令别名alias vi ='vim'
永久生效,配置环境变量配置文件
vim ~/.bashrcwrite the alias setsource ~/.bashrcunalias vi 暂时删除命令别名
命令生效顺序:
绝对路径或相对路径执行的命令
执行别名
Bash内部命令
按照Path环境变量定义的目录下的查找顺序第一个找到的命令
常用快捷键:
ctrl+c 强制终止当前命令ctrl+l 清屏ctrl+a 光标移动到命令的行首ctrl+e光标移动到命令的行尾ctrl+u从光标位置删除到行尾ctrl+z把命令放入后台ctrl+r在历史命令中搜索
历史命令:排错,记录hack
history-w 缓存历史存入文件-c 清空所有命令!n 重复执行第n条命令!! 重复执行上一条命令!字符串 调用最后一个以字符串开始的命令
命令补全和文件补全
输出重定向:
1.标准输入输出
键盘 /dev/stdin 标准输入 0 (文件描述符)显示器 /dev/stdout 标准输出 1 (文件描述符)显示器: /dev/stderr 标准错误输出 2(文件描述符)
2.输出重定向
标准输出重定向
命令 > 文件 以覆盖的方式把输出输出到指定文件或设备当中命令 >>文件 以追加的方式把命令正确输出输出到指定文件或设备中
标准错误输出重定向()注意大于号左右两边都没有空格,你要知道命令是会报错的,所以很少用.
错误命令 2>文件错误命令 2>>文件
标准输出重定向复合:
命令 > 文件 2>&1 正确的写入文件 错误2的写入正确&1也写入文件
命令 >> 文件 2>&1命令 &>文件命令 &>>文件命令>>文件1 2>>文件2 // 很有用
输入重定向(很少见,一般软件安装打补丁时候)
wc [选项] [文件名]
wc -c 统计字节数
wc -w 统计单词数
wc -l 统计行数
输出
几行几个单词几个字符
wc < 文件名 统计文件的几行几个单词几个字符, 不加小于号也可以wc << 输入结束标记(几乎没用过)
- 管道符号
多命令顺序执行
; 多个命令顺序执行&& 只有命令1正确执行 命令2才执行|| 第一条命令不正确执行 命令2才执行
检测命令是否正确执行:
ls && echo yes || echo no ls execute print yes , else print nols || echo no && echo yes 顺序关系
管道符 |:
ls -l /etc | more 命令1的结果作为命令2的对象,命令2一定要可以操作命令1输出才可以netstat -an (established,由客户端正在链接)netstat -an | grep ESTABLISHED 查看有多少各人正在链接.
通配符:
? 任意一个字符 ls a? 列出aX的文件* 任意多个字符 ls a* 列出所有以a开头的文件[] 任意一个字符 ls a[0-9] 匹配后缀数字0-9, -表示范围 [^] 匹配非 ls a[^0-9]
正则表达式
Bash 其他的符号
$ 调用和得到变量的值
单引号'' echo '$a' 输出$a双引号"" echo "$a" 输出变量值反引号`` echo `ls` 先执行,再把结果赋给变量 = $()\#注释
这篇关于Linux达人养成计划I 笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!