linux shell学习笔记

linux 内核

linux 完整系统:linux kernel; free software; documentation.

 

2-1   linux用户切换与创建

2-2  shell快捷键

ctrl+a/e 光标移到开头/结尾

ctrl+u/k 消除光标前/后内容

ctrl+r 搜索历史记录

ctrl+l 清屏

history 

 !【number】 重复执行第number条命令

 

2-3 linux目录结构

ls -d 只查看目录信息

ls -l 查看详细信息

ls -a 显示隐藏文件

ls -h 显示文件大小

组合: ls -dl

 

2-4 

cd – 返回之前目录

cd .. 返回上级目录

     .  当前目录

绝对路径和相对路径

命令 touch

 

2-5 目录结构

/boot 启动文件              /var 数据文件

/dev 设备文件               /usr 用户软件

/etc 配置文件                /srv 压缩文件

/home 家目录/用户       /bin 软链接、快捷方式

/media 媒体 文件          /mnt 挂载文件

/opt 第三方软件            /proc 虚拟化文件

/root 管理员家目录        /run 进程文件

 

2-6 文件处理操作

ls -l 

列显示d 是目录;列显示- 是文件;

列显示l 是软链接/快捷方式;列显示b 是硬盘文件/接口;列显示c 是串行接口(键盘)

 

mv 移动文件命令

cp -f 复制文件

cp -r 复制目录

rm -r 删除目录

rm -i 删除前逐一确认

rm -f 直接删除原文档,无需逐个确认

rm -r * 删除当前目录下的所有文件及目录

rm .* 删除隐藏文件

rm -rf 删除当前目录下的所有文件及目录,无需逐一确认

mkdir -p …   递归式创建目录

cp -r …   递归式复制目录

 

2-10 文件查看

cat -A = cat -VET x显示不可打印字符,行尾显示“$”

cat -n 列出行号,包括空白行

cat -b 列出行号,不包括空白行

cat -e 断行字符

cat -t 缩进以 ^I 显示

cat -v 列出特殊字符

 

$ cat > d.txt  #从键盘创建一个文件

$ cat c.txt d.txt > e.txt #将几个文件合并为一个文件

$ cat test1 test2 test3 | sort > test4 #按排序合并几个文件

$ cat e.txt #显示一个文件的内容

$ cat e.txt a.txt #显示多个文件的内容

$ cat -n e.txt > a.txt #将一个文件的内容加上行号后覆盖到另一个文件里

$ cat -n e.txt >> a.txt #将一个文件的内容加上行号后在另一文件尾部追加

$ cat e.txt > a.txt #复制e.txt成a.txt

$ cat e.txt | less

$ cat e.txt | more #解决输出端子屏幕滚动快慢问题

$ cat /dev/null > /etc/test.txt #清空/etc/test.txt文档内容

 

$ tac  e.txt 反序输出文件内容

 

nl 命令在linux系统中用来计算文件中的行号,可以将输出文件内容自动的加上行号

nl -bt 空不列出行号

nl -ba 空也列出行号

nl -n 列出行号的表示方法

 

more

空格 下翻一页

回车 下一行

/字符串 搜索

b: 翻到第一页

:f 显示文件名和行数

q 离开

 

less

空格 翻动一页(pagedown/pageup)

/字符串 向上搜索功能

符串 向下搜素功能

 

head, tail 显示文件头几行/尾几行

head -n 5 文件名 显示到第5行

日志文件: /var/log/messages   如何查看最新日志文件

 

wc: 显示文件行数,字数,字节

wc -c 统计字节数           wc -w 统计字数

wc -l 统计行数               wc -L 打印最长行的长度

wc -m 统计字符数          wc -cl

 

2-13 vim编辑器

i 插入     v 选择文本

u 撤销     y 复制

x 删除     yy 复制当前行

dd 删除光标所在行

p 粘贴

 

2-15 gedit/emacs

C(一般指ctrl键)+

M(一般指alt键)+

C-x C-f 文件名   打开文件

C-x C-s   保存文件

C-x C-c   退出Emacs

C-x u   取消上一次操作(即ctrl-x后收手,再按键盘u键)

C-h t   打开帮助文档

 

2-16 链接

软链接=快捷方式

创建软链接: ln -s oldfile newfile

创建硬链接: link oldfile newfile

                       ln oldfile newfile

 

2-17 硬链接

Inode编号:给机器看     ls -l -i 以长格式形式查看当前目录下所有可见文件的详细属性

文件名:给人看

 

