刚开始学习Linux,因为从前没有接触过这方面的东西,所以做些记录为以后学习查找时方便一下。
1. 命令查看快捷键:j 键:向下滚动一行
k 键:向上滚动一行
空格键:向后翻一页
b 键: 向前翻一页
q键: 退出
2. man:用来看一个命令的帮助文档。
格式: man [options] command
如:查看命令ls的帮组文档,
[root@localhost ~]# man ls
则会显示结果如下:LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort.
Mandatory arguments to long options are mandatory for short options
too.
-a, --all
do not ignore entries starting with .
查看快捷键可参考1内容。
在查看man帮助文档时,在首行会出现类似"LS(1)"字样,LS表示命令,括号中的1表示章节数。
1. 用户可操作的命名
2. 系统调用
3. 库调用
4. 设备文件
5. 文件格式
6. 游戏
7. 杂项
8. 管理员命令
如在查看fdisk命令时,会发现它属于第8章节。[root@localhost ~]# man fdisk
FDISK(8) Linux Programmer's Manual FDISK(8)
NAME
fdisk - Partition table manipulator for Linux
3. su命令:switch user,切换用户命令。
第一次接触Linux时,这个命令让我小郁闷了一下,完全不懂。
3.1 管理员用户 到 普通用户
管理员切换到普通用户,有两种命令格式。
1. su - username,登录切换。
2. su username,非登录切换。
第一种,切换时会加载一些配置等信息,而第二种则不会。所以如果使用第二种格式切换用户,有些命令可能无法使用。所以推荐使用第一种命令格式,带符号“-”。[root@localhost ~]# su - mageedu1
[mageedu1@localhost ~]$
从root切换到普通用户是不需要用户密码。
3.2 普通用户 到 管理员
直接 su命令即可,然后输入root密码。[mageedu1@localhost ~]$ su
Password:
[root@localhost mageedu1]#
切换用户操作完毕后,使用exit命令登出当前用户,返回上一用户。
4. ls:查看文件与目录命令。
通过man命令,可以查看ls命令的所有可选参数。
可以看到有很多可选参数,但是我们常用的也就只有3个。
-a:查看全部文件连同隐藏文件( . 开头的文件)
-d:仅列出目录本身,而不是目录的文件数据。
-l: 列出长数据串,包含文件的属性、时间戳与权限等数据。[root@localhost ~]# ls
anaconda-ks.cfg install.log install.log.syslog sbin
[root@localhost ~]# ls -a
. .bash_logout .cshrc .viminfo install.log.syslog
.. .bash_profile .lesshst anaconda-ks.cfg sbin
.bash_history .bashrc .tcshrc install.log
[root@localhost ~]# ls -l
total 24
-rw-------. 1 root root 903 Jun 13 20:15 anaconda-ks.cfg
-rw-r--r--. 1 root root 9072 Jun 13 20:15 install.log
-rw-r--r--. 1 root root 3161 Jun 13 20:14 install.log.syslog
drwxr-xr-x. 2 root root 4096 Jun 19 11:50 sbin
[root@localhost ~]# ls -d /tmp
/tmp
[root@localhost ~]# ls -ald /tmp
drwxrwxrwt. 17 root root 4096 Jun 23 11:48 /tmp
5. tree:以树状图逐级列出目录的内容命令
直接执行tree命令时,可能会提示找不到该命令,在可以连往的情况下可以通过如下方式进行安装:[root@localhost ~]# yum -y install tree
无网络情况,暂时我也不会,以后再说吧。
通过man命令查看tree的帮助文档,可以看到所有可选参数,经常使用的并不多。
-a:显示所有文件和目录,默认tree不显示隐藏文件,该参数可修改此特性。
-d:只显示目录名称,而非内容
-f:以完整路径格式显示
如果通过命令查看时出现乱码的话,可以通过执行
export LANG=en
命令修正。[root@localhost ~]# tree /root
/root
|-- anaconda-ks.cfg
|-- install.log
|-- install.log.syslog
`-- sbin
1 directory, 3 files
[root@localhost ~]# tree -a /root
/root
|-- .bash_history
|-- .bash_logout
|-- .bash_profile
|-- .bashrc
|-- .cshrc
|-- .lesshst
|-- .tcshrc
|-- .viminfo
|-- anaconda-ks.cfg
|-- install.log
|-- install.log.syslog
`-- sbin
1 directory, 11 files
[root@localhost ~]# tree -d /root
/root
`-- sbin
1 directory
[root@localhost ~]# tree -f /root
/root
|-- /root/anaconda-ks.cfg
|-- /root/install.log
|-- /root/install.log.syslog
`-- /root/sbin
1 directory, 3 files
至于其他参数,如果有需要,可以man一下查看,相信这点英语水平难不倒你的。
6. pstree:查看进程信息命令
-a:显示所有进程的所有详细信息,相同进程名可以压缩显示。
-p:显示所有进程的进程ID。
其他参数,man pstree自行查看吧。[root@localhost ~]# pstree
init-+-auditd---{auditd}
|-crond
|-dhclient
|-master-+-pickup
| `-qmgr
|-6*[mingetty]
|-rsyslogd---3*[{rsyslogd}]
|-sshd-+-sshd---bash---pstree
| `-sshd---sshd---bash---su---bash
`-udevd---2*[udevd]
[root@localhost ~]# pstree -a
init
|-auditd
| `-{auditd}
|-crond
|-dhclient -1 -q -lf /var/lib/dhclient/dhclient-eth0.leases -pf/var/run/dhcl
|-master
| |-pickup -l -t fifo -u
| `-qmgr -l -t fifo -u
|-mingetty /dev/tty1
|-mingetty /dev/tty2
|-mingetty /dev/tty3
|-mingetty /dev/tty4
|-mingetty /dev/tty5
|-mingetty /dev/tty6
|-rsyslogd -i /var/run/syslogd.pid -c 5
| |-{rsyslogd}
| |-{rsyslogd}
| `-{rsyslogd}
|-sshd
| |-sshd
| | `-bash
| | `-pstree -a
| `-sshd
| `-sshd
| `-bash
| `-su
| `-bash
`-udevd -d
|-udevd -d
`-udevd -d
[root@localhost ~]# pstree -p
init(1)-+-auditd(966)---{auditd}(967)
|-crond(1102)
|-dhclient(917)
|-master(1092)-+-pickup(4723)
| `-qmgr(1101)
|-mingetty(1115)
|-mingetty(1117)
|-mingetty(1119)
|-mingetty(1121)
|-mingetty(1126)
|-mingetty(1128)
|-rsyslogd(982)-+-{rsyslogd}(983)
| |-{rsyslogd}(984)
| `-{rsyslogd}(985)
|-sshd(1016)-+-sshd(2283)---bash(2287)---pstree(5236)
| `-sshd(4846)---sshd(4850)---bash(4851)---su(4873)---bash(48+
`-udevd(384)-+-udevd(1123)
`-udevd(1124)
[root@localhost ~]#
7. file:查看文件类型命令
可以用它来查看某个文件的基本数据,如食肉ASCII或者data文件等。[root@localhost ~]# file .bashrc
.bashrc: ASCII text
表明.bashrc是ASCII的纯文本文件。[root@localhost ~]# file /usr/bin/passwd
/usr/bin/passwd: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
ELF:Linux可执行程序文件类型。
命令输出表明passwd输入x86-64硬件平台,使用GUN/Linux 2.6.18核心的动态链接库。
8. cat:连接文件并输出到显示器,不会更改文件内容
该命令后可跟多个文件,显示是一同显示到屏幕上去。
-n:显示时增加行号,不过文件本身并没有行号,是cat自行添加并显示出来
-A:显示所有内容,包括结束符,Linux中$符号表示换行符,与Window不同,所以Windows中文件 copy到Linux中可能会存在换行符的问题。[root@localhost ~]# cat -An /etc/passwd
1root:x:0:0:root:/root:/bin/bash$
2bin:x:1:1:bin:/bin:/sbin/nologin$
3daemon:x:2:2:daemon:/sbin:/sbin/nologin$
4adm:x:3:4:adm:/var/adm:/sbin/nologin$
5lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin$
6sync:x:5:0:sync:/sbin:/bin/sync$
7shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown$
8halt:x:7:0:halt:/sbin:/sbin/halt$
9mail:x:8:12:mail:/var/spool/mail:/sbin/nologin$
10uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin$
11operator:x:11:0:operator:/root:/sbin/nologin$
12games:x:12:100:games:/usr/games:/sbin/nologin$
13gopher:x:13:30:gopher:/var/gopher:/sbin/nologin$
14ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin$
15nobody:x:99:99:Nobody:/:/sbin/nologin$
16vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin$
17saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin$
18postfix:x:89:89::/var/spool/postfix:/sbin/nologin$
19sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin$
20gentoo:x:500:500::/home/gentoo:/bin/bash$
21mageedu1:x:501:501::/home/mageedu1:/bin/bash$
22mageedu1_sh:x:3001:3001::/home/mageedu1_sh:/bin/bash$
9. tac:与cat一样,不过是逆序显示
可选参数也与cat相同。
10. more:同样是查看文件内容,不过more可以一页一页的翻看,对于内容较多的一屏幕放不下的可以选择该命令。
对应的几个查看快捷键:
空格键:向下翻一页
Enter:向下滚动一行
q键:退出
11. less:与more一样,不过比more有更多功能,more中,我们只能向后翻看,less则也可以向前翻看。
对应快捷键:
空格键:向下翻一页
PageDone:向下翻一页
PageUp:向上翻一页
j键:向下滚动一行
k键:向上滚到一行
/字符串:向下查找“字符串”内容
?字符串:向上查找“字符串”内容
12. head:后跟文件名,默认查看前10行内容
-n:查看前n行内容
常用的也就这个可选参数。[root@localhost ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
[root@localhost ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
13. tail:后跟文件名,默认查看后10行内容
-n:查看后n行内容
-f:显示文件后不退出,监视文件变化情况,如果有新内容增加,则立刻显示出来,用它来监视log日志等常变化文件很有用,需熟记。
[root@localhost ~]# tail /tmp/passwd
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
gentoo:x:500:500::/home/gentoo:/bin/bash
mageedu1:x:501:501::/home/mageedu1:/bin/bash
mageedu1_sh:x:3001:3001::/home/mageedu1_sh:/bin/bash
[root@localhost ~]# tail -2 /tmp/passwd
mageedu1:x:501:501::/home/mageedu1:/bin/bash
mageedu1_sh:x:3001:3001::/home/mageedu1_sh:/bin/bash
现在我编辑/tmp/passwd文件,新添加一行内容“The new line test.“,则tail命令会把新增内容立刻显示出来。[root@localhost ~]# tail -2f /tmp/passwd
mageedu1:x:501:501::/home/mageedu1:/bin/bash
mageedu1_sh:x:3001:3001::/home/mageedu1_sh:/bin/bash
The new line test.
14. cp
命令格式:
cp [options] source destination
cp [options] source1 source2 source3 ... directory
说明:
1. 如果source有多个文件
如果目标存在,且是个文件,则复制无法进行。
如果目标存在,且是目录,复制各文件至目标目录中,并保持原名。
如果目标不存在,则无法复制。
2. 如果源是目录或包含目录
源是多个文件则与1相同。
源为1个且是目录
如果目标存在,且是目录,则复制失败。
如果目标不存在,则创建新目录,并且拷贝源文件内容到目标路径。
如果目标存在,且是个目录,则复制原目录至目标目录,且保持原名。
常用可选参数:
-r:递归复制,可用于目录的复制。
-i:若目标文件已经存在,在覆盖式会有提示操作。
-a:相当于-pdr的意思。
-p:连同文件的属性一同复制。
-d:若源文件为连接文件的属性,则复制连接文件属性而非文件本身。
15. touch:修改文件时间或创建空文件。
修改文件时间可选参数:
-a:仅修改访问时间。
-c:仅修改文件的时间,若文件不存在,不会创建新文件。
-d:后面可以跟欲修改的日期而不是当前日期,也可以使用 ---date="STRING",string格式可 通过man自行查看一下。
-m:仅修改mtime。mtime为文件内容修改时间。
-t:后面可跟自定义时间取代当前时间,时间格式为[[CC]YY]MMDDhhmm[.ss]。
如果touch命令后跟的文件不存在,则会创建一个空的文件。
16. mv:移动文件或目录,或者重命名文件。
命令格式与cp类似。
可选参数:
-f:force,强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
-i:若目标文件已经存在,会询问是否覆盖
-u:如果目标文件存在,则会比较两个文件的新旧,如果原文件比较新,才会覆盖。
另一个常用的功能是,使用mv来重命名文件。创建一个目录,将一个文件移动到新目录中
[root@localhost ~]# cd /tmp
[root@localhost tmp]# mkdir mvtest
[root@localhost tmp]# cd mvtest/
[root@localhost mvtest]# ll
total 0
[root@localhost tmp]# mv bashrc /tmp/mvtest/
[root@localhost tmp]# ll /tmp/mvtest/
total 4
-rw-r--r--. 1 root root 194 Jun 24 06:39 bashrc
将该文件重命名位newbashrc
[root@localhost tmp]# mv /tmp/mvtest/bashrc /tmp/mvtest/newbashrc
[root@localhost tmp]# ll /tmp/mvtest/
total 4
-rw-r--r--. 1 root root 194 Jun 24 06:39 newbashrc
17. rm:移除文件或目录
与rmdir不同,rmdir只能删除空目录,限制比较多,不喜欢用。
该命令要小心使用,不要万一执行了 rm -r /,就麻烦了。
可选参数:
-f:force,强制移除文件,且忽略不存在的文件,不会出现警告信息。
-i:在删除前会询问用户是否确定删除。
-r:递归删除,用于目录删除[root@localhost tmp]# rm /tmp/mvtest/
rm: cannot remove `/tmp/mvtest/': Is a directory
[root@localhost tmp]# rm -r /tmp/mvtest/
rm: remove directory `/tmp/mvtest'? yes
18. mkdir:创建目录命令
常用可选参数:
-p:创建连级目录,比如 mkdir /tmp/parentdir/mydir,如果/tmp/parentdir不存在的话,使用该参数会自动创建父目录,然后再创建目录mydir。
-v:显示创建信息[root@localhost tmp]# mkdir -p /tmp/parentdir/mydir
[root@localhost tmp]# tree /tmp
/tmp
|-- parentdir
| `-- mydir