1、上过一次我们学习了单用户和救援模式及服务器秘钥登录等操作,而我们最终的目的还是要操作和使用linux系统,所以我们今天先初步学习linux的基本命令如下:
一·目录介绍 ls命令介绍 文件类型 alias命令介绍
1、首先我们先学习下linux的目录:登录linux服务器,使用命令"ls /"查看根目录文件:
[root@localhost ~]# ls /
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
在学习之前我们先查看下当前用户所在的目录,使用pwd命令查看:
[root@localhost ~]# pwd
/root
图中我们看到当前在的目录是root,也就是我们是root的目录下来操作的:
此时我们思考下:那如果是当前登录的普通用户,是否也是在家目录下呢:如下操作:
首先我们创建一个普通用户yuanhh,并切换到普通用户,并查看家目录:
[root@localhost ~]# useradd yuanhh
[root@localhost ~]# su - yuanhh
[yuanhh@localhost ~]$ pwd
/home/yuanhh
[root@localhost ~]# useradd yuanhh
[root@localhost ~]# su - yuanhh
[yuanhh@localhost ~]$ pwd
/home/yuanhh
此时我们得知,普通用户的家目录是home目录下,也就是说明所创建的所有普通用户的家目录都在home目录下:
2、此时我们还返回上面,继续查看根目录下文件:
使用tree是以树形的目录来显示: tree -L 2 / (-L 只显示2层)
如果显示未找到此命令,则需要用yum手动安装一下则可:
[root@localhost ~]# tree -L 2 /
-bash: tree: 未找到命令
[root@localhost ~]# yum install -y tree
bin:/usr/bin: 用来存放系统的所有用户常用命令,这两个文件做了软连接,是同一个文件,存放可执行的二进制文件,如:ls mv cp mkdir .
[root@localhost ~]# ls /bin/
alias msgmerge
apropos msgunfmt
ar msguniq
arch mv
boot目录:放置linux启动时核心文件,/boot/vmlinuz为linux的内核文件,以及/boot/gurb等文件:
[root@localhost ~]# ls /boot/
grub
initramfs-0-rescue-36dc953195bb4389870d2591ff6bfea5.img
vmlinuz-0-rescue-36dc953195bb4389870d2591ff6bfea5
vmlinuz-3.10.0-327.el7.x86_64
vmlinuz-3.10.0-514.26.2.el7.x86_64
dev目录:存放linux系统里的设备文件,如硬盘文件/dev/sda或tty等登录终端:
[root@localhost ~]# ls /dev/
autofs mqueue tty14 tty41 ttyS2
block net tty15 tty42 ttyS3
bsg network_latency tty16 tty43 uhid
btrfs-control network_throughput tty17 tty44 uinput
home:普通用户的家目录,如上所述:yuanhh的家目录就是/home/yuanhh.
[root@localhost ~]# ls /home/
yuanhh
etc/目录:系统配置主文件放置目录:重要文件不建议放在此目录下:如:网卡目录,配置文件等。
[root@localhost ~]# ls /etc/
adjtime hosts protocols
aliases hosts.allow python
aliases.db hosts.deny rc0.d
alternatives init.d rc1.d
anacrontab inittab rc2.d
配置文件如:/etc/inittab /etc/fstab. /etc/init.d/ /etc/sysconfig/等目录。
lib:动态链接库文件:lib:/lib64/相当于linux下的dll文件:用于程序执行时的调用,大多是以.so结尾。
[root@localhost ~]# ls /lib64/
Display all 519 possibilities? (y or n)
audit/ libmount.so.1.1.0
cracklib_dict.hwm libmozjs-17.0.so
cracklib_dict.pwd libm.so.6
cracklib_dict.pwi libmspack.so.0
dbus-1/ libmspack.so.0.1.0
使用ldd可以查看当前程序的需要哪些库文件:
[root@localhost ~]# ldd /lib64/libauparse.so.0
linux-vdso.so.1 => (0x00007ffe5ad74000)
libaudit.so.1 => /lib64/libaudit.so.1 (0x00007f6536dc7000)
libcap-ng.so.0 => /lib64/libcap-ng.so.0 (0x00007f6536bc1000)
libc.so.6 => /lib64/libc.so.6 (0x00007f65367fd000)
/lib64/ld-linux-x86-64.so.2 (0x000055fe42a57000)
media:/mnt:媒介目录,光盘默认的挂载点:目录为空。
opt:主机安装软件目录,一般用来存放oracle的安装程序:目录为空。
proc:用来存放pid进程号,此目录比较重要,存放系统核心,外部设备等等,由于数据存放在内存中,不占空间容量。
[root@localhost /]# ls -l proc/
总用量 0
dr-xr-xr-x 9 root root 0 5月 31 21:26 1
dr-xr-xr-x 9 root root 0 5月 31 21:26 10
dr-xr-xr-x 9 root root 0 5月 31 21:59 1151
dr-xr-xr-x 9 root root 0 5月 31 21:26 12
dr-xr-xr-x 9 root root 0 6月 1 14:14 1229
dr-xr-xr-x 9 root root 0 6月 1 14:14 1230
sbin:/usr/sbin:存放系统管理执行的重要命令,与bin目录不同的是,此目录只有root用户才可以使用。
[root@localhost /]# ls -l sbin/ |head
总用量 38180
-rwxr-xr-x. 1 root root 11720 6月 10 2014 accessdb
-rwxr-xr-x. 1 root root 3126 10月 4 2013 addgnupghome
-rwxr-xr-x. 1 root root 20112 8月 4 2017 addpart
lrwxrwxrwx. 1 root root 7 5月 31 22:05 adduser -> useradd
[root@localhost /]# ls -l usr/sbin/ |head
总用量 38180
-rwxr-xr-x. 1 root root 11720 6月 10 2014 accessdb
-rwxr-xr-x. 1 root root 3126 10月 4 2013 addgnupghome
-rwxr-xr-x. 1 root root 20112 8月 4 2017 addpart
lrwxrwxrwx. 1 root root 7 5月 31 22:05 adduser -> useradd
-rwxr-xr-x. 1 root root 36864 8月 4 2017 agetty
如:fdisk shutdown mount
/tmp:存放临时文件目录,一般存放用户正在使用的文件,重要的文件不可以放在这里,任何人都可以访问。
/usr/: 存放用户安装的应用 软件,如mysql , apache等,
[root@localhost /]# ls usr/
bin games lib libexec sbin src
etc include lib64 local share tmp
srv/: 服务启动之后需要访问的内容,如:www需要访问的数据存在在/srv/www目录下:默认为空:
sys/ 存放整个linux的内核及一些文件,linux系统一切皆文件:
[root@localhost /]# ls sys/
block class devices fs kernel power
bus dev firmware hypervisor module
[root@localhost /]# ls sys/kernel/
boot_params kexec_crash_loaded profiling uevent_seqnum
config kexec_crash_size rcu_expedited vmcoreinfo
debug kexec_loaded security
fscaps mm slab
iommu_groups notes uevent_helper
/var/:存放linux的启动日记和正在运行的程序:
[root@localhost /]# ls /var/
adm crash empty gopher lib lock mail opt run tmp
cache db games kerberos local log nis preserve spool yp
[root@localhost /]# ls /var/run/
auditd.pid dbus netreport sudo user
chrony faillock NetworkManager syslogd.pid utmp
chronyd.pid initramfs plymouth systemd vmware
console lock sepermit tmpfiles.d
crond.pid log setrans tuned
cron.reboot mount sshd.pid udev
/var/run:存放linux正在运行程序的PID号。
/var/log:存放linux系统的启动日记和程序日记:
[root@localhost /]# ls /var/log/
anaconda dmesg messages vmware-vgauthsvc.log.0
audit dmesg.old rhsm vmware-vmsvc.log
boot.log firewalld secure wtmp
btmp grubby_prune_debug spooler yum.log
chrony lastlog tallylog
cron maillog tuned
/var/log/message:所有的登录信息存放目录。
[root@localhost /]# cat /var/log/messages
May 31 22:15:56 localhost journal: Runtime journal is using 8.0M (max allowed 92.3M, trying to leave 138.4M free of 915.1M available → current limit 92.3M).
May 31 22:15:56 localhost kernel: Initializing cgroup subsys cpuset
May 31 22:15:56 localhost kernel: Initializing cgroup subsys cpu
May 31 22:15:56 localhost kernel: Initializing cgroup subsys cpuacct
May 31 22:15:56 localhost kernel: Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017
/var/spool/mail:邮件存放的目录。
该目录下会以用户名显示,每个用户都有自己的邮件目录,如下:
[root@localhost /]# ls /var/spool/mail/
yuanhh
二·ls命令介绍:常用命令如下:
ls -a ls -l -ls -h -ls -d ls -i ls -lt (-ls -la -ls -lh)
ls -a 查看隐藏文件:(以.开头的文件)
[root@localhost ~]# ls -a
. anaconda-ks.cfg .bash_logout .bashrc .ssh
.. .bash_history .bash_profile .cshrc .tcshrc
ls -l 查看文件的详细信息:
[root@localhost ~]# ls -l
总用量 4
-rw-------. 1 root root 1273 5月 31 22:13 anaconda-ks.cfg
分别是:文件类型:权限:inode(存放文件的属性信息):所属主:所属组:大小:创建日期(月 日 时间):文件名称
ls -lh:以更人性化的形式显示,以合适的单位,
[root@localhost /]# ls -lh
总用量 20K
lrwxrwxrwx. 1 root root 7 5月 31 22:04 bin -> usr/bin
dr-xr-xr-x. 5 root root 4.0K 5月 31 22:13 boot
drwxr-xr-x 19 root root 3.2K 5月 31 21:26 dev
drwxr-xr-x. 76 root root 8.0K 6月 1 14:25 etc
drwxr-xr-x. 3 root root 20 6月 1 14:22 home
ls -lt:以创建的时间顺序显示(从早大晚)。
[root@localhost /]# ls -lt |head -5
总用量 20
drwxr-xr-x 22 root root 580 6月 1 14:27 run
drwxrwxrwt. 10 root root 4096 6月 1 14:27 tmp
drwxr-xr-x. 76 root root 8192 6月 1 14:25 etc
drwxr-xr-x. 3 root root 20 6月 1 14:22 home
ls -ld:只列出当前目录,不加-d会列出目录下面的内容,不加-d只列出本身:
[root@localhost /]# ls -ld |head -5
dr-xr-xr-x. 17 root root 244 5月 31 16:57 .
一般ls常用的也就只有这些命令了。
ll和ls是一样的效果。
cd命令介绍: cd cd / cd /etc/ cd - cd . cd ..
三·文件类型介绍:
ls -la 查看结果如下:
[root@localhost /]# ls -la |head -7
总用量 20
dr-xr-xr-x. 17 root root 244 5月 31 16:57 .
dr-xr-xr-x. 17 root root 244 5月 31 16:57 ..
-rw-r--r-- 1 root root 0 5月 31 16:57 .autorelabel
lrwxrwxrwx. 1 root root 7 5月 31 22:04 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 5月 31 22:13 boot
drwxr-xr-x 19 root root 3220 5月 31 21:26 dev
其中文件类型主要查看第一位:
(1)-表示是文本文件,白色显示。分为两种:一种是普通的文件,可以用cat查看:
另一种是二进制文件,不能查看的文件:文件用绿色显示:
一般绿色则为二进制文件,则可执行文件,不支持查看:
(2)d表示目录,蓝色显示,可以用cd 命令进入此目录:
(3)c表示字符设备,黄色显示,如键盘、鼠标,tty等。
(4)b表示块设备,黄色显示,一般为硬盘设备。
[root@localhost .ssh]# ls -ld /dev/sr0
lrwxrwxrwx 1 root root 3 10月 19 19:12 cdrom -> sr0
(5)l表示软连接,粉色显示,后面会学习,相当于widows的快捷方式:
[root@localhost .ssh]# ls -ld /dev/cdrom
lrwxrwxrwx 1 root root 3 10月 19 19:12 /dev/cdrom -> sr0
(6)、s:socket 文件,粉色显示,用于用户进程间通信,两种方式:tcp/ip 或socket通信:
[root@localhost .ssh]# ls -l /dev/log
srw-rw-rw- 1 root root 0 10月 19 19:11 /dev/log
四·alias 别名介绍:alias用于添加别名,有时候当我们输入的字符串太长的时候,可以用alias来缩短命令,方便输入和记忆,看官们看完下面就明白啦。
如何查看别名:which 后面加命令 which ls
[root@localhost /]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
其实which也是查找的环境变量PATH,才会显示对应的路径,后面我们还会详细介绍这个命令,如下:
[root@localhost /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
格式:alias 别名 = ‘命令的本来路径’
如上图,命令的本来路径/usr/bin/ls,此时我们为它链接到别名ls.
图中的--color=auto 是添加颜色的,前面文件类型的颜色。
那如何查看系统中的所有别名呢,用alias:
[root@localhost /]# alias
alias cp='cp -i'
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 mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
那下面学习添加一个别名:
添加别名yuanhh到ls
[root@localhost .ssh]# alias
alias yuanhh='ls -la / --color=auto'
此时用yuanhh查看的时,则是已添加的别名了:
[root@localhost /]# alias yuanhh='ls -la / --color=auto'
[root@localhost /]# yuanhh |head -5
总用量 20
dr-xr-xr-x. 17 root root 244 5月 31 16:57 .
dr-xr-xr-x. 17 root root 244 5月 31 16:57 ..
-rw-r--r-- 1 root root 0 5月 31 16:57 .autorelabel
lrwxrwxrwx. 1 root root 7 5月 31 22:04 bin -> usr/bin
那么我们如何取消别名:unalias 别名
[root@localhost /]# unalias yuanhh
[root@localhost /]# yuanhh
-bash: yuanhh: 未找到命令
如上图,我们已经取消了别名,则再输入别名查看则无效。