Linux基础入门一

LINUX基础入门学习笔记

一、用户类型

  • root 用户:特殊的管理帐户,超级用户,已接近完整的系统控制
  • 普通用户:非特权用户,权限有限。

切换用户

  • sudo 命令:授权普通用户执行管理员命令。用于以超级用户(superuser)的身份执行其他命令。 “Super User Do” 的缩写。普通用户,可以使用 sudo 命令在临时提升权限的情况下执行特定命令。sudo 参数 命令

lyaya@ubuntu2404:~$ sudo -i
[sudo] password for lyaya:
root@ubuntu2404:~#
#root用户,$普通用户

  • su命令 – 切换用户身份(switch user)su 参数 用户名

[root@rokcy9 ~]# su - lyaya
[lyaya@rokcy9 ~]$


二、终端(Computer terminal)

与计算机系统相连的一种输入输出设备
console控制台;tty终端。Linux操作系统中,以一种设备文件的方式保留。

终端类型

  • 控制台终端: /dev/console
  • 串行终端:/dev/ttyS#
  • 虚拟终端:tty:teletypewriters, /dev/tty#,tty 可有n个,Ctrl+Alt+F#
  • 伪终端:pty:pseudo-tty , /dev/pts/# 如:SSH远程连接
  • 图形终端:startx, xwindows

查看当前的终端设备

tty命令 – 打印输出连接到标准输入的终端文件名,tty [参数]
ll命令 – 显示指定文件的详细属性信息,ll 参数 文件名

root@ubuntu2404:~# tty
/dev/pts/2
root@ubuntu2404:~# ll /dev/pts/2
crw------- 1 root tty 136, 2 Aug 1 02:56 /dev/pts/2

w命令 (who)– 显示已登录用户的信息

