linux 基本命令的使用
2017-07-23 本文已影响0人
一桥长书
1 实现root开机用户的自动登录
- 1 编辑/etc/gdm/custom.conf在[daemon] 中添加
- AutomaticLoginEnable=true
- AutomaticLogin=root
[daemon]
#开启自动登陆
AutomaticLoginEnable=true
#开启自动登陆的用户
AutomaticLogin=root
2 修改登陆终端的提示符颜色
F(前景色) B(背景色)
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
#PS1="\[\e[35m\][\u@\h \w]\\$\[\e[0m\]"
3 man的生成和查询命令帮助的一般顺序
CentOS 6 用命令makewhatis 创建whatis
CentOS 7 mandb 创建whatis
1. 首先查看命令是外部命令还是内部命令
type command
2. 如果是内部命令可以使用 help
help command
3. 外部命令使用 man
4 查看命令的路径位置,man的位置
- whereis command
5 命令定义过别名后还想运行其原始的命令
- \command 取消别名
- /path/to/command 只对外部命令有效
6 命令运行的顺序
- alias 别名
- compound 复合命令
- function 函数命令
- buildin 内部命令
- hash hash到内存的命令
- $PATH path路径中的命令
7 hash中的命令的管理
hash
-d command 删除hash中缓存的命令
-r 清空hash中缓存的命令
-l 列出hash中缓存的命令
-t 打印hash缓存命令的路径
8 linux cal 呼出日历的使用
cal month 呼出本年那一月份的日历
cal month year 呼出哪一年那一月份的日历
9 shutdown 命令的使用
shutdown [OPTIONS...] [TIME] [WALL...]
OPTIONS
-h halt 关机
-r reboot 重启
-p ower off 断电
TIME
+ minutes 表示几分钟
HH:mm 表示具体时间
WALL
"要给在线的用户发送的信息"
如 shutdown -h 18:40 "The system will halt" 表示 在18:40 将要关机
10 单引号,双引号,反引号在linux 中意义
- 单引号
表示强引用:不对引号内的任何信息进行修改
[# 69 #root@test ~]#echo 'echo hostname'
echo hostname
- 反引号
表示强引用:命令调用
[# 69 #root@test ~]#echo `hostname`
test.mage.com
- 双引号
表示强引用:可以引用变量
[# 75 #root@test ~]#echo "$PS1"
\[\e[35m\][\u@\h \w]\\$\[\e[0m\]
11 date 的使用
date
-d 可以显示某几天前或后的日期
+%F 显示日期
+%T 显示时间
如 显示10天前是星期几
[root@test Packages]# date -d '10 days ago' +%A
Thursday
显示当前时间
[root@test Packages]# date +%F\ %T
2017-07-23 16:08:40
12 history 历史记录的使用
设置命令记录历史的条数 HISTSIZE
[root@test Packages]# HISTSIZE=10000
[root@test Packages]# echo $HISTSIZE
10000
设置文件存放历史记录的条数
[root@test Packages]# HISTFILESIZE=50000
[root@test Packages]# echo $HISTSIZE
50000
用户设置历史文件的位置
[root@test Packages]# HISTFILE=/root/.history
[root@test Packages]# echo $HISTFILE
/root/.history
使命令记录带时间
[root@test Packages]# HISTTIMEFORMAT=%F\ %T
5139 2017-07-23 16:20:16HISTTIMEFORMAT=%F %T
5140 2017-07-23 16:20:20HISTTIMEFORMAT=%F\ %T
5141 2017-07-23 16:20:36echo $HISTTIMEFORMAT
5142 2017-07-23 16:20:40history
HISTIGNORE:忽略敏感的记录 密码 不记录历史 HISTIGNORE="passwd *"
HISTCONTROL:ignoredups忽略连续重复
ignorespace 忽略空格
erasedups删除重复
igoreboth 组合上面的控制
13 ctrl 一些常用组合键
ctrl+l 清屏
ctrl+o 执行当前命令 并重新显示本命令
ctrl+s 阻止屏幕输出 锁定
ctrl+q 允许屏幕输出
ctrl+z 挂起命令
ctrl+c 终止命令
ctrl+d EOF
ctrl+u 浮标前的删除
ctrl+k 浮标后的删除
esc+. 可以多次点击
14 在vwware 不用重启新加磁盘,不用在生产环境中
[root@test Packages]# echo "- - -" > /sys/class/scsi_host/host2/scan
15 glob 通配符
匹配字母是有顺序的aAbBcCdD....来进行匹配查找
1 、显示/var 目录下所有以l 开头,以一个小写字母结尾,且中
间出现至少一位数字的文件或目录
ls -d /var/l*[0-9]*[[:lower:]]
2 、显示/etc 目录下以任意一位数字开头,且以非数字结尾的
文件或目录
ls -d /etc/[0-9]*[^0-9]
3 、显示/etc/ 目录下以非字母开头,后面跟了一个字母及其
它任意长度任意字符的文件或目录
ls -d /etc/[^[:alpah:]][[:alpha:]]*
4 、显示/etc/ 目录下所有以rc 开头,并后面是0-6 之间的数
字,其它为任意字符的文件或目录
ls -d /etc/rc[0-6]*
5 、显示/etc 目录下,所有以.d 结尾的文件或目录
ls -d /etc/*.d
6 、显示/etc 目录下,所有.conf 结尾,且以m,n,r,p 开头的文
件或目录
ls /etc/[mnrp]*.conf
7 、只显示/root 下的隐藏文件和目录
ls -d /root/*/
8 、 只显示/etc非隐藏的目录
ls /etc/[^.]*/
16 cp 的一些用法
cp [OPTION]... [-T] SOURCE DEST
-i 交互式
-r,-R 递归
-a 归档 相当于-dR --preserv=all
-d --no-dereference --preserv=links 不复制源文件 只复制链接文件
dereference 间接引用
preserv 保留;保存
--preserv[=atrr_list]
mode:权限
ownership:属主属组
timestamp:时间戳
links :连接
xattr:隐藏属性
context:上下文 selinux 中的 东西 context
all :所有
-p:等同--preserv=mode ownership,timestamp
-v:--verbose 查看过程
-f:forece 自己要对目录又所有权,可以先把前一个文件删除 ,再从新创建忽略权限
cp的可以进行简单的打包
cp -av /path /path/to
17 对文件的通配改名
rename '.txt' '.txt.bak' *.txt 表示将所有以.txt结尾的文件的.txt 改为.txt.bak
mv 既可以改单个文件名 亦可以移动文件
mv index.txt index.bak 表示将 index.txt 改名为index.bak
mv index.txt /path 表示将 index.txt 移动到 /path 路径下
18 file 是基本使用
file
-F 自定义输出文件名与文件类型的分隔符
如 [root@test ~]# file anaconda-ks.cfg -F:
anaconda-ks.cfg: ASCII text
[root@test ~]# file anaconda-ks.cfg -F" "
anaconda-ks.cfg ASCII text
-b 只显示文件类型不显示文件名
[root@test ~]# file anaconda-ks.cfg -F:
anaconda-ks.cfg: ASCII text
[root@test ~]# file anaconda-ks.cfg -F" "
anaconda-ks.cfg ASCII text
-L 查看软连接指向的文件类型
[root@test etc]# readlink system-release
centos-release
[root@test etc]# file -L system-release
system-release: ASCII text
19 软连接和硬链接
软连接
可以针对目录 可以删除,但原文件不会删除 不会增加inode号 可以跨分区
硬链接
不可以针对目录 删除文件名原文件只要有其他入口还是可以访问 会inode号 相同 不可以跨分区
软连接 硬链接 根本原因 硬链接 同一个文件 不同名
创建软连接时 是相对于软连接的相对路径
20 输出重定向和管道的使用
0 标准输入 默认是键盘
1 标准正确输出 默认是显示器
2 标准错误输出 默认是显示器
2>&1,&> 将错误输出变为正确输出
set -C 进行重定向时 禁止覆盖
set +C 开启覆盖
> | 强行覆盖
(command;command) > 多个命令的一起重定向
如 (ls;hostname) > f1
ls /boot /err 2>&1 | tr 'a-z' 'A-Z'
[root@test ~]# ls /boot/ /err 2>&1 | tr 'a-z' 'A-Z' 将 /boot /err/的错误输出改为正确的,并通过管道送给 tr 进行大小写转换
[root@test ~]# ls /boot /err |& tr 'a-z' 'A-Z' 和上面一样
LS: CANNOT ACCESS /ERR: NO SUCH FILE OR DIRECTORY
/BOOT/:
CONFIG-3.10.0-514.EL7.X86_64
GRUB
GRUB2
INITRAMFS-0-RESCUE-
71A56F2C50654FBC9D6782AA5C7C7A4A.IMG
INITRAMFS-3.10.0-514.EL7.X86_64.IMG
INITRAMFS-3.10.0-514.EL7.X86_64KDUMP.IMG
INITRD-PLYMOUTH.IMG
SYMVERS-3.10.0-514.EL7.X86_64.GZ
SYSTEM.MAP-3.10.0-514.EL7.X86_64
VMLINUZ-0-RESCUE-
71A56F2C50654FBC9D6782AA5C7C7A4A
VMLINUZ-3.10.0-514.EL7.X86_64
1 、将/etc/issue 文件中的内容转换为大写后保存至/tmp/issue.out 文件中
tr 'a-z' 'A-Z' < /etc/issue > /tmp/issue.out
2 、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out 文件中
who | tr 'a-z' 'A-Z' >/tmp/show.out
3 、一个linux 用户给root 发邮件,要求邮件标题为”help” ,邮件正文如下:
Hello, I am 用户名,The system version is here,please help me to
check it ,thanks!
操作系统版本信息
echo -e "hello,I am $USER,The system version is here,plesase help me to check it,thanks!\n `lsb_release`" | mail -s 'help' root
4 、将/root/ 下文件列表,显示成一行,并文件名之间用空格隔开
ls /root | tr '\n' '\t'
5 、计算1+2+3+..+99+100 的总和
echo {1..100} | tr ' ' '+' |bc
6 、删除Windows 文本文件中的‘^M’ 字符
tr -d '\r' win.txt
7 、处理字符串“xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4 ”,只保留其中的数字和空格
echo 'xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4' | tr -dc '0-9 '
8 、将PATH 变量每个目录显示在独立的一行
echo $PATH | tr ':' '\n'
9、 、 将 指定文件中0-9 分别替代成a-j
tr '0-9' 'a-j' > file
10 、将文件中每个单词(由字母组成)显示在独立的一行,并无空行
tr -sc '[:alpha:]' '\n'