硬链接:多个文件对应一个inode编号,对多个文件中的某一个文件修改以后,其他文件也被更改

 

2-18 关机操作 shutdown

sync 将数据同步写入磁盘

shutdown -t 设定几秒后关机

shutdown -k 设定发出警告信息

shutdown -r/-h 系统服务停止后,重启/关机

shutdown -f 关机、开机,强行略过磁盘检查

shutdown -F 重启,强制进行磁盘检查

shutdown -c 取消之前进行的shutdown指令内容

 

init 0 关机

init 6 重启

init 3 纯文本形式启动

init 5 含图形接口形式启动

 

2-19 man命令

man 1 用户命令   man 2 系统调用

man 3 库函数   man 4 特殊文件   man 5 文件格式

d 往下滚动半个屏幕   u 往上滚动半个屏幕

n 向下搜索   N 向上搜索

g 显示开头   G 显示结尾

 

pinfo

帮助文档查看路径: /usr/share/doc

 

11-1 shell 脚本

命令别名设定 alias     ld=’ll -h’

11-2 bash shell

11-3

.sh   #!   可执行脚本

#! /bin/bash/   解释器

11-4 变量(大写)

预设变量 SHELL PATH

echo:读取变量;输出语句

$ 调用变量

变量:普通变量;环境变量

11-5 普通变量

NAME=lewis

echo $NAME

unset NAME

echo $NAME

 

环境变量:系统预定义的参数

临时:export声明,关闭shell失效

            export 变量名=值

 

11-6 临时 – export命令

# export B=5

# echo $B

# sh     切换shell

# echo $B

 

su lewis [su 切换用户]

su -lewis 切换了shell,真正意义上的切换用户

 

11-7 位置变量

全局变量:/etc/bashrc     /etc/profile

用户变量:~/.bashrc     ~/.bash_profile

配置举例:

echo ‘export A=12345’  >>  /etc/bashrc

source /etc/bashrc

./etc/bashrc

 

位置变量:用数字表示的变量

$0 表示脚本的名称                        $* 代表所有参数内容   

$1 该脚本的第一个参数                 $$ 当前进程的IO号码

$2 改脚本的第二个参数                 $# 当前shell的参数个数

$程序退出的代表(0)                    $@ 所有参数内容(逐个读取)  

 

11-8 转移字符

” “”

   可以消除…      echo #123

                            echo #123

单引号屏蔽所有字符

双引号屏蔽 $… 符号以外的所有特殊字符      echo ‘#123 #abc $A’

                                                                       echo “#123 #abc $A”

 

11-9 case语句

3.sh

#! /bin/bash

case “$1” in

1)

echo please input 2

;;

2)

echo please input 1

;;

*)

echo ./3.sh please input 1 or 2

;;

esac

 

11-10 read 函数:用于从标准输入读取数值

例:

echo “请输入姓名: “

read NAME

echo “你输入的姓名是 $NAME”

exit 0   #退出

 

11-11 if/then 条件语句

1、整数测试:数值比较                  2.bash字符测试

-eq 等于                                              > 大于   

-ne 不等于                                         

-gt 大于                                               == 等于

-lt 小于

-ge 大于等于

-le 小于等于

 

3、字符操作     文件路径

-f 是否是普通文件

-d 是否是目录文件

-e 文件是否存在

-r 文件是否可读

-w 文件是否可写

-x 文件是否可执行

-s 文件大小是否不空

 

4、逻辑

逻辑判断 

-a 与              与运算 &&

-o 或              或运算 ||

! 非              否运算 !

                 

if/then 条件语句

单分支语句;双分支语句;多分支语句

 

11-6 循环语句

for——shell 风格

for 变量 in {list}

do

命令

done

 

for——c 风格

for ((i=0;i

do

sum=$((sum+i))   #第一个括号做运算,第二个括号拿值

done

echo $sum

 

source 执行修改的文件,使之立即生效

$@ 所有参数

$# 所有参数个数

echo 字符串输出

 

#! /bin/bash     是一个约定的标记,表示用什么解释器执行

grep    查找内容(包含指定范本样式的文件) 

 

shell 脚本行注释   # …

                块注释 —— : 空格 ‘ 注释内容 ‘

 

待更 20190212 

参考:http://www.51zxw.net/list.aspxid=644

           http://www.runoob.com/linux/linux-shell.html

 

 

 

 

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24701 人正在系统学习中

来源:蜡木浦

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年1月11日
下一篇 2019年1月11日

相关推荐