root@ubuntu2404:~# w
02:56:44 up 1:32, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
lyaya tty1 - 01:25 1:31m 0.04s 0.01s -bash
lyaya 10.0.0.1 01:25 1:32m 0.00s 0.01s sshd: lyaya [pri


三、交互式接口

交互式接口:启动终端后,在终端设备附加一个交互式应用程序

交互式接口类型

  • GUIGraphic User Interface 图形用户接口
    X protocol, window manager, desktop :
    GNOME (C, 图形库gtk),
    KDE (C++,图形库qt)
    XFCE (轻量级桌面)

  • CLIcommand line interface命令行接口
    shell程序:sh、csh、 tcsh、 ksh (korn)、 bash、GPL、zsh等。

  • 程序接口:编程人员在程序中通过程序接口来请求操作系统提供服务。
    面向过程语言最基本的单元是过程和函数。常见的如:API(Application Programming Interface),就是软件系统不同组成部分衔接的约定;ABI(Application Binary Interface)应用程序二进制接口。

Shell

  • 是Linux系统的用户界面,提供了用户与内核进行交互操作的接口。接收用户输入的命令并把它送入内核去执行 。
  • LINUX的命令解释器(command interpreter)Shell本身是个程序。
  • 一种高级程序设计语言,提供了变量,函数,条件判断,循环等开发语言的功能。

Shell类型

  • sh:Steve Bourne
  • bash:Bourne-Again Shell,GPL,CentOS 和 Ubuntu 默认使用
  • csh:c shell , C 语言风格
  • tcsh
  • ksh :Korn Shell, AIX 默认 shell
  • zsh: MacOS默认shell

显示当前使用的 shell
echo命令 – 输出字符串或提取后的变量值
echo 参数 字符串或$变量名

lyaya@ubuntu2404:~$ echo ${SHELL}
/bin/bash

ps命令 – 显示进程状态,当前是bash

lyaya@ubuntu2404:~$ ps
PID TTY TIME CMD
1258 pts/0 00:00:00 bash
1269 pts/0 00:00:00 ps

显示当前系统使用的所有shell
cat命令 – 在终端设备上显示文件内容 cat 参数 文件名

lyaya@ubuntu2404:~$ cat /etc/shells
#/etc/shells: valid login shells
/bin/sh
/usr/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/dash
/usr/bin/screen
/usr/bin/tmux

bash shell

  • GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一,目前也是 Linux 标准的 shell,与sh兼容.

四、设置主机名 hostname

临时修改 hostname NAME

lyaya@ubuntu2404:~$ hostname
ubuntu2404
[root@rokcy9 ~]# hostname rokcy1
[root@rokcy1 ~]#

永久修改 hostnamectl set-hostname NAME
hostnamectl hostname NAME

注意事项:

  • 修改hostname 需要root权限
  • 机名不支持使用下划线,但支持横线,可使用字母,横线或数字组合
  • 有些软件对主机名有特殊要求
  • 一般按照组织的要求设置主机名,通常有一定的意义的

五、命令提示符(Command Prompt)

lyaya@ubuntu2404:~$

  • lyaya:当前用户名
  • @:用户名主机名分隔符
  • ubuntu2024:主机名(hostname)
  • ~:当前目录home目录;/:根目录
  • $:用户类型普通用户;#:root用户

命令提示符变更

提示符是由名为PS1(prompt string 1的缩写,即提示符字符串1)的环境变量定义
临时修改,/t表示时间

[lyaya@rokcy9 ~]$ echo $PS1
[\u@\h \W] \$
[lyaya@rokcy9 ~]$ PS1='[\t\u@\h \w]'
[17:25:23lyaya@rokcy9 ~]

颜色修改, \e[ 颜色m 内容 \e[0m 颜色后用m结束,多个颜色,用;分割,只要一个m
PS1=’ \e[ 36m 我是青色 \e[0m ’
\e[ :开始位 ,\033[
\e[0m:结束位,\033[0m
36:字体青色;m颜色结束
“我是青色”:提示符内容
1:高亮

[17:30:46lyaya@rokcy9 ~]PS1=‘\e[36m我是青色\e[0m’
我是青色
[root@rokcy9 ~]# PS1='\e[33;1m[\u@\h \w]\$ \e[0m'

永久修改要写进配置文件
在CentOS系统实现持久保存提示符格式,/etc/profile.d/env.sh;更改对其他用户也生效
nano命令 – 字符终端文本编辑器 nano [参数] 文件名
cat命令 – 在终端设备上显示文件内容 cat 参数 文件名

[root@rokcy9 ~]# nano /etc/profile.d/env.sh
[root@rokcy9 ~]# cat /etc/profile.d/env.sh
PS1=‘\e[36;1m[\u@\h \w]\$ \e[0m’

在ubuntu中,设置 PS1,对所有普通用户生效,将 PS1 定义写在 /usr/share/bash-completion/bash_completion 的最下面,
对每个用户单独定义,写在用户家目录的 .bashrc文件的最下面。

lyaya@ubuntu2404:~$ echo $PS1
[\e]0;\u@\h: \w\a]$ {debian_chroot:+($debian_chroot)}\u@\h:\w$
lyaya@ubuntu2404:~$ ls -a
. .bash_history .bashrc .profile .sudo_as_admin_successful
… .bash_logout .cache .ssh .Xauthority
lyaya@ubuntu2404:~$ nano .bashrc
PS1=‘[\e[1;32m][\u@\h \W]\$ \[\e[0m]’


六、执行命令

输入命令回车,提请shell程序,找到命令所对应的程序或代码,由其分析后提交给内核分配资源将其运行起来。

  • 内部命令:由shell自带的
  • 外部命令:在文件系统路径下有对应的可执行二进制程序文件

shell 先判断是否是内部命令,是,则执行内部命令,
不是,则去特定目录环境变量PATH下寻找外部命令。
(常用内部命令会有一个外部命令的备份,防止内部命令执行失败)

[root@ubuntu2404 ~]#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

  • 区别内外部命令 type COMMAND
    pwd内部;cat外部。

[root@rokcy9 ~]# pwd
/root
[root@rokcy9 ~]# type pwd
pwd is a shell builtin
[root@rokcy9 ~]# type cat
cat is /usr/bin/cat

内部命令相关

help #查看所有内部命令及帮助
enable #查看所有启用的内部命令
enable cmd #启用 cmd 命令
enable -n cmd #禁用内部 cmd 命令
enable -n #查看所有禁用的内部命令

执行外部命令

查看外部命令路径:which

[root@ubuntu2404 ~]#which cat
/usr/bin/cat

外部命令搜索路径path,不同用户不一样

[root@ubuntu2404 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

将/root加入path

[root@ubuntu2404 ~]# vim test.cpp
[root@ubuntu2404 ~]# g++ test.cpp -o linux.exe
[root@ubuntu2404 ~]# linux.exe
linux.exe: command not found
[root@ubuntu2404 ~]# pwd
/root
[root@ubuntu2404 ~]# PATH=$PATH:/root
[root@ubuntu2404 ~]# echo $ PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/root
[root@ubuntu2404 ~]# linux.exe
hello world


Hash缓存表

Hash:外部命令的缓存利用hash缓存表可大大提高命令的调用速率
初始为空,当外部命令执行时从PATH路径下寻找,将命令路径记录到hash表中,当再次使用该命令时,shell解释器会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找。

[root@ubuntu2404 ~]# type linux.exe
linux.exe is hashed (/root/linux.exe)
[root@ubuntu2404 ~]# hash
hits command
2 /root/linux.exe
[root@ubuntu2404 ~]# ls
linux.exe test.cpp
[root@ubuntu2404 ~]# hash
hits command
2 /root/linux.exe
1 /usr/bin/ls

  • hash 只对当前用户的当前终端进程有效,是一组临时数据;
  • 切换用户后无效
  • 退出重新登录后会被重置

hash 命令常见用法

hash #显示当前终端进程中的hash 缓存
hash -l #显示详细创建此条hash 的命令,可作为输入使用
hash -p path name #手动创建hash
hash -t name #输出路径
hash -d name #删除指定hash
hash -r #清空所有hash

命令别名

对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执行
alias NAME='VALUE' #定义别名NAME,其相当于执行命令VALUE,临时

[root@ubuntu2404 ~]# type ls
ls is aliased to ‘s --color=auto’
[root@ubuntu2404 ~]# echo “12345”
12345
[root@ubuntu2404 ~]# alias e5='echo== "12345"
[root@ubuntu2404 ~]# e5
12345

  • alias #显示当前shell进程所有可用的命令别名
  • alias name #查看指定别名
  • unalias #撤消别名

在命令行中定义的别名,仅对当前shell进程有效
如里需要永久有效,则要写配置文件

  • 仅对当前用户:~/.bashrc
  • 对所有用户有效:/etc/bashrc, /etc/bash.bashrc(ubuntu)

编辑配置文件新加的别名不会立即生效
要退出重新登录或在当前进程中重新读取配置文件

  • source .bashrc
  • . .bashrc

如果别名同原命令同名,如果要执行原命令,以ls为例

\ls
“ls”
‘ls’
command ls
/path/commmand #只适用于外部命令,直接使用路径

命令执行优先级

别名 -----> 内部命令 ------>hash—>外部命令

命令格式

COMMAND [OPTIONS…] [ARGUMENTS]
命令 【选项…】【参数…】
COMMAND [COMMAND] [COMMAND] …

  • OPTIONS 选项:用于启用或关闭命令的某个或某些功能
  • ARGUMENTS参数:命令的作用对象,比如:文件名,用户名等

[]表示里面的内容是可选项,一条命令,选项和参数是可以都没有的
… 表示可以有多个值,一条命令,可以有多个选项,或多个参数

[root@ubuntu2404 ~]# ls
[root@ubuntu2404 ~]# ls -a
[root@ubuntu2404 ~]# ls -a linux.exe
[root@ubuntu2404 ~]# ls -a -h linux.exe test.cpp

选项有多种风格

  • 短选项:UNIX 风格选项,-c 例如:-l, -h
  • 长选项:GNU风格选项, --word 例如: --all, --human
  • BSD风格选项: 一个字母,例如:a,使用相对较少

注意

  • 多个选项以及多参数和命令之间使用空白字符分隔
  • 取消和结束命令执行:Ctrl+c,Ctrl+d
  • 多个命令可以用 “;” 符号分开
  • 一个命令可以用\分成多行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值