开机图形化自动登录:(图形化界面可以使用gedit命令,命令行使用nano,vi,vim其中一个都可以,以下以)
vim /etc/gdm/custom.conf(如果没有通过yum install -y gdm安装)
- 在[daemon]下面一行添加:
- AutomaticLoginEnable=true
- AutomaticLogin=root #(不一定是root这个用户)
-
重启电脑生效
开机启动网卡
- vim /etc/sysconfig/network-scripts/ifcfg-eth*(CentOS6之前的系统)
- vim /etc/sysconfig/network-scripts/ifcfg-ens*(CentOS7以后的系统)
- 修改ONBOOT=yes
-
重启电脑生效
用户
-
超级管理员用户(root):唯一用户编号uid=0
- 也被称为超级用户
- 一个特殊的管理帐户
- 对系统损害几乎有无限的能力
- uid=0(root)已接近完整的系统控制
- 除非必要,不要登录uid=0的账户(root)
-
普通(非特权)用户
- 权限有限
- 造成损害的能力比较有限
终端terminal
- 查看当前的终端设备:tty
- 切换终端设备:chvt [1-6](Ctrl+Alt+F[1-6])
shell:LINUX命令解释器(类似一个翻译)
提供给用户与内核交互操作的接口,将用户输入的命令解释成内核可以理解执行
- 查看当前shell类型:echo {SHELL}严谨写法
- 查看支持的shell类型:cat /etc/shells
- 切换csh的shell类型:/bin/csh
命令提示符:$PS1变量
查看帮助:man bash(进去后搜索PROMPTING)
默认显示格式:[root@localhost ~] #
- #:管理用户
- $:普通用户
查看与修改当前定义的PS1:echo {PS1}
- 临时修改,命令行执行PS1="*****"比如:PS1="[\e[1;5;41;33m][\u@\h \W]\$[\e[0m]"
- 永久生效,写入文件-----比如:vi /etc/profile.d/env.sh,内容为PS1="[\e[1;5;41;33m][\u@\h \W]\$[\e[0m]"保存退出-----重新登录让其生效
内部命令与外部命令
内部命令:由shell自带,集成在shell里面,不同shell有不同命令,开机自动加载到内存中
- 查看所有内部命令(bash):enable
-
禁用内部命令:enable -n command
-
启用内部命令:enable command
外部命令:开机不会自动加载到内存中,储存在磁盘中的可执行程序文件
区分内部命令与外部命令:type command
- 内部命令:结果包含is a shell builtin
-
外部命令:显示为具体的路径比如/usr/bin/vim
命令执行顺序(内部比外部效率更高)
命令别名>内部命令>hash>$PATH目录顺序
hash(缓存表,重启自然清空):外部命令执行过以后会把这条命令的路径记录到hash表中,以便为下次再执行提高速率
- 查看已经hash到内存的外部命令:hash
-
查看已经hash到内存中外部命令的详细信息:hash -l
-
删除指定已经hash的缓存命令:hash -d name
-
给hash到内存中的命令定义别名:hash -p path newname
-
查看hash命令真实路径:hash -t name
- 查看外部命令路径:which command(所有加上-a选项)
-
只关心路径:which --skip-alias command
-
-
查看命令路径、帮助文档:whereis command
- 查看外部命令路径:which command(所有加上-a选项)
-
清除hash所有缓存:hash -r
命令执行默认查找的路径:echo {PATH}
命令别名:将比较长的命令用短的方式起个别称
例如:alias NAME='VALUE'
-
临时:alias cdnet="cd /etc/sysconfig/network-scripts/"
- 永久
-
当前用户:写到自己家目录下的.bashrc文件中-----执行source .bashrc生效
- 所有用户(但不建议使用):写到/etc/bashrc下
-
取消别名:unalias NAME(-a:取消所有)
使用原始命令,不使用别名
- 绝对路径:/bin/ls
- 加上单引号'':'ls'
- 加上双引号"":"ls"
- 使用反斜线\:\ls
-
前面加上command:command
命令格式
COMMAND [OPTIONS...] [ARGUMENTS...]
- 选项:用于启用或关闭命令的某个或某些功能
- 短选项:-c 例如:-l, -h
- 长选项:--word 例如:--all, --human-readable
- 参数:命令的作用对象,比如文件名,用户名等
- 注意:
- 多个选项以及多参数和命令之间使用空白字符分隔
- 取消和结束命令执行:Ctrl+c,Ctrl+d
- 多个命令可以用;符号分开
-
一个命令可以用\分成多行
日期和时间
两种时间
- 系统时间(软件时间):Linux内核
- 硬件时间:主板(BIOS)
相关命令
- date:显示和设置系统时间
-
更改:date 月日时分年.秒
- 现在距离1970-01-01有多少秒:date +%s
- 把距离1970-01-01的秒数转化为具体时间:date -d @秒数
-
- clock,hwclock:显示硬件时钟
- -s,--hctosys:以硬件时钟为准,校正系统时钟
-
-w,--systohc:以系统时钟为准,校正硬件时钟
- 昨天日期:date -d yesterday
- 生成昨天日期文件:touch
date -d "yesterday" +%F
.log
- 生成昨天日期文件:touch
同步时间服务器:ntpdate IP
![image](http://upload-images.jianshu.io/upload_images/10967676-c2e6abf8a487cc68.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
时区:/etc/localtime指向所在时区/usr/share/zoneinfo/
CentOS 6:tzselect
CentOS 7:timedatectl
- 时区列表:timedatectl list-timezones
- 当前时区:timedatectl status
-
更改时区:timedatectl set-timezone 时区名(America/New_York)
日历:cal
- 奇怪的年:cal 9 1752
关机与重启
关机:halt,poweroff
重启:reboot
- f:强制,不调用shutdown
- p:切断电源
关机与重启:shutdown
格式:shutdown [OPTION]... [TIME] [MESSAGE]
- r:reboot重启
- h:halt关机
- c:cancel取消
- TIME:无指定,默认相当于+1(CentOS7)
- now:立刻,相当于+0
- +m:相对时间,多长时间之后;例如+3:3分钟以后
- hh:mm:绝对时间,具体时间
用户登录信息查看命令:
- whoami: 显示当前登录有效用户
- who: 系统当前所有的登录会话
- w: 系统当前所有的登录会话及所做的操作
screen:远程连接,共享会话,同步
(同一用户,同一主机-IP)
- 创建新会话:screen -S 会话名(主)
- 查看会话列表:screen -ls(主,远程)
- 加入指定会话(状态为-Attached):screen -x 会话名(远程)
- 退出并关闭会话:exit(主,远程)
- 退出并不关闭会话:ctrl+a松手再按d(主,远程)
- 恢复指定会话(状态为-detached):screen -r 会话名
- 好处:不怕中途断开,后台继续执行
- 先创建会话:screen [会话名]可省略
- 执行需要的操作命令:备份什么的
- 中途被人断开,执行:screen -r [会话名]可省略
echo:回显
功能:显示字符
语法:echo [-neE][字符串]
说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号
选项:
- -E (默认)不支持\解释功能
- -n 不自动换行
- -e 启用"\字符"的解释功能:特别加以处理,不会将它当成一般文字输出
- \a 发出警告声
- \b 退格键
- \c 最后不加上换行符号
- \n 换行且光标移至行首
- \r 回车,即光标移至行首,但不换行
- \t 插入tab
- \ 插入\字符
- \0nnn 插入nnn(八进制)所代表的ASCII字符
- echo -e '\033[43;31;5mmagedu\033[0m'
-
\xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)
计算:bc
- ibase=16:表示输入的是16进制数;输出结果为10进制数
-
obase=16:表示输入的是10进制数;输出结果为16进制数
- quit:退出
系统登录前提示信息:/etc/issue
系统登录后提示信息:/etc/motd
有趣的motd
命令行扩展:$()或``(反引号):需要命令的输出信息时使用
把一个命令的输出打印给另一个命令的参数
- echo "This system's name is $(hostname) "
- 结果为:This system's name is server1.example.com
- echo "i am
whoami
"- 结果为:i am root
括号扩展:{}:输出连续重复或者组合输出,还可以分组
引号,括号的区别:
- 单引号'':不能识别命令和变量,全部识别为字符串(不合格)
- 双引号"":只可以识别变量,但命令不行(中等)
-
反引号``:都可以识别命令与变量(优秀)
- 大括号{}:
- 对象:变量-----${PATH}
- 字符串:连续重复输出,分组,组合输出
- 小括号():
-
对象:命令-----$(hostname)
-
tab键
- 命令补全
- 内部命令:
- 外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令
- 用户给定的字符串只有一条惟一对应的命令,直接补全
- 否则,再次Tab会给出列表
- 路径补全
- 把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
- 如果惟一:则直接补全
- 否则:再次Tab给出列表
双击Tab键
- command 2Tab 所有子命令或文件补全
- string2Tab 以string开头命令
- /2Tab 显示所有根目录下一级目录,包括隐藏目录
- ./2Tab 当前目录下子目录,包括隐藏目录
- *2Tab 当前目录下子目录,不包括隐藏目录
- ~2Tab 所有用户列表
- $2Tab 所有变量
- @2Tab /etc/hosts记录 (centos7不支持)
- =2Tab 相当于ls –A (centos7不支持)
命令行历史:history
1.保存你输入的命令历史。可以用它来重复执行命令
2.登录shell时,会读取命令历史文件中记录下的命令/.bash_history
3.登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中
- $HISTSIZE:命令历史记录数(在/etc/profile中定义,默认为1000,不定义默认为500)
- .bash_history(家目录下):不是实时更新,是正常退出才会从内存中执行过的命令历史写入到.bash_history中(突然断电不会写入)
- 重复前一个命令,有4种方法
- 重复前一个命令使用上方向键,并回车执行
- 按 !! 并回车执行
- 输入 !-1 并回车执行
- 按 Ctrl+p 并回车执行
- !:0 执行前一条命令(去除参数)
- Ctrl + n 显示当前历史中的下一条命令,但不执行
- Ctrl + j 执行当前命令
- !n 执行history命令输出对应序号n的命令
- !-n 执行history历史中倒数第n个命令
- !string 重复前一个以“string”开头的命令
- !?string 重复前一个包含string的命令
- !string:p 仅打印命令历史,而不执行
- ! (上一条命令的最后一个参数)的内容
- !:p 打印输出 !(上一条命令的所有参数)的内容
- ^string 删除上一条命令中的第一个string
- string1string2 将上一条命令中的第一个string1替换为string2
- !:gs/string1/string2 将上一条命令中所有的string1都替换为 string2
- 使用up(向上)和down(向下)键来上下浏览从前输入的命令
- ctrl-r来在命令历史中搜索命令
- (reverse-i-search)`’:
- Ctrl+g:从历史搜索模式退出
- 要重新调用前一个命令中最后一个参数
- !$ 表示
- Esc, .(点击Esc键后松开,然后点击 . 键)
- Alt+ .(按住Alt键的同时点击 . 键)
调用历史参数
- command !^ 利用上一个命令的第一个参数做cmd的参数
- command !$ 利用上一个命令的最后一个参数做cmd的参数
- command !* 利用上一个命令的全部参数做cmd的参数
- command !:n 利用上一个命令的第n个参数做cmd的参数
- command !n:^ 调用第n条命令的第一个参数
- command !n:$ 调用第n条命令的最后一个参数
- command !n:m 调用第n条命令的第m个参数
- command !n:* 调用第n条命令的所有参数
- command !string:^ 从命令历史中搜索以 string 开头的命令,并获取它的第一个参数
- command !string:$ 从命令历史中搜索以 string 开头的命令,并获取它的最后一个参数
- command !string:n 从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
- command !string:* 从命令历史中搜索以 string 开头的命令,并获取它的所有参数
history
完全历史顺序:先删除.bash_history,再执行history -c(清内存)
- history [-c] [-d offset] [n]
- history -anrw [filename]
- history -ps arg [arg...]
- -c: 清空命令历史
- -d offset: 删除历史中指定的第offset个命令
- n: 显示最近的n条历史
- -a: 追加本次会话新执行的命令历史列表至历史文件
- -r: 读历史文件附加到历史列表
- -w: 保存历史列表到指定的历史文件
- -n: 读历史文件中未读过的行到历史列表
- -p: 展开历史参数成多行,但不存在历史列表中
- -s: 构建虚假历史,展开历史参数成一行,附加在历史列表后
命令历史相关环境变量(可以在man bash查看帮助)(永久保存可以写到:/etc/profile.d/env.sh)
- HISTSIZE:命令历史记录的条数,/etc/profile
- HISTFILE:指定历史文件,默认为~/.bash_history
- HISTFILESIZE:命令历史文件记录历史的条数
- HISTTIMEFORMAT=“%F %T “ 显示时间(永久可以写到:/etc/profile.d/env.sh)
- HISTIGNORE=“str1:str2:… “ 忽略str1命令,str2开头的历史*
- 控制命令历史的记录方式:
- 环境变量:HISTCONTROL
- ignoredups 默认,忽略重复的命令,连续且相同为“重复”
- ignorespace 忽略所有以空白开头的命令
- ignoreboth 相当于ignoredups, ignorespace的组合
- erasedups 删除重复命令
- 环境变量:HISTCONTROL
- export 变量名="值“
- 存放在 /etc/profile 或 ~/.bash_profile(不建议,还是自己手写一个文件/etc/profile.d/env.sh)
man帮助章节(/usr/share/man)
- 普通用户命令
- 系统调用(binary system-b-2)
- C库调用(C-3)
- 设备文件及特殊文件(dev-d-4)
- 配置文件格式(etc-e-5)
- 游戏(666666)
- 杂项(杂七杂八)
- 管理类命令
- Linux内核API
man 帮助段落说明
- NAME 名称及简要说明
- SYNOPSIS 用法格式说明
- [] 可选内容
- <> 必选内容
- a|b 二选一
- { } 分组
- ... 同一内容可出现多次
- DESCRIPTION 详细说明
- OPTIONS 选项说明
- EXAMPLES 示例
- FILES 相关文件
- AUTHOR 作者
- COPYRIGHT 版本信息
- REPORTING BUGS bug信息
- SEE ALSO 其它帮助参考
man帮助
- 查看man手册页
- man [章节] keyword
- 列出所有帮助
- man –a keyword
- 搜索man手册
- man -k keyword 列出所有匹配的页面
使用 whatis 数据库
- man -k keyword 列出所有匹配的页面
- 相当于whatis
- man –f keyword
- 打印man帮助文件的路径
- man –w [章节] keyword
man命令的操作方法:使用less命令实现
- space, ^v, ^f, ^F: 向文件尾翻屏
- b, ^b: 向文件首部翻屏
- d, ^d: 向文件尾部翻半屏
- u, ^u: 向文件首部翻半屏
- RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行
- y or ^Y or ^P or k or ^K:向文件首部翻一行
- q: 退出
-
:跳转至第#行
- 1G: 回到文件首部
- G:翻至文件尾部
man搜索
- /KEYWORD:
- 以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写;
- n: 下一个
- N:上一个
- ?KEYWORD:
- 以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区分字符大小写;
- n: 跟搜索命令同方向,下一个
- N:跟搜索命令反方向,上一个
whatis,which,whereis区别
- whatis=man -f:查看帮助文档
- which:存放路径,别名
-
whereis:存放路径,帮助文档路径(man -w)
bash的快捷键
- Ctrl + l 清屏,相当于clear命令
- Ctrl + o 执行当前命令,并重新显示本命令
- Ctrl + s 阻止屏幕输出,锁定
- Ctrl + q 允许屏幕输出
- Ctrl + c 终止命令
- Ctrl + z 挂起命令
- Ctrl + w 从光标处向左删除至单词首
- Alt + d 从光标处向右删除至单词尾
- Ctrl + d 删除光标处的一个字符
- Ctrl + h 删除光标前的一个字符
- Ctrl + y 将删除的字符粘贴至光标后
- Alt + c 从光标处开始向右更改为首字母大写的单词
- Alt + u 从光标处开始,将右边一个单词更改为大写
- Alt + l 从光标处开始,将右边一个单词更改为小写
- Ctrl + t 交换光标处和之前的字符位置
- Alt + t 交换光标处和之前的单词位置
- Alt + N 提示输入指定字符后,重复显示该字符N次
- 注意:Alt组合快捷键经常和其它软件冲突
- Ctrl + a 光标移到命令行首,相当于Home
- Ctrl + e 光标移到命令行尾,相当于End
- Ctrl + f 光标向右移动一个字符
- Ctrl + b 光标向左移动一个字符
- Alt + f 光标向右移动一个单词尾
- Alt + b 光标向左移动一个单词首
- Ctrl + xx 光标在命令行首和光标之间移动
- Ctrl + u 从光标处删除至命令行首
- Ctrl + k 从光标处删除至命令行尾
- Alt + r 删除当前整行
图形化终端快捷键
- Ctrl-Shift -n 创建新窗口
- Ctrl-Shift -q 关闭当前窗口
- Ctrl-Shift -t 创建一个标签页
- Ctrl-Shift -w 关闭一个标签页
- Ctrl-PaUp/PgUn 切换到下一个/前一个标签页
- Ctrl-Shift -c 复制选中的文本
- Ctrl-Shift -v 把文本粘帖到当前光标处