Linux基础命令
用户登录
root用户
一个特殊的管理账户
超级用户
id -u 当前用户的uid
id -u wang 王用户的uid
普通用户(非特权)用户
权限有限
造成伤害的能力有限
终端terminal
物理终端 /dev/console
串行终端 /dev/ttyS#
图形终端 /dev/tty7
交互式接口:启动终端后,在终端设备附加一个交互式应用程序
GUI:Graphic User Interface
X protocol, window manager, desktop
Desktop:
GNOME (C, 图形库gtk),
KDE (C++,图形库qt)
XFCE (轻量级桌面)
Shell:LINUX命令解释器
shell是一种高级程序设计语言
sh bash
echo $SHELL
cat /etc/shells 显示当前系统使用的所有shell
/sbin/nologin #用户不登录
主机名示例
主机名示例
hostname
bj-yz-k8s-node1-100-10.magedu.com
命令提示符
root 当前用户
@分隔符
localhost主机名
~当前所在位置家目录
管理员 用户提示符
$普通用户
[root@localhost ~]#
# 管理员
$ 普通用户
显示提示符格式
[root@localhost ~]#echo $PS1
修改提示符格式
临时设置
永久设置
cat /etc/profile.d/env.sh #env.sh可以换
PS1="\[\e[31;1m\][\[\e[36;1m\]\t \[\e[31;1m\]\u\[\e[32;1m\]@\[\e[35;1m\]\h \w\[\e[35;1m\]]\[\e[0m\]\\$"
PS1="\[\e[31;1m\][\t \[\e[33;1m\]\u\[\e[32;1m\]@\h \w\[\e[35;1m\]]\[\e[0m\]\\$"
\e 控制符\033 \u 当前用户
\h 主机名简称 \H 主机名
\w 当前工作目录 \W 当前工作目录基名
\t 24小时时间格式 \T 12小时时间格式
\! 命令历史数 \# 开机后命令历史数
wang@ubuntu1804 ~$ PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
ubuntu用户 sudo -i #切换root用户
vim .profile #wang用户设置
PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
执行命令
查看内部还是外部命令
type COMMAND
type type
type cd
type cat
type echo #内部和外部命令
enable –n cmd 禁用内部命令
enable cmd 启用内部命令
enable –n 查看所有禁用的内部命令
which #专门查看外部命令
which bc
which type
whereis #显示外部命令和帮助文档
whereis cat
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz
hash
hash 显示hash缓存
hash –l 显示hash缓存,可作为输入使用
hash –p path name 将命令全路径path起别名为name
hash –t name 打印缓存中name的路径
hash –d name 清除name缓存
hash –r 全部清除缓存
命令别名
alias别名应用
alias cdnet=‘cd /etc/sysconfig/network-scripts‘ #定义别名
vi .bashrc
alias cdnet=‘cd /etc/sysconfig/network-scripts‘ #写到文件中永久保存
alias 列出所有别名
unalias cdnet #临时取消别名
alias echo hostname
命令执行过程
1.别名
2.内部命令
3.外部命令hash表
4.外部命令$PATH
unalias -a name 取消所有别名
#不取消别名执行
\echo 换行执行
‘echo‘
"echo"
/bin/echo
命令格式:
COMMAND
选项:用于启用或关闭命令的某个或某些功能
短选项: -c
长选项: --h
free -h =free --h
free -h=free --human
id -u wang
sleep 100
ctrl +d =exit
ctrl +c #强行退出
hostname;uname -r;who;whoami #一行执行多个命令
一个命令可以用\分行执行
日期和时间设置
系统时间:linux内核通过CPU工作频率决定
硬件时钟:主板
date --help
date 显示和设置系统时间
date ‘+2 years‘ 2年以后
date +%F #2020-12-04
date +"%F %T" #2020-12-04 21:55:37
date -d "-2 day" 前两天
date 051010302020.30 #日期 月份 小时 分钟 年份 秒
date -u
date -s ‘1 year‘
clock=hwclock 硬件时间
clock -s 修改时间 硬件时间为准,校准系统时间
clock -w 系统时间为准,校准硬件时间
ntpdate 172.16.0.1
timedatectl set-timezone Asia/Shanghai
查看系统版本号
uname -r
hostnamectl
cat /etc/centos-release
cat /etc/redhat-release
cat /etc/issue 欢迎首页
cat /etc/motd 登录后的消息
查看帮助信息
man bash
1。用户命令
5.配置文件格式
8.管理类的命令
man /keyword
搜关键字
?向上搜索
b 文件首部翻页
type命令
type help
type cd
type type
info命令
d 显示主题目录
/usr/share/doc目录
设置语言为中文
localectl set-locale LANG=zh_CN.utf8
/etc/localtime #指定时区
timedatectl set-timezone Asia/Shanghai #设置时区 centos7
centos6不支持
日历信息
cal 显示日历
-1, --one 只显示当前月份(默认)
-3, --three 显示上个月、当月和下个月
-s, --sunday 周日作为一周第一天
-m, --monday 周一用为一周第一天
-j, --julian 输出儒略日
-y, --year 输出整年
-V, --version 显示版本信息并退出
-h, --help 显示此帮助并退出
cal 9 1752 #查看日历
screen命令
screen -S xiaohong
screen -x xiaohong 加入
退出screen会话
ctrl+a,d
显示所有已经打开的screen会话
screen -ls
恢复某screen会话
screen -r [SESSION]
echo命令
sleep 3 ; echo -e ‘\a‘
echo -e ‘abc\n123‘
abc
123
echo -e ‘abc\t123‘
abc 123
echo -e ‘abc\b123‘
ab123
-E (默认)不支持 \ 解释功能
-n 不自动换行
-e 启用 \ 字符的解释功能
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
显示变量
echo "$VAR_NAME” 变量会替换,弱引用
echo ‘$VAR_NAME’ 变量不会替换,强引用
echo -e ‘\c‘
命令行扩展:
$( ) 或 ``
把一个命令的输出打印给另一个命令的参数
echo "This system‘s name is $(hostname) "
This system‘s name is server1.example.com
echo "i am `whoami` "
括号扩展:{ }
打印重复字符串的简化形式
echo file{1,3,5} 结果为:file1 file3 file5
rm -f file{1,3,5}
echo {1..10}
echo {a..z}
echo {000..20..2}
echo user{1..10}
注: echo ‘$PATH’ #所出即所得
? echo “$PATH” #可以解析变量
? echo
echo $PATH
#反向单引号将命令的执行结果输出到屏幕? touch /data/
date +%F
.log
关机或重启
关机:halt poweroff
重启:reboot
-f: 强制,不调用shutdown
-p: 切断电源
关机或重启:shutdown
shutdown [OPTION]... [TIME] [MESSAGE]
-r: reboot
-h: halt
-c:cancel
TIME:无指定,默认相当于+1(CentOS7)
now: 立刻,相当于+0
+m: 相对时间表示法,几分钟之后;例如 +3
hh:mm: 绝对时间表示,指明具体时间
用户登录信息查看命令:
whoami: 显示当前登录有效用户
who: 系统当前所有的登录会话
w: #系统当前所有的登录会话及所做的操作
bash的快捷键
ctrl +l 清屏,相当于clear的命令
ctrl +s阻止屏幕输出
ctrl +q允许屏幕输出
Ctrl + a 光标移到命令行首,相当于Home
Ctrl + e 光标移到命令行尾,相当于End
Ctrl + f 光标向右移动一个字符
Ctrl + b 光标向左移动一个字符
Alt + f 光标向右移动一个单词尾
Alt + b 光标向左移动一个单词首
Ctrl + xx 光标在命令行首和光标之间移动
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
Alt + r 删除当前整行
Tab键补全
命令补全
HISTORY
重复前一个命令使用上方向键,并回车执行
按 !! 并回车执行 执行上一个已经执行的命令
输入 !-1 并回车执行
按 Ctrl+p 并回车执行
!:0 执行前一条命令(去除参数)
Ctrl + n 显示当前历史中的下一条命令,但不执行
Ctrl + j 执行当前命令
!n 执行history命令输出对应序号n的命令
!-n 执行history历史中倒数第n个命令
命令行历史
!string 重复前一个以“string”开头的命令
!?string 重复前一个包含string的命令
!string:p 仅打印命令历史,而不执行
!$:p 打印输出 !$ (上一条命令的最后一个参数)的内容
!*:p 打印输出 !*(上一条命令的所有参数)的内容
^string 删除上一条命令中的第一个string
^string1^string2 将上一条命令中的第一个string1替换为string2
!:gs/string1/string2 将上一条命令中所有的string1都替换为 string2
ctrl-r可以搜索前面输入的命令
id -u wang
touch !$
cat wang 按住SEC .键
Alt加.键
history命令
history -c #清空命令历史
history 10 #
echo $HISTSIZE
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg...]
-c: 清空命令历史
-d offset: 删除历史中指定的第offset个命令
n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后
cat > /etc/profile.d/env.sh <<EOF
HISTTIMEFORMAT="%F %T"
EOF
#永久修改历史命令加时间
history
2020-12-07 21:41:10history
2020-12-07 21:42:25echo $HISTSIZE
2020-12-07 21:44:40rm -rf /*
2020-12-07 21:44:46history
2020-12-07 21:46:07HISTTIMEFORMAT="%F %T"
2020-12-07 21:46:28history