linux学习介绍

由于非linux系统开发和管理员,只做了基础的学习及实际工作中经常使用的命令整理

linux是基于uninx重新开发而来,开源之后,自动演变了很多版本。
目前比较流行的版本red hat,fedora,ubuntu等都是由最初的演变版本中的分支。
具体历史可以看看(linux宝典 christopher negus),挺有意思的。学习内容也是来源于此书。

1、SHELL

用来解释和管理命令的程序;不同的linux版本包含的shell可能不同,大多数发行版本都包括Bash shell并将其视为一个标准。
启动:linux中可以有三种方式启动shell

  1. shell提示符,linux系统输入账号密码登录进去,的后台输入命令的地方
    $ 表示普通用户,# 表示管理员用户
  2. terminal窗口
    对于桌面的linux,会有这个功能
  3. 虚拟控制台

可以通过CTRL+ALT+F1~F6 打开多个虚拟控制台启动shell
语法:

  1. 关于-和–的区别
    -表示命令选项是单个字符,即使是多字符,也会解析成单字符
    –表示命令选项是多字符。
    比如:ls -lat 等同于 ls -l -a -t
    hostname --help 就需要使用–
  2. 带参数选项
    如果选项是单字符,对参数使用空格
    如果选项是多字符类型,对参数使用=
    比如:ls --hide=config
    tar -cvf aaa.tar /home/aaa
  3. 命令内容
    • 以文本或常规字符开头:表示命令,别名或函数
    • $ 开头:表示变量
    • ~ 开头:表示用户
    • @ 开头:表示主机名
  4. 管道符|
    一个命令的输出,到另一个命令的输入
    cat /etc/passwd | sort | less
    将passwd文件内容发给sort命令排序,将排序结果发给less命令显示
  5. 连续命令 ;
    一个命令执行完,连续执行下一个命令,使用;
    date;mail -s “test command” [email protected]
    输出日期,并发送邮件
  6. 后台命令 &
    如果命令执行时间较长,不想shell占用命令等待完成,可以在命令结尾加上& 使其在后台执行
  7. 扩展命令 $(command)
    一条命令的标准输出,变成另一条命令的一个参数
    vi $(find /home | grep aaa)
  8. 扩展算数表达式 $(expression) / $[expression]
    echo “我已经 $[2020-1994] 岁了”
    echo “文件列表 : $(ls | wc -w)”
  9. 扩展变量
    使用shell变量
    ls -l $BASH
    echo $USER

命令查找:

  1. 直接指定路径运行命令
    /bin/ls
  2. 命令的位置
    将命令目录加到PATH中
    echo $PATH 打印path内容
    大多数命名在/bin(当前用户),/user/bin,/user/local/bin(所有用户都可用);/sbin/,/usr/sbin包含管理命令
    path路径顺序很重要,如果存在相同命令,优先最左边的目录中的命令
    除了path中,还有一些内置于shell中的命令
    shell检查所输入命令的顺序:
    1. 别名 alias设置的
    2. shell保留字
    3. 函数
    4. 内置命令
    5. 文件系统命令(path)
    通过type关键字可以检查命令出处:如 type tar
  3. 历史记录
    shell history 是一个以前所有输入命令的列表,通过history命令查看;历史记录保存在.bash_history中,默认保存1000条。
    ctrl+L 清屏
    利用历史记录,可使命令行重复执行
    通过!+历史记录编号,可以重复执行命令:!202

创建和使用别名,通过别名执行命令:

alias查看定义的别名
新增别名
$ alias p=‘pwd ; ls -CF’

shell配置:

1、/etc/profile 用户级环境变量,首次登录执行(root用户)
2、/etc/bashrc 每次打开一个bash shell执行(root用户)
3、~/.bash_profile 用户登录执行
4、~/.bashrc 特定于bash shell的信息,打开新shell执行
5、~/.bash_logout 注销时执行

环境变量添加:

PATH=$PATH:/bin/aaa;export PATH
表示在原path下增加目录,并导出path

问题记录:

$’\r’: command not found
windows下编写的脚本会出现此问题
可以直接替换:sed -i ‘s/\r//’ export.sh

你可能感兴趣的:(LINUX)