【Linux】基础命令学习
|字数总计:2.9k|阅读时长:10分钟|阅读量:|

一些太基础的命令本文就不再叙述了,主要记录一些细节方面和我自身没使用过的命令
目录
目录 |
评论 |
/ |
根目录,万物起源。 |
/bin |
包含系统启动和运行所必须的二进制程序。 |
/boot |
包含 Linux 内核,最初的 RMA 磁盘映像(系统启动时,由驱动程序所需),和 启动加载程序。有趣的文件: /boot/grub/grub.conf or menu.lst, 被用来配置启动加载程序。 /boot/vmlinuz,Linux 内核。 |
/dev |
这是一个包含设备结点的特殊目录。“一切都是文件”,也使用于设备。 在这个目录里,内核维护着它支持的设备。 |
/etc |
这个目录包含所有系统层面的配置文件。它也包含一系列的 shell 脚本, 在系统启动时,这些脚本会运行每个系统服务。这个目录中的任何文件应该是可读的文本文件。有意思的文件:虽然/etc 目录中的任何文件都有趣,但这里只列出了一些我一直喜欢的文件: /etc/crontab, 定义自动运行的任务。 /etc/fstab,包含存储设备的列表,以及与他们相关的挂载点。/etc/passwd,包含用户帐号列表。 |
/home |
在通常的配置环境下,系统会在/home 下,给每个用户分配一个目录。普通只能 在他们自己的目录下创建文件。这个限制保护系统免受错误的用户活动破坏。 |
/lib |
包含核心系统程序所需的库文件。这些文件与 Windows 中的动态链接库相似。 |
/lost+found |
每个使用 Linux 文件系统的格式化分区或设备,例如 ext3文件系统, 都会有这个目录。当部分恢复一个损坏的文件系统时,会用到这个目录。除非文件系统 真正的损坏了,那么这个目录会是个空目录。 |
/media |
在现在的 Linux 系统中,/media 目录会包含可移除媒体设备的挂载点, 例如 USB 驱动器,CD-ROMs 等等。这些设备连接到计算机之后,会自动地挂载到这个目录结点下。 |
/mnt |
在早些的 Linux 系统中,/mnt 目录包含可移除设备的挂载点。 |
/opt |
这个/opt 目录被用来安装“可选的”软件。这个主要用来存储可能 安装在系统中的商业软件产品。 |
/proc |
这个/proc 目录很特殊。从存储在硬盘上的文件的意义上说,它不是真正的文件系统。 反而,它是一个由 Linux 内核维护的虚拟文件系统。它所包含的文件是内核的窥视孔。这些文件是可读的, 它们会告诉你内核是怎样监管计算机的。 |
/root |
root 帐户的家目录。 |
/sbin |
这个目录包含“系统”二进制文件。它们是完成重大系统任务的程序,通常为超级用户保留。 |
/tmp |
这个/tmp 目录,是用来存储由各种程序创建的临时文件的地方。一些配置,导致系统每次 重新启动时,都会清空这个目录。 |
/usr |
在 Linux 系统中,/usr 目录可能是最大的一个。它包含普通用户所需要的所有程序和文件。 |
/usr/bin |
/usr/bin 目录包含系统安装的可执行程序。通常,这个目录会包含许多程序。 |
/usr/lib |
包含由/usr/bin 目录中的程序所用的共享库。 |
/usr/local |
这个/usr/local 目录,是非系统发行版自带,却打算让系统使用的程序的安装目录。 通常,由源码编译的程序会安装在/usr/local/bin 目录下。新安装的 Linux 系统中,会存在这个目录, 但却是空目录,直到系统管理员放些东西到它里面。 |
/usr/sbin |
包含许多系统管理程序。 |
/usr/share |
/usr/share 目录包含许多由/usr/bin 目录中的程序使用的共享数据。 其中包括像默认的配置文件,图标,桌面背景,音频文件等等。 |
/usr/share/doc |
大多数安装在系统中的软件包会包含一些文档。在/usr/share/doc 目录下, 我们可以找到按照软件包分类的文档。 |
/var |
除了/tmp 和/home 目录之外,相对来说,目前我们看到的目录是静态的,这是说, 它们的内容不会改变。/var 目录是可能需要改动的文件存储的地方。各种数据库,假脱机文件, 用户邮件等等,都驻扎在这里。 |
/var/log |
这个/var/log 目录包含日志文件,各种系统活动的记录。这些文件非常重要,并且 应该时时监测它们。其中最重要的一个文件是/var/log/messages。注意,为了系统安全,在一些系统中, 你必须是超级用户才能查看这些日志文件。 |
Linux接口
历史命令 history
root用户通常在/root/.bash_history
下,普通用户在/home/用户名/.bash_history
下。默认存1000条(由环境变量HISTSIZE决定)。执行命令会写入内存缓冲区,等待bash退出后再写入 .bash_history
中。这个文件路径也可以更改(由环境变量HISTFILE决定)。
1 2 3 4
| root@n1:~ 1000 root@n1:~ /root/.bash_history
|
使用history
命令来显示和编辑历史记录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| history
history 10
history -a test.txt
history -w test.txt
history -c
history -r test.txt
ctrl + r
|
别名 alias
1 2 3 4 5
| alias showhome='ls -l /home'
unalias showhome
|
重定向 <<
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| ls -a > test.txt
ls -a >> test.txt
ls -a 2> error.txt ls -a 2>> error.txt
ls -a 2>error.txt >text.txt
ls -a &>result.txt
|
tee
1 2 3 4 5 6 7 8
| who | tee text.txt
who | tee -a text.txt
who | tee -i text.txt
|
快捷键
快捷键 |
说明 |
Ctrl + U |
剪切光标左侧所有字符 |
Ctrl + K |
剪切光标右侧所有字符 |
Ctrl + W |
剪切光标左侧的一个字段 |
Ctrl + Y |
粘贴由 Ctrl + U 、Ctrl + K 、Ctrl + W 剪切的部分 |
Ctrl + A |
光标移至开始 |
Ctrl + E |
光标移至结尾 |
Ctrl + R |
历史搜索 |
Alt + D |
删除光标右侧的一个字段 |
Alt + F |
光标移动至右侧一个词的开头 |
Alt + B |
光标移动至左侧一个词的开头 |
Alt + . |
插入上一个输入的参数 |
cd
1 2 3 4 5
| # 回退到上一个目录 cd -
# 回到家目录 cd
|
file
1 2 3
| # 确定文件类型 file picture.jpg picture.jpg: JPEG image data, JFIF standard 1.01
|
top
top 程序连续显示系统进程更新的信息(默认情况下,每三分钟更新一次),”top”这个名字 来源于这个事实,top 程序是用来查看系统中“顶端”进程的。top 显示结果由两部分组成: 最上面是系统概要,下面是进程列表,以 CPU 的使用率排序。
1 2 3 4 5 6 7 8 9
| top - 14:59:20 up 6:30, 2 users, load average: 0.07, 0.02, 0.00 Tasks: 109 total, 1 running, 106 sleeping, 0 stopped, 2 zombie Cpu(s): 0.7%us, 1.0%sy, 0.0%ni, 98.3%id, 0.0%wa, 0.0%hi, 0.0%si Mem: 319496k total, 314860k used, 4636k free, 19392k buff Swap: 875500k total, 149128k used, 726372k free, 114676k cach
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6244 me 39 19 31752 3124 2188 S 6.3 1.0 16:24.42 trackerd ....
|
其中系统概要包含许多有用信息。下表是对系统概要的说明:
行号 |
字段 |
意义 |
1 |
top |
程序名。 |
14:59:20 |
当前时间。 |
|
up 6:30 |
这是正常运行时间。它是计算机从上次启动到现在所运行的时间。 在这个例子里,系统已经运行了六个半小时。 |
|
2 users |
有两个用户登录系统。 |
|
load average: |
加载平均值是指,等待运行的进程数目,也就是说,处于运行状态的进程个数, 这些进程共享 CPU。展示了三个数值,每个数值对应不同的时间周期。第一个是最后60秒的平均值, 下一个是前5分钟的平均值,最后一个是前15分钟的平均值。若平均值低于1.0,则指示计算机 工作不忙碌。 |
|
2 |
Tasks: |
总结了进程数目和各种进程状态。 |
3 |
Cpu(s): |
这一行描述了 CPU 正在执行的进程的特性。 |
0.7%us |
0.7% of the CPU is being used for user processes. 这意味着进程在内核之外。 |
|
1.0%sy |
1.0%的 CPU 时间被用于系统(内核)进程。 |
|
0.0%ni |
0.0%的 CPU 时间被用于”nice”(低优先级)进程。 |
|
98.3%id |
98.3%的 CPU 时间是空闲的。 |
|
0.0%wa |
0.0%的 CPU 时间来等待 I/O。 |
|
4 |
Mem: |
展示物理内存的使用情况。 |
5 |
Swap: |
展示交换分区(虚拟内存)的使用情况。 |
printenv
打印环境变量
1 2
| root@n1:~# printenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
|
用户接口
useradd
useradd会自动把/etc/skel
目录复制到用户主目录下
passwd
放置密码的地方在/etc/passwd
,但由于怕加密的密码被破解,现在只存放了一个X
,真正的密码移到了/etc/shadow
,只有root用户才能查看
1 2 3 4 5
| root@n1:/etc/skel root:x:0:0:root:/root:/bin/bash
root@n1:/etc/skel root:$6$DkvDdn6O$S27IUBv1jns349hKIBhXjMWVbEDG.JZDDrzVasdIBV82342cYjnQIL6kLyRXYm7ESSD/gm68.:19048:0:99999:7:::
|
这里的x
如果换成*
,这样用户就无法登录,但用户的主目录、文件以及组信息仍保留
/var/run/utmp
保存当前登录人的用户信息。在Unix系统中,utmp(User Accounting)是一个记录当前登录用户的数据库。具体来说,/var/run/utmp
文件是一个二进制文件,通常由登录管理程序(如init
或getty
)更新和维护。当用户登录或注销时,相关的登录管理程序会更新此文件。其他系统工具和命令,如who
和w
,可以读取该文件以获取当前登录用户的信息并显示出来
/var/log/wtmp
保存登录过本系统的用户信息。在Unix系统中,wtmp(User Accounting)是一个记录系统登录和注销事件的数据库。具体来说,/var/log/wtmp
文件是一个二进制文件,由登录管理程序(如init
或getty
)以及其他系统工具(如login
和sshd
)更新和维护。每当用户登录或注销时,相关的登录管理程序会将相应的事件写入到该文件中。/var/log/wtmp
文件通常只能由特权用户(如root)或授权的用户读取。系统管理员可以使用工具如last
或wtmpdump
来读取和分析这个文件,以查看系统登录和注销的历史记录。