Linux基础入门和文件管理

一、Linux基础入门

1、Linux系统默认提示符

安装好linux系统后 默认的系统命令提示符没有个性 并不醒目 无法明显辨别生产和测试环境,可能会导致误操作 所以我们可以通过修改PS1变量实现个性的提示符格式,避免在生产环境中出现误操作的低级错误

示例:默认的系统提示符

#CentOS默认提示符
[root@localhost ~]#

#Ubuntu默认提示符
root@ubuntu1804:~#

其中
#代表管理员用户

$代表普通用户

查看提示符格式

[root@centos8 ~]#echo $PS1
\[\e[1;35m\][\u@\h \W]\$\[\e[0m\]

修改提示符格式

[19:45:41 root@centos8 ~]#
PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\
[\e[0m\]\\$"

提示符格式说明:

提示符含义
\e控制符\033
\u当前用户
\h主机名简称
\H主机名
\w当前工作目录
\W当前工作目录基名
\t24小时时间格式
\T12小时时间格式
!命令历史数
#开机后命令历史数

在CentOS系统实现持久保存提示符格式

[root@centos8 ~]# echo 'PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\
[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' > /etc/profile.d/env.sh
[root@centos8 ~]#cat /etc/profile.d/env.sh
PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\
[\e[0m\]\\$

CentOS提示符
实现Ubuntu系统持久保存提示符格式

[root@ubuntu2004 ~]#echo "PS1='\[\e[1;35m\][\u@\h \W]\\$\[\e[0m\]'" >> .bashrc
[root@ubuntu2004 ~]#tail -1 .bashrc
PS1='\[\e[1;35m\][\u@\h \W]\$\[\e[0m\]'

Ubuntu提示符

2、执行命令

2.1、shell中可执行的两类命令
内部命令:由shell自带的,通过某命令形式提供, ,用户登录后自动加载并常驻内存中
外部命令:由shell自带的,而且通过某命令形式提供, ,用户登录后自动加载并常驻内存中

通过type命令确认是内部命令或外部命令
type COMMAND
查看是否存在对应内部命令和外部命令

[20:08:38 root@centos8 ~]#type -a  echo  
echo is a shell builtin
echo is /usr/bin/echo

2.2、内部命令相关

enable 管理内部命令
enable  cmd 启用内部命令
enable  -n cmd 禁用内部命令
enable -n 查看所以禁用的内部命令

2.3、执行外部命令
Hash缓存表
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的
路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速度

hash 显示hash缓存
hash -l 显示hash缓存,可作为输入使用
hash -p path name 将命令全路径path起别名为name
hash -t name 打印缓存中name的路径
hash -d name 清除name缓存
hash -r 清除缓存

3、查看硬件信息

查看cpu
lscpu
cat /etc/cpuinfo
查看内存
free -h
cat /etc/meminfo
查看硬盘和分区情况
lsblk
cat /proc/partitions

4、查看系统版本信息

查看系统架构
arch
查看内核版本
uname -r
查看操作系统发行版本
cat /etc/redhat-release
cat /etc/os-release
lsb-release -a

5、 日期和时间

Linux的两种时钟
系统时钟:由linux内核通过CPU的工作频率进行的
硬件时钟:主板

date -d 根据指定的时间显示

clock hwclock
-s 以硬件时间为准校正系统时钟 
-w 以系统时钟为准,校正硬件时钟
时区设置
/etc/localtime
timedatectl list-timezones
timedatectl set-timezone Asia/Shanghai
timedatectl status

6、 关机和重启

关机
halt
poweroff
重启
reboot
-f 强制
-p切断电源
关机或重启:shutdown
-r reboot
-h halt
TIME:默认+1 
now 立刻

7、用户登录信息查看命令

whoami: 显示当前登录有效用户
who: 系统当前所有的登录会话
w: 系统当前所有的登录会话及所做的操作

8、会话管理

screen
利用screen 可以实现会话管理,如:新建会话,共享会话等
注意:CentOS7 来自于base源,CentOS8 来自于epel源

#CentOS7 安装screen
[root@centos7 ~]#yum -y install screen 
#CentOS8 安装screen
[root@centos8 ~]#dnf -y install epel-release
[root@centos8 ~]#dnf -y install screen
screen 常见用法
创建screen会话
screen -S wang
加入会话
screen -x wang
退出并关闭会话
exit
剥离当前会话
Ctrl+a,d
显示所有已经打开的会话
screen -ls
恢复某会话
screen -r  wang
tmux

Tmux 是一个终端复用器(terminal multiplexer),类似 screen,但是更易用,也更强大

新建会话
tmux new  -s wang

显示会话
tmux ls 
tmux  list-session

分离会话
tmux detach

接入会话
tmux  attach -t wang
如:tmux attach -t 0
杀死会话
tmux kill-session -t wang
切换会话
tmux switch -t wang
上下分窗格
tmux split-window
ctrl+b"
左右分窗格
tmux split-window -h
ctrl+b,%
窗格快捷键
Ctrl+b %:划分左右两个窗格
Ctrl+b ":划分上下两个窗格
Ctrl+b <arrow key>:光标切换到其他窗格。<arrow key>是指向要切换到的窗格的方向键,比如切换
到下方窗格,就按方向键↓
Ctrl+b ;:光标切换到上一个窗格
Ctrl+b o:光标切换到下一个窗格。
Ctrl+b {:当前窗格左移
Ctrl+b }:当前窗格右移
Ctrl+b Ctrl+o:当前窗格上移
Ctrl+b Alt+o:当前窗格下移
Ctrl+b x:关闭当前窗格
Ctrl+b !:将当前窗格拆分为一个独立窗口
Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小
Ctrl+b Ctrl+<arrow key>:按箭头方向调整窗格大小
Ctrl+b q:显示窗格编号
窗口管理
新建窗口
tmux new-window -n wang
切换窗口
tmux select-window -t wang
切换到指定名称的窗口
tmux select-window -t wang

窗口快捷键
Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。
Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。
Ctrl+b n:切换到下一个窗口。
Ctrl+b <number>:切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号
Ctrl+b w:从列表中选择窗口
Ctrl+b ,:窗口重命名
列出所有快捷键
tmux list-keys
列出所有tmux命令及其参数
tmux list-commands

9、命令行扩展和被括起来的集合

命令行扩展:` ` ()
把一个命令的输出打印给另一个命令的参数,放在``中的一定是有输出信息的命令
$(COMMAND)`COMMAND`
单引号:强引用,六亲不认,变量和命令都不识别,都当成了普通的字符串,"最傻"

双引号:弱引用,不能识别命令,可以识别变量,"半傻不精"

反向单引号:里面的内容必须是能执行的命令并且有输出信息,变量和命令都识别,并且会将反向单引号的内容当成命令进行执行后,再交给调用反向单引号的命令继续,"最聪明"


范例:
[09:18:04 root@centos8 data]#echo "This system's name is $(hostname)"
This system's name is centos8.magedu.org
[09:18:55 root@centos8 data]#echo "I am `whoami`"
I am root
[09:15:37 root@centos8 data]#touch $(date +%F).log
[09:16:29 root@centos8 data]#ls
2019-12-13.log
[09:16:31 root@centos8 data]#ll
total 0
-rw-r--r--. 1 root root 0 Dec 13 09:16 2019-12-13.log
[09:16:34 root@centos8 data]#touch `date +%F`.txt
[09:17:14 root@centos8 data]#ll
total 0
-rw-r--r--. 1 root root 0 Dec 13 09:16 2019-12-13.log
-rw-r--r--. 1 root root 0 Dec 13 09:17 2019-12-13.txt
[09:17:15 root@centos8 data]#touch `hostname`-`date +%F`.log
[09:18:02 root@centos8 data]#ll
total 0
-rw-r--r--. 1 root root 0 Dec 13 09:16 2019-12-13.log
-rw-r--r--. 1 root root 0 Dec 13 09:17 2019-12-13.txt
-rw-r--r--. 1 root root 0 Dec 13 09:18 centos8.magedu.org-2019-12-13.log
[root@centos8 ~]#touch `date +%F_%H-%M-%S`.log
[root@centos8 ~]#touch `date -d '-1 day' +%F`.log
范例:$( ) 和 `` 
[root@centos8 ~]#ll `echo `date +%F`.txt`
-bash: .txt: command not found
ls: cannot access 'date': No such file or directory
ls: cannot access '+%F': No such file or directory
[root@centos8 ~]#ll $(echo $(date +%F).txt)
-rw-r--r-- 1 root root 0 Mar 20 09:55 2020-03-20.txt
[root@centos8 ~]#ll `echo $(date +%F).txt`
-rw-r--r-- 1 root root 0 Mar 20 09:55 2020-03-20.txt
[root@centos8 ~]#ll $(echo `date +%F`.txt)
-rw-r--r-- 1 root root 0 Mar 20 09:55 2020-03-20.txt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值