Linux分为内核版本、发行版本。
Linux内核版本并不提供各种工具和应用软件,用户无法仅通过使用Linux内核进行工作,目前最新的Linux内核版本为4.11.7
,4指主版本,11指次版本,7指末版本。
以Linux内核为核心,再集成各种各样的系统管理软件或应用工具软件而组成一套完整的操作系统,如此的组合便称为Linux发行版,常见的Linux发行版有Ubuntu、CentOS、Redhat、Debian等。
与Windows的不同
- Linux严格区分大小写
- Linux中所有内容以文件形式保存,包括硬件
- Linux不靠扩展名区分文件类型,而是依靠权限来区分文件类型,一些约定俗成的扩展名如下:
- 压缩包:
*.gz
、*.bz2
、*.tar.bz2
、*.tgz
等 - 二进制软件包:
.rpm
- 网页文件:
*.html
、*.php
- 脚本文件:
*.sh
- 配置文件:
*.conf
- 压缩包:
- Windows下的程序不能直接在Linux中安装和运行
shell基础
概述
shell是一个命令行解释器
,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序。
shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。shell是解释执行的脚本语言,在shell中可以直接调用Linux系统命令。
shell的分类:
Bourne shelll
,主文件名为shC shell
,主要在BSD版的Unix系统中使用
shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、bash
、psh、zsh,C家族主要包括:csh、tcsh。bash
与sh兼容,现在使用的Linux使用bash作为用户基本的shell,查看使用的shell类型:
[songyu@localhost ~]$ echo $SHELL
/bin/bash
脚本执行方式
第一个脚本
[songyu@localhost worktest]$ vi hello.sh
#!/bin/bash
# explain
#The first program.
echo "hello world"
脚本执行:
- 赋予执行权限,直接运行:输入
chmod 755 文件名
赋予执行权限 -> 输入文件名
运行 - 通过bash调用执行脚本:
bash 文件名
[songyu@localhost worktest]$ chmod 755 /home/songyu/worktest/hello.sh
[songyu@localhost worktest]$ /home/songyu/worktest/hello.sh
hello world
[songyu@localhost worktest]$ bash /home/songyu/worktest/hello.sh
hello world
bash的基本功能
命令别名与快捷键
命令别名
- 查看系统中所有的命令别名,
alias
[songyu@localhost ~]$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
快捷键
- 字符界面和桌面切换
- VMware中的CentOS由桌面切换至字符界面:
Ctrl + Alt + 空格键
->释放空格键并且不要释放Ctrl + Alt,然后按F2键
- VMware中的CentOS由字符界面切换至桌面:
Ctrl + Alt + 空格键
->释放空格键并且不要释放Ctrl + Alt,然后按F1键
- 调整VMware中的热键:
编辑
->首选项
->热键
- VMware中的CentOS由桌面切换至字符界面:
- 清屏:
Ctrl
+l
- 强制终止当前命令:
Ctrl
+c
- 光标移动到命令行首:
Ctrl
+a
- 光标移动到命令行尾:
Ctrl
+e
- 从光标所在位置删除到行首:
Ctrl
+u
- 把命令放入后台:
Ctrl
+z
- 在历史命令中搜索:
Ctrl
+r
历史命令
history [选项] [历史命令保存文件]
,选项
-c
,清空历史命令-w
,把缓存中的历史命令写入历史命令保存文件/root/.bash_history
[songyu@localhost ~]$ history
1 s
2 su root
3 exit
4 su
5 su
6 setup
7 ipconfig
8 ifconfig
9 exit
10 su
11 pwd
12 cd /root
13 pwd
历史命令的调用:
- 使用上、下箭头调用以前的历史命令
- 使用
!n
重复执行第 n 条历史命令 - 使用
!!
重复执行上一条历史命令 - 使用
!字串
重复执行最后一条以该字串开头的命令
[songyu@localhost ~]$ history
1 s
2 su root
3 exit
4 su
...
366 clear
367 ls
368 history
369 ls /root/
370 ls -a /root/
371 history
[songyu@localhost ~]$ !367
ls
core.3528 worktest 公共 模板 视频 图片 文档 下载 音乐 桌面
在bash中,命令与文件补全是非常方便与常用的功能,只要在输入命令或文件时,按Tab
键就会自动进行补全。
输出重定向
输出重定向
把本该显示在屏幕上的内容保存在文件中,标准输出重定向:
命令 > 文件
,以覆盖的方式,把命令的正确输出输出到指定的文件或设备中命令 >> 文件
,以追加的方式,把命令的正确输出输出到指定的文件或设备中
标准错误输出重定向:
错误命令 2> 文件
,以覆盖的方式,把命令的错误输出输出到指定的文件或设备中错误命令 2>> 文件
,以追加的方式,把命令的错误输出输出到指定的文件或设备中
正确输出和错误输出同时保存:
命令 &> 文件
,以覆盖的方式,把正确输出和错误输出都保存到同一个文件中命令 &>> 文件
,以追加的方式,把正确输出和错误输出都保存到同一个文件中
[songyu@localhost worktest]$ ifconfig > test.log
[songyu@localhost worktest]$ cat test.log
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.80.128 netmask 255.255.255.0 broadcast 192.168.80.255
inet6 fe80::20c:29ff:fe09:2fe1 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:09:2f:e1 txqueuelen 1000 (Ethernet)
RX packets 363 bytes 40324 (39.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 221 bytes 23033 (22.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
...
输入重定向
wc [选项] [文件名]
-> 按Ctrl + d
,选项:
-c
,统计字节数-w
,统计单词数-l
,统计行数
管道符
命令1的正确输出作为命令2的操作对象,命令1 | 命令2
[songyu@localhost worktest]$ netstat -an | grep ESTABLISHED
udp 0 0 192.168.80.128:33891 203.135.184.123:123 ESTABLISHED
udp 0 0 192.168.80.128:47381 61.216.153.106:123 ESTABLISHED
udp 0 0 192.168.80.128:37356 51.15.41.135:123 ESTABLISHED
udp 0 0 192.168.80.128:42518 173.255.246.13:123 ESTABLISHED
常用命令
命令基本格式
- 命令提示符
[songyu@localhost ~]$
、[root@localhost songyu]#
的含义:- songyu,当前登录用户
- localhost,主机名
- ~,当前所在目录(家目录,初始登录位置)
- #,超级用户的提示符
- $,普通用户的提示符
- 命令格式:
命令 [选项 可选] [参数 可选]
。注意:个别命令使用不遵循此格式;当有多个选项时,可以写在一起;选项有简化选项和完整选项,例如-a等于-all
目录处理命令
- 常见目录的作用
/
,根目录/bin
,命令保存目录(普通用户就可以读取的命令)/boot
,启动目录,启动相关文件/dev
,设备文件保存目录/etc
,配置文件保存目录/home
,普通用户的家目录/lib
,系统库保存目录/mnt
,系统挂载目录/media
,挂载目录
- 查看当前所在目录,
pwd
[songyu@localhost ~]$ pwd
/home/songyu
- 切换目录,
cd [目录]
cd
,进入当前用户的家目录cd -
,进入上次目录cd ..
,进入上一级目录cd .
,进入当前目录
[songyu@localhost worktest]$ cd ..
[songyu@localhost ~]$ ls
core.3528 worktest 公共 模板 视频 图片 文档 下载 音乐 桌面
[songyu@localhost ~]$ cd -
/home/songyu/worktest
[songyu@localhost worktest]$ pwd
/home/songyu/worktest
[songyu@localhost worktest]$ cd .
[songyu@localhost worktest]$ pwd
/home/songyu/worktest
[songyu@localhost worktest]$ cd ~
[songyu@localhost ~]$ pwd
/home/songyu
[songyu@localhost ~]$ cd /etc/
[songyu@localhost etc]$ pwd
/etc
- 建立目录,
mkdir [-p 递归创建] [目录名]
[songyu@localhost ~]$ mkdir worktest
[songyu@localhost ~]$ ls -lh
总用量 5.1M
-rw-------. 1 songyu songyu 5.1M 6月 26 21:44 core.3528
drwxrwxr-x. 2 songyu songyu 6 6月 27 14:08 worktest
drwxr-xr-x. 2 songyu songyu 6 6月 20 12:12 公共
drwxr-xr-x. 2 songyu songyu 6 6月 20 12:12 模板
drwxr-xr-x. 2 songyu songyu 6 6月 20 12:12 视频
drwxr-xr-x. 2 songyu songyu 6 6月 20 12:12 图片
drwxr-xr-x. 2 songyu songyu 6 6月 20 12:12 文档
drwxr-xr-x. 2 songyu songyu 6 6月 20 12:12 下载
drwxr-xr-x. 2 songyu songyu 6 6月 20 12:12 音乐
drwxr-xr-x. 2 songyu songyu 6 6月 20 12:12 桌面
[songyu@localhost ~]$ cd worktest/
[songyu@localhost worktest]$ ls
[songyu@localhost worktest]$ mkdir -p japan/cangls
[songyu@localhost worktest]$ ls
japan
- 复制命令,
cp [选项] [原文件或目录] [目标目录]
,选项:-r
,复制目录-p
,连带文件属性复制-d
,若源文件是链接文件,则复制链接属性-a
,相当于-pdr
[songyu@localhost worktest]$ cp core.3528 /home/songyu
[songyu@localhost worktest]$ rm -rf core.3528
- 剪切或改名命令,
mv [原文件或目录] [目标目录]
,若原文件和目标文件在同一目录,改名;若原文件和目标文件不在同一目录,剪切
[songyu@localhost worktest]$ mv core.3528 japan/
[songyu@localhost worktest]$ ls
japan
[songyu@localhost worktest]$ cd japan/
[songyu@localhost japan]$ ls
core.3528
[songyu@localhost japan]$ mv core.3528 core.35
[songyu@localhost japan]$ ls
core.35
- 删除空目录,
rmdir [目录名]
[songyu@localhost worktest]$ ls
bols japan
[songyu@localhost worktest]$ rmdir bols/
[songyu@localhost worktest]$ ls
japan
[songyu@localhost worktest]$ rmdir japan/
rmdir: 删除 "japan/" 失败: 目录非空
- 删除文件或目录,
rm [选项] [目录名]
,选项:-r
,删除目录-f
,强制
[songyu@localhost worktest]$ rm -rf japan/
[songyu@localhost worktest]$ ls
- 查看目录中内容:
ls [选项] [文件或目录]
,选项:- -a 显示所有文件,包括隐藏文件
- -l 显示详细信息
- -d 查看目录属性
- -h 人性化显示文件大小
- -i 显示inode
[songyu@localhost /]$ pwd
/
[songyu@localhost /]$ ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
[songyu@localhost /]$ ls -a
. bin dev home lib64 mnt proc run srv tmp var
.. boot etc lib media opt root sbin sys usr
[songyu@localhost /]$ ls -l
总用量 32
lrwxrwxrwx. 1 root root 7 6月 20 19:37 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 6月 26 20:17 boot
drwxr-xr-x. 20 root root 3360 6月 27 11:58 dev
drwxr-xr-x. 137 root root 8192 6月 27 11:56 etc
drwxr-xr-x. 3 root root 19 6月 20 19:59 home
lrwxrwxrwx. 1 root root 7 6月 20 19:37 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 6月 20 19:37 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 8月 12 2015 media
drwxr-xr-x. 2 root root 6 8月 12 2015 mnt
drwxr-xr-x. 3 root root 15 6月 20 19:54 opt
dr-xr-xr-x. 342 root root 0 6月 27 11:55 proc
drwxrwxrwx. 4 root root 4096 6月 27 12:58 root
drwxr-xr-x. 38 root root 1160 6月 27 11:58 run
lrwxrwxrwx. 1 root root 8 6月 20 19:37 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 8月 12 2015 srv
dr-xr-xr-x. 13 root root 0 6月 27 11:55 sys
drwxrwxrwt. 17 root root 4096 6月 27 13:06 tmp
drwxr-xr-x. 13 root root 4096 6月 20 19:37 usr
drwxr-xr-x. 21 root root 4096 6月 27 11:55 var
[songyu@localhost /]$ ls -d
.
[songyu@localhost /]$ ls -h
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
[songyu@localhost /]$ ls -i
8039 bin 128 home 141 mnt 8201 run 16777346 tmp
128 boot 138 lib 16777868 opt 8043 sbin 33595522 usr
1025 dev 140 lib64 1 proc 33596089 srv 128 var
50331777 etc 50332369 media 133 root 1 sys
读、写、执行权限
- 文件的读、写、执行权限,例如,
-rw-r--r--
的含义:- 第一位的
- 文件类型
,具体有- 文件
、d 目录
、l 软链接文件
三种 - 除了第一位的文件类型,后面还有九位,每三位为一组,
rw- u所有者
、r-- g所属组
、r-- o其他人
,其中,r代表读、w代表写、x代表执行
- 第一位的
[songyu@localhost etc]$ ls -l
总用量 1484
drwxr-xr-x. 3 root root 97 6月 20 19:42 abrt
-rw-r--r--. 1 root root 16 6月 20 19:59 adjtime
-rw-r--r--. 1 root root 1518 6月 7 2013 aliases
-rw-r--r--. 1 root root 12288 6月 20 12:09 aliases.db
drwxr-xr-x. 2 root root 49 6月 20 19:43 alsa
drwxr-xr-x. 2 root root 4096 6月 20 19:54 alternatives
-rw-------. 1 root root 541 7月 27 2015 anacrontab
-rw-r--r--. 1 root root 55 3月 6 2015 asound.conf
-rw-r--r--. 1 root root 1 11月 20 2015 at.deny
drwxr-xr-x. 2 root root 31 6月 20 19:47 at-spi2
drwxr-x---. 3 root root 41 6月 20 19:43 audisp
drwxr-x---. 3 root root 79 6月 20 20:01 audit
-rw-r--r--. 1 root root 12706 11月 20 2015 autofs.conf
-rw-------. 1 root root 232 11月 20 2015 autofs_ldap_auth.conf
-rw-r--r--. 1 root root 795 11月 20 2015 auto.master
drwxr-xr-x. 2 root root 6 11月 20 2015 auto.master.d
-rw-r--r--. 1 root root 524 11月 20 2015 auto.misc
-rwxr-xr-x. 1 root root 1260 11月 20 2015 auto.net
-rwxr-xr-x. 1 root root 687 11月 20 2015 auto.smb
drwxr-xr-x. 4 root root 94 6月 20 19:51 avahi
drwxr-xr-x. 2 root root 4096 6月 20 19:54 bash_completion.d
-rw-r--r--. 1 root root 2835 8月 12 2015 bashrc
drwxr-xr-x. 2 root root 6 11月 20 2015 binfmt.d
drwxr-xr-x. 2 root root 12288 6月 20 19:45 brltty
-rw-r--r--. 1 root root 21929 3月 6 2015 brltty.conf
-rw-r--r--. 1 root root 38 12月 9 2015 centos-release
-rw-r--r--. 1 root root 51 12月 9 2015 centos-release-upstream
drwxr-xr-x. 2 root root 28 6月 20 19:43 certmonger
-rw-r--r--. 1 root root 676 3月 6 2015 cgconfig.conf
drwxr-xr-x. 2 root root 6 3月 6 2015 cgconfig.d
-rw-r--r--. 1 root root 265 6月 20 19:51 cgrules.conf
-rw-r--r--. 1 root root 131 3月 6 2015 cgsnapshot_blacklist.conf
drwxr-xr-x. 2 root root 6 11月 20 2015 chkconfig.d
-rw-r--r--. 1 root root 1165 11月 24 2015 chrony.conf
-rw-r-----. 1 root chrony 62 6月 20 20:01 chrony.keys
drwxr-xr-x. 2 root root 25 6月 20 19:51 cifs-utils
drwxr-xr-x. 2 root root 51 6月 20 19:51 cron.d
drwxr-xr-x. 2 root root 76 6月 20 19:51 cron.daily
-rw-------. 1 root root 0 7月 27 2015 cron.deny
drwxr-xr-x. 2 root root 44 6月 20 19:42 cron.hourly
drwxr-xr-x. 2 root root 6 6月 10 2014 cron.monthly
-rw-r--r--. 1 root root 451 6月 10 2014 crontab
drwxr-xr-x. 2 root root 6 6月 10 2014 cron.weekly
-rw-------. 1 root root 0 6月 20 19:37 crypttab
-rw-r--r--. 1 root root 1602 6月 7 2013 csh.cshrc
-rw-r--r--. 1 root root 841 6月 7 2013 csh.login
drwxr-xr-x. 5 root lp 4096 6月 27 12:57 cups
drwxr-xr-x. 2 root root 33 6月 20 19:47 cupshelpers
drwxr-xr-x. 4 root root 74 6月 20 19:42 dbus-1
drwxr-xr-x. 4 root root 29 6月 20 19:42 dconf
drwxr-xr-x. 2 root root 41 6月 20 19:59 default
drwxr-xr-x. 2 root root 22 6月 20 19:42 depmod.d
drwxr-x---. 3 root root 23 6月 20 19:42 dhcp
-rw-r--r--. 1 root root 5090 9月 12 2015 DIR_COLORS
-rw-r--r--. 1 root root 5725 9月 12 2015 DIR_COLORS.256color
-rw-r--r--. 1 root root 4669 9月 12 2015 DIR_COLORS.lightbgcolor
-rw-r--r--. 1 root root 1131 11月 21 2015 dleyna-server-service.conf
-rw-r--r--. 1 root root 25213 8月 6 2015 dnsmasq.conf
drwxr-xr-x. 2 root root 6 8月 6 2015 dnsmasq.d
-rw-r--r--. 1 root root 1285 11月 20 2015 dracut.conf
drwxr-xr-x. 2 root root 6 11月 20 2015 dracut.conf.d
-rw-r--r--. 1 root root 4113 11月 21 2015 drirc
-rw-r--r--. 1 root root 112 3月 6 2015 e2fsck.conf
-rw-r--r--. 1 root root 4760 6月 10 2014 enscript.cfg
-rw-r--r--. 1 root root 0 8月 12 2015 environment
-rw-r--r--. 1 root root 1317 6月 10 2014 ethertypes
-rw-r--r--. 1 root root 0 6月 7 2013 exports
drwxr-xr-x. 2 root root 6 11月 20 2015 exports.d
lrwxrwxrwx. 1 root root 56 6月 20 19:39 favicon.png -> /usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png
drwxr-xr-x. 2 root root 21 6月 20 19:45 fcoe
drwxr-xr-x. 2 root root 44 6月 20 19:45 festival
-rw-r--r--. 1 root root 70 8月 12 2015 filesystems
drwxr-x---. 5 root root 4096 6月 20 19:42 firewalld
drwxr-xr-x. 3 root root 36 6月 20 19:39 fonts
-rw-r--r--. 1 root root 20 6月 24 2014 fprintd.conf
-rw-r--r--. 1 root root 617 6月 20 19:37 fstab
-rw-r--r--. 1 root root 38 7月 22 2014 fuse.conf
drwxr-xr-x. 7 root root 102 6月 20 19:42 gconf
drwxr-xr-x. 2 root root 6 5月 12 2015 gcrypt
-rw-r--r--. 1 root root 265 9月 11 2015 gdbinit
drwxr-xr-x. 2 root root 6 9月 11 2015 gdbinit.d
drwxr-xr-x. 6 root root 101 6月 20 19:48 gdm
drwxr-xr-x. 2 root root 25 6月 20 19:43 geoclue
drwxr-xr-x. 3 root root 17 6月 20 19:45 ghostscript
drwxr-xr-x. 2 root root 6 6月 10 2014 gnupg
-rw-r--r--. 1 root root 94 4月 29 2015 GREP_COLORS
drwxr-xr-x. 4 root root 38 6月 20 19:39 groff
-rw-r--r--. 1 root root 987 6月 20 19:59 group
-rw-r--r--. 1 root root 981 6月 20 19:59 group-
lrwxrwxrwx. 1 root root 22 6月 20 19:51 grub2.cfg -> ../boot/grub2/grub.cfg
drwx------. 2 root root 4096 6月 20 19:58 grub.d
----------. 1 root root 799 6月 20 19:59 gshadow
----------. 1 root root 793 6月 20 19:59 gshadow-
drwxr-xr-x. 3 root root 19 6月 20 19:39 gss
drwxr-xr-x. 2 root root 26 6月 20 19:43 gssproxy
-rw-r--r--. 1 root root 871 6月 20 19:43 hba.conf
按照顺序,代表的含义如下:
- 基本权限,前十位,例如-rw-r–r–
.
,ACL权限- 引用计数,代表这个文件被调用过几次,例如1
- 所有者,例如
root
- 所属组,例如
root
- 文件的大小(单位:字节),例如871
- 文件的最后一次修改时间,例如
6月 20 19:43
- 文件名
搜索命令
文件搜索命令
locate 文件名
,在后台数据库中仅按文件名进行搜索,搜索速度很快
[songyu@localhost ~]$ locate core.3528
/home/songyu/core.3528
locate命令所搜索的后台数据库:/var/lib/mlocate
,该数据库默认一天更新一次,强制更新数据库命令:
[root@localhost songyu]# updatedb
find [搜索范围] [搜索条件]
,搜索文件,当搜索范围比较大时,会占用较大系统资源
命令搜索命令
whereis [选项] 文件名
,搜索命令所在路径及帮助文档所在位置,选项:-b
,只查找可执行文件-m
,只查找帮助文件
[songyu@localhost ~]$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
which 文件名
,搜索命令行所在路径及别名
[songyu@localhost ~]$ which ls
alias ls='ls --color=auto'
/usr/bin/ls
字符串搜索命令
grep [选项] 字符串 文件名
,在文件当中匹配符合条件的字符串,选项:
-i
,忽略大小写-v
,排除指定字符串
帮助命令
man 命令
,获取指定命令的帮助
[songyu@localhost ~]$ man man
[songyu@localhost ~]$ man ls
[songyu@localhost ~]$ man cd
命令 --help
,获取命令选项的帮助
[songyu@localhost ~]$ ls --help
help shell内部命令
,获取shell内部命令的帮助。shell起Linux系统命令解释器的作用
[songyu@localhost ~]$ help help
help: help [-dms] [模式 ...]
显示内嵌命令的相关信息。
显示内嵌命令的简略信息。如果指定了 PATTERN 模式,
给出所有匹配 PATTERN 模式的命令的详细帮助,否则打
印一个帮助主题列表
选项:
-d 输出每个主题的简短描述
-m 以伪 man 手册的格式显示使用方法
-s 为每一个匹配 PATTERN 模式的主题仅显示一个用法
简介
参数:
PATTERN Pattern 模式指定一个帮助主题
退出状态:
返回成功,除非 PATTERN 模式没有找到或者使用了无效选项。
压缩与解压缩命令
常用压缩格式:.zip
、.gz
、.bz2
、.tar.gz
、.tar.bz2
。
.zip
.zip
格式压缩- 压缩文件,
zip 压缩文件名 源文件
- 压缩目录,
zip -r 压缩文件名 源目录
- 压缩文件,
[songyu@localhost japan]$ zip core.zip core.3528
adding: core.3528 (deflated 83%)
[songyu@localhost japan]$ mkdir china
[songyu@localhost japan]$ touch china/cangls
[songyu@localhost japan]$ touch china/bols
[songyu@localhost japan]$ zip -r china.zip china/
adding: china/ (stored 0%)
adding: china/cangls (stored 0%)
adding: china/bols (stored 0%)
.zip
格式解压缩,unzip 压缩文件
[songyu@localhost japan]$ unzip china.zip
Archive: china.zip
creating: china/
extracting: china/cangls
extracting: china/bols
.gz
.gz
格式压缩- 压缩为
.gz
格式,源文件消失,gzip 源文件
- 压缩为
.gz
格式,源文件保留,gzip -c 源文件 > 压缩文件
- 压缩目录下所有的子文件,但是不压缩目录,
gzip -r 目录
- 压缩为
.gz
格式解压缩- 解压缩文件,
gzip -d 压缩文件
- 解压缩文件,
gunzip 压缩文件
- 解压缩文件,
.bz2
.bz2
格式压缩,不能用于压缩目录- 压缩为
.bz2
格式,不保留源文件,bzip2 源文件
- 压缩为
.bz2
格式,源文件保留,bzip -k 源文件
- 压缩为
.bz2
格式解压缩- 解压缩为,
bzip2 -d 压缩文件
,-k
保留压缩文件 - 解压缩,
bunzip2 压缩文件
,-k
保留压缩文件
- 解压缩为,
.tar
.tar
格式打包,tar -cvf 打包文件名 源文件
,选项:-c
,打包-v
,显示过程-f
,指定打包后的文件名
[songyu@localhost japan]$ tar -cvf china.tar china/
china/
china/cangls
china/bols
.tar
格式解打包,tar -xvf 打包文件名
,选项:-x
解打包
[songyu@localhost japan]$ tar -xvf china.tar
china/
china/cangls
china/bols
.tar.gz
.tar.gz
格式压缩,tar -zcvf 压缩包名.tar.gz 源文件
,选项:-z
,压缩为.tar.gz格式
[songyu@localhost japan]$ tar -zcvf china.tar.gz china/
china/
china/cangls
china/bols
.tar.gz
格式解压缩,tar -zxvf 压缩包名.tar.gz
,选项:-x
,解压缩.tar.gz格式
[songyu@localhost japan]$ tar -zxvf china.tar.gz
china/
china/cangls
china/bols
.tar.bz2
.tar.bz2
格式压缩,tar -jcvf 压缩包名.tar.bz2 源文件
,选项:-z
,压缩为.tar.bz2格式
[songyu@localhost japan]$ tar -jcvf china.tar.bz2 china/
china/
china/cangls
china/bols
.tar.bz2
格式解压缩,tar -jxvf 压缩包名.tar.bz2
,选项:-x
,解压缩.tar.bz2格式
[songyu@localhost japan]$ tar -jxvf china.tar.bz2
china/
china/cangls
china/bols
关机和重启命令
shutdown [选项] 时间
,选项:-c
,取消前一个关机命令-h
,关机-r
,重启
[songyu@localhost ~]$ date
2017年 06月 28日 星期三 17:05:03 CST
[songyu@localhost ~]$ shutdown -r 05:00
Must be root.
[songyu@localhost ~]$ su
密码:
[root@localhost songyu]# shutdown -r 05:00
Shutdown scheduled for 四 2017-06-29 05:00:00 CST, use 'shutdown -c' to cancel.
[root@localhost songyu]# shutdown -c
Broadcast message from root@localhost.localdomain (Wed 2017-06-28 17:06:21 CST):
The system shutdown has been cancelled at Wed 2017-06-28 17:07:21 CST!
其它命令
切换至root用户
由普通用户切换至root用户:打开终端
,输入$ su
命令 -> 按回车键
-> 输入root密码
,即可切换至root用户,此时的提示符变为#
,如下所示:
[songyu@localhost ~]$ su
密码:
[root@localhost songyu]#
切换回普通用户:只需要输入# su 用户名
,此时的提示符变为$
,如下所示:
[root@localhost songyu]# su songyu
[songyu@localhost ~]$
chmod
Linux系统中的文件(目录)有读
、写
、执行
等操作权限,如下图所示:
操作文件(目录)的用户有三种类型:文件所有者
、群组用户
、其它用户
。例如,chmod 754 文件(目录)
中最高位7表示文件所有者的权限,中间位5表示群组用户的权限,最低位4表示其它用户的权限。
当用户查看root
挂载点的内容提示“您没有查看…的内容所需的权限”时,输入# chmod 777 /root
即可访问,示例如下:
[root@localhost songyu]# chmod 777 /root
挂载命令
- 查询系统中已经挂载的设备,
mount
[songyu@localhost ~]$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=922772k,nr_inodes=230693,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=28,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/mapper/centos-home on /home type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/mapper/centos-var on /var type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=187664k,mode=700,uid=1000,gid=1000)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sr0 on /run/media/songyu/CentOS 7 x86_64 type iso9660 (ro,nosuid,nodev,relatime,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500,uhelper=udisks2)
- 依据文件
/etc/fstab
的内容自动进行挂载,mount -a
,光盘和U盘不要做成开机自动挂载
[songyu@localhost Packages]$ cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Jun 20 19:37:25 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=c7645e45-3683-49e5-a1e1-df247312cfe1 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-var /var xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
- 挂载命令格式,
mount [-t 文件系统] [-o 特殊设备] 设备文件名 挂载点
,选项:-t 文件系统
,加入文件系统类型来指定挂载的类型,可以是ext3、ext4、iso9660等文件系统-o 特殊选项
,可以指定挂载的额外选项
- Linux中使用完光盘或U盘后必须卸载,
umount 设备文件名或挂载点
Linux中光盘的挂载和卸载过程,示例如下:
- 如果是真实机,需要把光盘放到光驱中,此处以虚拟机中挂载光盘为例,首先给光盘创建一个挂载点
[songyu@localhost /]$ mkdir /mnt/cdrom
- 光盘的设备文件名固定为
/dev/sr0
或者/dev/cdrom
,二者是软链接关系,即同一个文件,挂载光盘[root@localhost /]# mount /dev/sr0 /mnt/cdrom/ mount: /dev/sr0 写保护,将以只读方式挂载
- 查看光盘中的内容,验证是否挂载成功
[root@localhost /]# cd /mnt/cdrom/ [root@localhost cdrom]# ls CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7 EFI images Packages RPM-GPG-KEY-CentOS-Testing-7 EULA isolinux repodata TRANS.TBL
- 用完光盘后必须卸载
[root@localhost songyu]# umount /mnt/cdrom/
- 查看是否卸载成功
[root@localhost songyu]# cd /mnt/cdrom/ [root@localhost cdrom]# ls
用户登录查看命令
- 查看登录的用户信息,
w
,命令输出:- USER:登录的用户名
- TTY:登录终端
- FROM:从哪个IP登录
- LOGIN@:登录时间
- IDLE:用户闲置时间
- JCPU:和该终端连接的所有进程占用的时间
- PCPU:当前进程所占用的时间
- WHAT:当前正在运行的命令
[songyu@localhost ~]$ w
22:50:06 up 1:49, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
songyu :0 :0 21:01 ?xdm? 3:11 0.21s gdm-session-wor
songyu pts/0 :0 22:50 5.00s 0.08s 0.03s w
who
,命令输出:- 用户名
- 登录终端
- 登陆时间(登录IP)
[songyu@localhost ~]$ who
songyu :0 2017-06-28 21:01 (:0)
songyu pts/0 2017-06-28 22:50 (:0)
- 查看当前登录和过去登录的用户信息,
last
,该命令默认读取/var/log/wtmp
文件数据,命令输出:- 用户名
- 登录终端
- 登录IP
- 登录时间
- 退出时间(在线时间)
[songyu@localhost ~]$ last
songyu pts/0 :0 Wed Jun 28 22:50 still logged in
songyu pts/0 :0 Wed Jun 28 21:01 - 22:49 (01:47)
songyu :0 :0 Wed Jun 28 21:01 still logged in
(unknown :0 :0 Wed Jun 28 21:01 - 21:01 (00:00)
reboot system boot 3.10.0-327.el7.x Wed Jun 28 21:00 - 23:03 (02:03)
songyu pts/0 :0 Wed Jun 28 18:41 - 19:33 (00:51)
songyu pts/0 :0 Wed Jun 28 18:36 - 18:41 (00:05)
songyu pts/0 :0 Wed Jun 28 18:34 - 18:36 (00:01)
songyu pts/0 :0 Wed Jun 28 18:00 - 18:34 (00:34)
songyu pts/0 :0 Wed Jun 28 17:52 - 18:00 (00:08)
songyu pts/0 :0 Wed Jun 28 17:51 - 17:51 (00:00)
songyu pts/1 192.168.80.1 Wed Jun 28 17:47 - 17:47 (00:00)
songyu pts/0 :0 Wed Jun 28 17:04 - 17:48 (00:43)
songyu pts/0 :0 Wed Jun 28 17:04 - 17:04 (00:00)
songyu :0 :0 Wed Jun 28 17:01 - 19:33 (02:32)
(unknown :0 :0 Wed Jun 28 17:00 - 17:01 (00:00)
reboot system boot 3.10.0-327.el7.x Wed Jun 28 16:59 - 19:33 (02:34)
songyu pts/0 :0 Wed Jun 28 10:58 - 12:46 (01:48)
songyu pts/0 :0 Wed Jun 28 10:51 - 10:58 (00:06)
songyu pts/0 :0 Wed Jun 28 10:17 - 10:51 (00:33)
songyu :0 :0 Wed Jun 28 10:12 - 12:47 (02:34)
(unknown :0 :0 Wed Jun 28 10:11 - 10:12 (00:00)
reboot system boot 3.10.0-327.el7.x Wed Jun 28 10:10 - 19:33 (09:22)
songyu pts/1 :0 Tue Jun 27 17:39 - 18:53 (01:14)
songyu pts/1 :0 Tue Jun 27 12:58 - 17:36 (04:37)
songyu pts/1 :0 Tue Jun 27 12:35 - 12:58 (00:23)
songyu pts/2 192.168.80.1 Tue Jun 27 12:25 - 12:26 (00:01)
songyu pts/1 :0 Tue Jun 27 12:23 - 12:35 (00:11)
songyu pts/1 :0 Tue Jun 27 12:05 - 12:10 (00:05)
songyu pts/1 :0 Tue Jun 27 12:05 - 12:05 (00:00)
songyu pts/1 :0 Tue Jun 27 12:02 - 12:05 (00:02)
songyu pts/0 :0 Tue Jun 27 11:58 - 12:01 (00:03)
songyu :0 :0 Tue Jun 27 11:58 - 18:53 (06:55)
(unknown :0 :0 Tue Jun 27 11:56 - 11:58 (00:02)
reboot system boot 3.10.0-327.el7.x Tue Jun 27 11:55 - 18:53 (06:58)
songyu pts/1 :0 Tue Jun 27 11:40 - 11:53 (00:13)
(unknown :1 :1 Tue Jun 27 11:32 - 11:54 (00:22)
songyu pts/0 :0 Tue Jun 27 11:23 - 11:53 (00:30)
songyu pts/0 :0 Tue Jun 27 11:15 - 11:15 (00:00)
songyu :0 :0 Tue Jun 27 11:14 - 11:54 (00:39)
(unknown :0 :0 Tue Jun 27 11:13 - 11:14 (00:00)
reboot system boot 3.10.0-327.el7.x Tue Jun 27 11:13 - 11:54 (00:41)
songyu pts/0 :0 Tue Jun 27 11:12 - 11:12 (00:00)
songyu pts/0 :0 Tue Jun 27 11:05 - 11:11 (00:06)
songyu :0 :0 Tue Jun 27 10:59 - 11:12 (00:13)
(unknown :0 :0 Tue Jun 27 10:58 - 10:59 (00:00)
reboot system boot 3.10.0-327.el7.x Tue Jun 27 10:58 - 11:54 (00:55)
songyu :0 :0 Mon Jun 26 22:53 - 22:53 (00:00)
(unknown :0 :0 Mon Jun 26 22:52 - 22:53 (00:00)
reboot system boot 3.10.0-327.el7.x Mon Jun 26 22:51 - 22:54 (00:02)
songyu tty6 Mon Jun 26 21:44 - 22:37 (00:53)
songyu tty3 Mon Jun 26 21:44 - 22:37 (00:53)
songyu tty2 Mon Jun 26 21:43 - 22:37 (00:54)
songyu :0 :0 Mon Jun 26 21:41 - 22:37 (00:55)
(unknown :0 :0 Mon Jun 26 21:41 - 21:41 (00:00)
reboot system boot 3.10.0-327.el7.x Mon Jun 26 21:40 - 22:54 (01:13)
songyu :0 :0 Mon Jun 26 21:38 - 21:39 (00:01)
(unknown :0 :0 Mon Jun 26 21:38 - 21:38 (00:00)
reboot system boot 3.10.0-327.el7.x Mon Jun 26 21:37 - 21:39 (00:02)
songyu pts/0 :0 Mon Jun 26 21:32 - 21:37 (00:04)
songyu :0 :0 Mon Jun 26 20:17 - 21:37 (01:20)
(unknown :0 :0 Mon Jun 26 20:16 - 20:17 (00:00)
reboot system boot 3.10.0-327.el7.x Mon Jun 26 20:15 - 21:39 (01:23)
songyu :0 :0 Tue Jun 20 12:20 - 12:23 (00:02)
(unknown :0 :0 Tue Jun 20 12:20 - 12:20 (00:00)
reboot system boot 3.10.0-327.el7.x Tue Jun 20 20:12 - 12:23 (-7:-49)
songyu :0 :0 Tue Jun 20 12:12 - 12:18 (00:06)
(unknown :0 :0 Tue Jun 20 12:12 - 12:12 (00:00)
reboot system boot 3.10.0-327.el7.x Tue Jun 20 20:01 - 12:23 (-7:-38)
wtmp begins Tue Jun 20 20:01:34 2017
- 查看所有用户的最后一次登录时间,
lastlog
,该命令默认读取/var/log/lastlog
文件内容,命令输出:- 用户名
- 登录终端
- 登录IP
- 最后一次登录时间
[songyu@localhost ~]$ lastlog
用户名 端口 来自 最后登陆时间
root pts/0 三 6月 28 23:02:13 +0800 2017
bin **从未登录过**
daemon **从未登录过**
adm **从未登录过**
lp **从未登录过**
sync **从未登录过**
shutdown **从未登录过**
halt **从未登录过**
mail **从未登录过**
operator **从未登录过**
games **从未登录过**
ftp **从未登录过**
nobody **从未登录过**
avahi-autoipd **从未登录过**
systemd-bus-proxy **从未登录过**
systemd-network **从未登录过**
dbus **从未登录过**
polkitd **从未登录过**
abrt **从未登录过**
tss **从未登录过**
unbound **从未登录过**
usbmuxd **从未登录过**
colord **从未登录过**
saslauth **从未登录过**
libstoragemgmt **从未登录过**
geoclue **从未登录过**
rpc **从未登录过**
setroubleshoot **从未登录过**
rtkit **从未登录过**
ntp **从未登录过**
qemu **从未登录过**
rpcuser **从未登录过**
nfsnobody **从未登录过**
radvd **从未登录过**
chrony **从未登录过**
sssd **从未登录过**
pulse **从未登录过**
gdm :0 三 6月 28 21:01:07 +0800 2017
gnome-initial-setup **从未登录过**
avahi **从未登录过**
postfix **从未登录过**
sshd **从未登录过**
tcpdump **从未登录过**
songyu pts/0 三 6月 28 23:02:19 +0800 2017
环境变量
写入环境变量配置文件,vi ~/.bashrc
[songyu@localhost ~]$ vi /root/.bashrc
上述命令需要重新登录才能使写入生效,立即生效需执行source /root/.bashrc
命令
[songyu@localhost ~]$ source /root/.bashrc
PATH
PATH
环境变量定义的是系统搜索命令的路径
[songyu@localhost ~]$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/songyu/.local/bin:/home/songyu/bin
vim编辑器
vi编辑器是Unix
系统最初的编辑器,它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行,在文件中移动、插入、编辑和替换文本。在GNU
项目将vi编辑器移植到开源世界后对其进行了一些改进,将其重命名为vi improved
或vim。
vim编辑器有两种操作模式:
- 普通模式
- 插入模式
当刚打开要编辑的文档时,vim编辑器会进入普通模式,vim 文件名
,如下所示:
[songyu@localhost worktest]$ vim helloworld.sh
vim提供了一些能够提高移动速度的命令:
PageDown
或Ctrl + F
:下翻一屏PageUp
或Ctrl + B
:上翻一屏G
:移动到缓冲区的最后一行num + G
:移动到缓冲区的第num行gg
:移动到缓冲区的第一行
在普通模式中按i
键切换到插入模式,此时可以通过上下左右移动光标,或空格、退格及回车等键编辑内容。要退出插入模式回到普通模式,按下键盘上的Esc
键。
#!/bin/bash
echo "hello world!"
编辑结束后按Esc
键切换到普通模式,输入:
,有几个命令可以将缓冲区的数据保存到文件中并退出:
q
:如果未修改缓冲区数据,退出q!
:取消所有对缓冲区数据的修改并退出w filename
:将文件保存到另一个文件中wq
:将缓冲区数据保存到文件中并退出
[songyu@localhost worktest]$ vim helloworld.sh
[songyu@localhost worktest]$ ls -l
总用量 16
-rw-rw-r--. 1 songyu songyu 4 6月 28 18:10 cc.conf
-rw-rw-r--. 1 songyu songyu 0 6月 28 18:22 ee.conf
-rw-rw-r--. 1 songyu songyu 0 6月 28 18:28 gg.conf
-rw-rw-r--. 1 songyu songyu 33 6月 28 21:22 helloworld.sh
drwxrwxr-x. 3 songyu songyu 54 6月 28 12:20 japan
-rw-r--r--. 1 songyu songyu 970 6月 28 17:55 yum.conf
-rw-rw-r--. 1 songyu songyu 4 6月 28 18:08 yy.conf
[songyu@localhost worktest]$ chmod 755 helloworld.sh
[songyu@localhost worktest]$ ls -l
总用量 16
-rw-rw-r--. 1 songyu songyu 4 6月 28 18:10 cc.conf
-rw-rw-r--. 1 songyu songyu 0 6月 28 18:22 ee.conf
-rw-rw-r--. 1 songyu songyu 0 6月 28 18:28 gg.conf
-rwxr-xr-x. 1 songyu songyu 33 6月 28 21:22 helloworld.sh
drwxrwxr-x. 3 songyu songyu 54 6月 28 12:20 japan
-rw-r--r--. 1 songyu songyu 970 6月 28 17:55 yum.conf
-rw-rw-r--. 1 songyu songyu 4 6月 28 18:08 yy.conf
[songyu@localhost worktest]$ ./helloworld.sh
hello world!
上述命令中,./
代表当前目录下。
可以使用vim查找命令来查找缓冲区中的数据,按下/
键并输入要查找的文本,按下回车键:
- 如果要查找的文本出现在光标当前位置之后,则光标会跳到该文本出现的第一个位置
- 如果要查找的文本并未出现在光标当前位置之后出现,则光标会绕过文件末尾,出现在该文本所在的第一个位置
- 输出一条错误消息,说明在文件中没有找到要查找的文本
echo
echo输出命令,echo [选项] [输出内容]
,选项
-e
:支持反斜线控制的字符转换\a
,输出警告音\b
,退格键\n
,换行符\r
,回车键\t
,Tab键
[songyu@localhost ~]$ echo "jin tian tian qi bu cuo."
jin tian tian qi bu cuo.
[songyu@localhost ~]$ echo jin tian tian qi bu cuo.
jin tian tian qi bu cuo.
[songyu@localhost ~]$ echo -e "jin tian\n tian qi bu cuo."
jin tian
tian qi bu cuo.
cat
cat命令会显示文本文件中的所有数据,cat [选项] [命令]
:
- 查看文件内容,
cat 文件名
- 给所有行加行号,
cat -n 文件名
- 只给有文本的行加行号,
cat -b 文件名
[songyu@localhost etc]$ cat yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
# This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
# It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
- 创建一个文件,该文件已经存在时将清空原内容,
cat > 文件名
-> 回车键 -> 输入文件内容 ->Ctrl + D
退出
[songyu@localhost worktest]$ cat > yy.conf
a
b
[songyu@localhost worktest]$ cat yy.conf
a
b
- 合并文件,
cat 文件1 文件2 > 文件3
[songyu@localhost worktest]$ cat yy.conf
a
b
[songyu@localhost worktest]$ cat cc.conf
c
d
[songyu@localhost worktest]$ cat yy.conf cc.conf > ee.conf
[songyu@localhost worktest]$ cat ee.conf
a
b
c
d
touch
touch [选项] 文件名
[songyu@localhost worktest]$ touch gg.conf
[songyu@localhost worktest]$ ls
cc.conf ee.conf gg.conf japan yum.conf yy.conf
[songyu@localhost worktest]$ cat gg.conf
more
more命令类似cat命令,cat命令是将整个文件的内容从上到下显示在屏幕上,而more命令是逐页的显示,常用命令参数如下:
+n
:从第n行开始显示,例如more +5 catalina.out
-n
:一次展示的行数
常用操作命令:
回车键
:向下n行,需要定义,默认为一行Ctrl + F
或空格键
:向下滚动一屏Ctrl + B
:向上滚动一屏=
:输出当前行的行号:f
:输出文件名和当前行的行号q
:退出more命令
less
相比于more命令,less命令更有弹性,常用命令如下:
/关键字
:向下搜索关键字?关键字
:向上搜索关键字n
:重复前一个搜索,与/
或?
有关N
:反向重复前一个搜索,与/
或?
有关PageDown
或Ctrl + F
:下翻一屏PageUp
或Ctrl + B
:上翻一屏回车键
:向下滚动一行空格键
:向下滚动一页G
:移动到最后一行g
:移动到第一行q
:退出less命令
tail
tail命令会显示文件最后几行(默认最后10行)的内容,常用命令参数如下:
-n num
:显示的行数,例如tail -n 5 catalina.out
-f
:实时查看文件的内容
ifconfig
打开终端
-> 输入ifconfig
,可查看本机IP地址,区别于Windows系统中的ipconfig
命令,如下所示:
[songyu@localhost ~]$ ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.80.128 netmask 255.255.255.0 broadcast 192.168.80.255
inet6 fe80::20c:29ff:fe09:2fe1 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:09:2f:e1 txqueuelen 1000 (Ethernet)
RX packets 21 bytes 4972 (4.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 83 bytes 9160 (8.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 4 bytes 340 (340.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4 bytes 340 (340.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:34:1e:60 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
netstat
netstat [选项]
命令用于显示网络相关信息,如网络连接、路由表、接口状态等,输出结果分为两个部分:Active Internet connections (servers and established)
、Active UNIX domain sockets (servers and established)
,选项:
-a
,列出所有的网络连接-t
,列出TCP协议端口-u
,列出UDP协议端口-n
,显示IP地址和端口号,而不显示域名和服务名-l
,仅列出在监听状态的网络服务
[songyu@localhost ~]$ netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.122.1:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:ipp [::]:* LISTEN
tcp6 0 0 localhost:smtp [::]:* LISTEN
udp 0 0 192.168.80.128:44690 ntp3.itcompliance.d:ntp ESTABLISHED
udp 0 0 192.168.80.128:44907 biisoni.miuku.net:ntp ESTABLISHED
udp 0 0 0.0.0.0:53102 0.0.0.0:*
udp 0 0 192.168.122.1:domain 0.0.0.0:*
udp 0 0 0.0.0.0:bootps 0.0.0.0:*
udp 0 0 0.0.0.0:bootpc 0.0.0.0:*
udp 0 0 0.0.0.0:mdns 0.0.0.0:*
udp 0 0 localhost:323 0.0.0.0:*
udp 0 0 0.0.0.0:29154 0.0.0.0:*
udp 0 0 192.168.80.128:45600 leontp.ccgs.wa.edu.:ntp ESTABLISHED
udp 0 0 192.168.80.128:38492 61-216-153-107.HINE:ntp ESTABLISHED
udp6 0 0 [::]:16296 [::]:*
udp6 0 0 localhost:323 [::]:*
raw6 0 0 [::]:ipv6-icmp [::]:* 7
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 29895 @/tmp/.ICE-unix/3115
unix 2 [ ACC ] STREAM LISTENING 8450 /run/systemd/journal/stdout
unix 2 [ ACC ] STREAM LISTENING 18181 /var/run/NetworkManager/private
unix 5 [ ] DGRAM 8453 /run/systemd/journal/socket
...
[songyu@localhost ~]$ netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.122.1:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:ipp [::]:* LISTEN
tcp6 0 0 localhost:smtp [::]:* LISTEN
[root@localhost ~]# netstat -an | grep ESTABLISHED
udp 0 0 192.168.80.128:34932 94.237.64.20:123 ESTABLISHED
udp 0 0 192.168.80.128:55849 203.135.184.123:123 ESTABLISHED