Linux From Scratch 自制Linux
官网:http://www.linuxfromscratch.org
中文版LFS-ver7.7:https://linux.cn/lfs/LFS-BOOK-7.7-systemd/
设置开机自动登录:
vim /etc/gdm/custom.conf
[daemon]
AutomaticLoginEnable=true
AutomaticLogin=root
设置网卡开机自启:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
ONBOOT=yes
用Xshell或SecureCRT登录的话,由于是字符界面,不支持gedit,可改用nano工具
Ctrl+X退出nano
Y保存
指定文件名后回车退出
cat 查看文件内容
查看用户唯一编号id -u
uid为0的帐号是管理员帐号,一般是root用户,可以修改
centos6的第一个帐号的默认uid是500,centos7的第一个帐号的默认uid是1000
终端切换:
Alt+F1 切换至图形界面终端
Ctr+Alt+F2~F6 切换至字符界面终端
tty 查看终端号
who 查看登录本机的终端、用户、登录时间
tty#为本机终端,pts/#为远程连接
whoami 显示当前用户名
who am i 显示当前用户名、终端、登录时间
who is #
w 显示各用户的用户名、终端、登录方式、登录时间、正在运行的程序等
init 3 关掉图形界面
init 0 关机
init 5 开启图形界面
startx 开启图形界面,Linux里图形界面是一个软件,不是必需的
runlevel 查看当前工作模式
echo $SHELL 查看当前SHELL
cat /etc/shells 显示当前系统使用的所有shell
/bin/csh 切换到csh
不同的shell命令不全一样
hostname 显示主机名
echo $PS1 PS1是提示符的格式
修改提示符格式
PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
\e \033 \u 当前用户
\h 主机名简称 \H 主机名
\w 当前工作目录 \W 当前工作目录基名
\t 24小时时间格式 \T 12小时时间格式
\! 命令历史数 \# 开机后命令历史数
但保存不住,要想存住的话要保存到文件中
vim /etc/profile.d/env.sh
内部命令:由shell自带的,而且通过某命令形式提供
enable 列出所有内部命令,内部命令是集成在shell里的,开机就加载到内存中了
help 列出所有内部命令,带*的是被禁用的命令
enable cmd 启用内部命令
enable -n cmd 禁用某内部命令
enable -n 查看所有禁用的内部命令
type cmd 查看一个命令是内部还是外部命令
外部命令:在文件系统路径下有对应的可执行程序文件
echo $PATH
外部命令是按$PATH变量顺序查找的
yes str 不停地输出str
ntpdate 172.20.0.1 与172.20.0.1同步时间,出现offset字样即成功
date 查看时间
hash 常见用法
hash 显示hash缓存
hash -l 显示hash缓存,可作为输入使用
hash -p path name 将命令全路径path起别名为name
hash -t name 打印缓存中name的路径
hash -d name 清除name缓存
hash -r 清除缓存
which 查看外部命令对应的路径,只显示第一个
which -a 全显示,如果有多个路径的话
which -a |--skip-alias ls
whereis cmd
alias 定义别名
unalias 删除别名
alias cdnet="cd /etc/sysconfig/network-scripts/"
vim ~/.bashrc 或/etc/.bashrc 写入到.bashrc可存住
. 或source 读取某文件的内容放到内存中,使配置文件即时生效
优先级:别名>内部命令>外部命令
使用原始的ls命令:
/bin/ls 只适合于外部命令
'ls'
\ls
"ls"
command ls
命令格式
COMMAND [OPTIONS…] [ARGUMENTS…]
选项:用于启用或关闭命令的某个或某些功能
短选项:-c 例如:-l, -h
长选项:--word 例如:--all, --human-readable
参数:命令的作用对象,比如文件名,用户名等
注意:
多个选项以及多参数和命令之间使用空白字符分隔
取消和结束命令执行:Ctrl+c,Ctrl+d
Ctrl+c 较强硬地退出
Ctrl+d 正常退出
多个命令可以用;符号分开
一个命令可以用\分成多行
日期与时间
date 显示和设置系统时间
date 031010302019.30 设置系统时间
date +%s
date -d @1522206929
hwclock,clock: 显示硬件时钟
-s, --hctosys以硬件时钟为准,校正系统时钟
-w, --systohc以系统时钟为准,校正硬件时钟date +%s
时区
CentOS 7:
timedatectl list-timezones
timedatectl status
timedatectl set-timezone Europe/Zurich
timedatectl set-timezone Asia/Shanghai
CentOS 6:
tzselect
ll /usr/share/zoneinfo/Asia/Shanghai
ll /etc/localtime
这两个文件是完全一样的,使用的应该是软连接或硬链接
cal
cal -y
cal 2019
cal 8 2008
cal 9 1752
关机:halt, poweroff
重启:reboot
-f: 强制,不调用shutdown
-p: 切断电源
关机或重启:shutdown
shutdown [OPTION]... TIME [MESSAGE]
-r: reboot
-h: halt
-c:cancel
TIME:无指定,默认相当于+1
now: 立刻,相当于+0
+m: 相对时间表示法,几分钟之后;例如+3
hh:mm: 绝对时间表示,指明具体时间
修改系统语言:
echo $LANG
CentOS 6
vim /etc/sysconfig/i18n
LANG="en_US.UTF-8"
LANG="zh_CN.UTF-8"
screen命令:
创建新screen会话
screen –S [SESSION]
加入screen会话
screen –x [SESSION]
退出并关闭screen会话
exit
剥离当前screen会话
Ctrl+a,d
显示所有已经打开的screen会话
screen -ls
恢复某screen会话
screen -r [SESSION]
echo命令
功能:显示字符
语法:echo [-neE][字符串]
说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号
选项:
-E (默认)不支持\解释功能
-n 不自动换行
-e 启用\字符的解释功能
显示变量
echo "$VAR_NAME“ 变量会替换,弱引用
echo '$VAR_NAME‘ 变量不会替换,强引用
启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
\\插入\字符
\0nnn 插入nnn(八进制)所代表的ASCII字符
echo -e '\033[43;31;5mmagedu\033[0m'
\xHH插入HH(十六进制)所代表的ASCII字
ASCLL码表
hexdump -C f1 查看f1文件的16进制码
bc 计算器
ibase=2 二进制转十进制
obase=2 十进制转二进制
登录提示:
vim /etc/motd
双引号,单引号,反向单引号
echo "echo $PS1"
echo 'echo $PS1'
echo `echo $PS1`
`反向单引号`,当一个命令调用另一个命令的输出信息时使用,等价于$(),最聪明最灵活的
例如:
touch `date +%F`.log
cp `which --skip-alias ls` /data
'单引号',什么都不认,最傻的
"双引号",能认一部分,中间
大括号{}
echo {a..e}
echo {1..10}
echo {20..10}
echo {1..20.2}
echo {Z..a}
touch /data/file{a,b,c}.{log,txt}
双击Tab键
command 2Tab 所有子命令或文件补全
string2Tab 以string开头命令
/2Tab 显示所有根目录下一级目录,包括隐藏目录
./2Tab 当前目录下子目录,包括隐藏目录
*2Tab 当前目录下子目录,不包括隐藏目录
~2Tab 所有用户列表
$2Tab 所有变量
@2Tab /etc/hosts记录(centos7不支持)
=2Tab 相当于ls –A (centos7不支持)
命令行历史history
bash的快捷键
wall 发广播
获取帮助:
获取帮助的能力决定了技术的能力!
whatis
whatis cmd 等价于 man -f cmd
内部命令:help cmd
外部命令:
cmd --help
cmd -h
man manual的缩写
man [1] ls
info 页面结构像是一个网站
/usr/share/doc 目录,很多软件的帮助文档,一般比较详尽
安装中文man帮助:man-pages-zh-CN
通过在线文档获取帮助
第三方应用官方文档
http://www.nginx.org
http://tomcat.apache.org
http://httpd.apache.org
http://www.python.org
通过发行版官方的文档光盘或网站可以获得
安装指南、部署指南、虚拟化指南等
红帽知识库和官方在线文档
http://kbase.redhat.com
http://www.redhat.com/docs
http://access.redhat.com
网站和搜索
http://tldp.org
http://www.slideshare.net
http://www.google.com
Openstackfiletype:pdf
rhcasite:redhat.com/docs
/etc/issue 登录前显示的信息
/etc/motd 登录后显示的信息