Linux基础命令补充
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
1.字符处理命令-排序sort
指定分隔符 -t
指定第几列的内容(按分隔符),不指定分隔符,默认是空格为分隔符 -k
按照阿拉伯数字的大小顺序排序 -n
倒叙排序 -r
输入文件
[root@centos7 ~]# cat >> sort.txt <<eof
\> A:d:8
\> E:x:2
\> B:c:6
\> eof
排序文件
[root@centos7 ~]# sort sort.txt
A:d:8
B:c:6
E:x:2
按照字母小写顺序排序
[root@centos7 ~]# sort -t ':' -k 2 sort.txt
B:c:6
A:d:8
E:x:2
按照字母小写顺序排序
[root@centos7 ~]# sort -t ':' -k 2 -n sort.txt
A:d:8
B:c:6
E:x:2
按照字母小写倒叙
[root@centos7 ~]# sort -t ':' -k 2 -n -r sort.txt
E:x:2
B:c:6
A:d:8
2.字符处理-去重uniq
去重相邻行,不相邻不会去重
-c | 显示去重后的数量(count) |
---|---|
-d | 只显示重复的行 |
-u | 只显示不重复的行 |
输入内容:
[root@centos7 ~]# cat >>unip.txt <<eof
\> abc
\> abc
\> 123
\> eof
文件去重(没有排序无法去重)
[root@centos7 ~]# uniq uniq.txt
abc
123
abc
123
排序文件
[root@centos7 ~]# sort uniq.txt
123
123
abc
Abc
先排序文件,后去重
[root@centos7 ~]# sort uniq.txt |uniq
123
abc
先排序文件,后去重并显示去重后的数量
[root@centos7 ~]# sort uniq.txt |uniq -c
2 123
2 abc
3.字符处理-截取cut
-d | 指定分隔符 |
---|---|
-f | 指定第几列 |
-c | 根据字符来取数据 |
输入内容
[root@centos7 ~]# cat >>info.txt <<eof
\> I’m gjy,20 years old qq 861962063
\> eof
\#以空格为分隔符,截取第二个,第六个字符
[root@centos7 ~]# cut -d ' ' -f 2,6 info.txt
gjy,20 861962063
以空格为分隔符,截取第二个,第六个,再以逗号为分隔符,截取第一个第二个
[root@centos7 ~]# cut -d ' ' -f 2,6 info.txt |cut -d ',' -f 1,2
gjy,20 861962063
[root@centos7 ~]# cut -d ' ' -f 2,6 info.txt |cut -c 1-3,8-16
gjy861962063
4.字符处理-统计wc
-l | 统计行数 |
---|---|
-c | 统计字节数 |
-w | 统计单词次数,也就是列数 |
示例:
[root@centos7 ~]# wc /etc/services
11176 61033 670293 /etc/services
统计字节:
[root@centos7 ~]# wc -c /etc/services
670293 /etc/services l
统计行数
[root@centos7 ~]# wc -l /etc/services
11176 /etc/services
统计列数
[root@centos7 ~]# wc -l /etc/services
11176 /etc/services
很高兴各位朋友能欣赏作品,本文版权归作者和博客园共有,欢迎转载,请在文章页面明显位置给出原文出处,否则将追究法律责任。 原文链接: https://www.cnblogs.com/strugger-0316