linux命令整理

1,内核主要负责以下四种功能:
1,系统内存管理
2,软件程序管理
3,硬件设备管理
4,文件系统管理

2,Linux内核中有两种方法用于插入设备驱动代码:
1)编译进内核的设备驱动代码
2)可插入内核的设备驱动模块
以前,插入设备驱动代码的唯一途径是重新编译内核。每次给系统添加新设备,都要重新编译一遍内核代码。随着linux内核
支持的硬件设备越来越多,这个过程变得越来越低效。不过好在linux开发人员设计出一种更好的将驱动代码插入运行中内核的方法。
开发人员提出了内核模块的概念。它允许将驱动代码插入到运行中的内核而无需重新编译内核。同时,当设备不在使用时也可将
内核模块从内核中移走。这种方式极大地简化和扩展了硬件设备在linux上的使用。

3,挂载点:
Linux会在根驱动器(PC上安装的第一块硬盘)上创建一些特别的目录。我们称之为挂载点。挂载点是虚拟目录中用于分配额外外存
储设备的目录。虚拟目录会让文件和目录出现在这些挂载点目录中,然而实际上他们却存储在另外一个驱动器中。

4,常见Linux目录名称
/ 虚拟目录的根目录。通常不会再这里存储文件
/bin 二进制目录,存放许多用户级的GUN工具
/boot 启动目录,存放启动文件
/dev 设备目录,Linux在这里创建设备节点
/etc 系统配置文件目录
/home 主目录,Linux在这里创建用户目录
/lib 库目录,存放系统和应用程序的库文件
/media 媒体目录,可移动媒体设备的常用挂载点
/mnt 挂载目录,另一个可移动媒体设备的常用挂载点
/opt 可选目录,常用于存放第三方软件包和数据文件
/proc 进程目录,存放现有硬件及当前进程的相关信息
/root root用户的主目录
/sbin 系统二进制目录,存放许多GNU管理员级工具
/run 运行目录,存放系统运作时的运行时数据
/srv 服务目录,存放本地服务的相关文件
/sys 系统目录,存放系统硬件信息的相关文件
/usr 用户二进制目录,大量用户级的GNU工具和数据文件都存储在这里
/var 可变目录,用以存放经常变化的文件,比如日志文件

5,在Linux中有两种不同类型的文件链接:
1)符号链接
2)硬链接
符号链接就是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件。
这两个通过符号链接在一起的文件,彼此的内容并不相同。要为一个文件创建符号链接,原始文件必须事先存在。
然后可以使用ln命令以及-s选项来创建符号链接。
eg. $ ln -s data_file sl_data_file
$
$ ls -l *data_file
-rw-rw-r-- 1 christine christine 1092 May 21 17:27 data_file
lrwxrwxrwx 1 christine christine 9 May 21 17:29 sl_data_file -> data_file
硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但是它们从根本上而言是同一个文件。
引用硬链接文件等同于引用了源文件。要创建硬链接,原始文件也必须事先存在,只不过这次使用ln命令时不再需要加入额外的参数了。
eg. $ ls -l code_file
-rw-rw-r-- 1 christine christine 189 May 21 17:56 code_file
$
$ ln code_file hl_code_file
$
$ ls -li *code_file
296892 -rw-rw-r-- 2 christine christine 189 May 21 17:56
code_file
296892 -rw-rw-r-- 2 christine christine 189 May 21 17:56
hl_code_file
$

6,要想同时创建多个目录和子目录,需要加入-p参数:
eg. $ mkdir -p New_Dir/Sub_Dir/Under_Dir

7,查看文件类型命令file
eg. $ file my_file
my_file: ASCII text
$

8,cat命令是显示文本文件中所有数据的得力工具。
-n参数会给所有的行加上行号。
eg. $ cat -n test1
1 hello
2
3 This is a test file.
4
5
6 That we'll use to test the cat command.
如果只想给有文本的行加上行号,可以用-b参数
eg. $ cat -b test1
1 hello
2 This is a test file.
3 That we'll use to test the cat command.

9,sudo问题
当我们使用sudo命令切换用户的时候可能会遇到提示以下错误:xxx is not in the sudoers file. This incident will be reported,
xxx是你当前的用户名,究其原因是用户没有加入到sudo的配置文件里。
解决方法:
切换到root用户,运行visudo命令
#visudo
在打开的配置文件中,找到root ALL=(ALL) ALL,在下面添加一行
xxx ALL=(ALL) ALL 其中xxx是你要加入的用户名称

10,tail命令
tail命令会显示文件最后几行的内容(文件的“尾部”)。默认情况下,它会显示文件的末尾10行。
可以向tail命令中加入-n参数来修改所显示的行数。在下面的例子中,通过加入-n 2使tail命令只显示文件的最后两行:
eg. $ tail -n 2 log_file
line19
Last line - line20
$
-f参数是tail命令的一个突出特性。它允许你在其他进程使用该文件时查看文件的内容。tail命令会保持活动状态,
并不断显示添加到文件中的内容。这是实时监测系统日志的绝妙方式。

11,head命令
head命令,顾名思义,会显示文件开头那些行的内容。默认情况下,它会显示文件前10行的文本

类似于tail命令,它也支持-n参数,这样就可以指定想要显示的内容了。这两个命令都允许你在破折号后面输入想要显示的行数:
eg. $ head -5 log_file #显示前五行
line1
line2
line3
line4
line5
$

12,在Linux上有两个命令可以向运行中的进程发出进程信号。
1. kill命令
kill命令可通过进程ID(PID)给进程发信号。默认情况下, kill命令会向命令行中列出的全部PID发送一个TERM信号。遗憾的是,
你只能用进程的PID而不能用命令名,所以kill命令有时并不好用。
要发送进程信号,你必须是进程的属主或登录为root用户。
eg. $ kill 3940
-bash: kill: (3940) - Operation not permitted
$
TERM信号告诉进程可能的话就停止运行。不过,如果有不服管教的进程,那它通常会忽略.这个请求。如果要强制终           止,-s参数支持指定其他信号(用信号名或信号值)
你能从下例中看出, kill命令不会有任何输出。
eg. # kill -s HUP 3940
#
要检查kill命令是否有效,可再运行ps或top命令,看看问题进程是否已停止。
2. killall命令
killall命令非常强大,它支持通过进程名而不是PID来结束进程。 killall命令也支持通配符,这在系统因负载过大而变得很慢时很有用。
eg. # killall http*
#
上例中的命令结束了所有以http开头的进程,比如Apache Web服务器的httpd服务。

13,mount命令
Linux上用来挂载媒体的命令叫作mount。默认情况下, mount命令会输出当前系统上挂载的设备列表。
eg. $ mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdb1 on /media/disk type vfat
(rw,nosuid,nodev,uhelper=hal,shortname=lower,uid=503)
$

14,umount命令
卸载设备的命令是umount(是的,你没看错,命令名中并没有字母n,这一点有时候很让人困惑)。
umount命令的格式非常简单:
umount [directory | device ]
umount命令支持通过设备文件或者是挂载点来指定要卸载的设备。如果有任何程序正在使用设备上的文件,
系统就不会允许你卸载它:
eg. [root@testbox mnt]# umount /home/rich/mnt
umount: /home/rich/mnt: device is busy
umount: /home/rich/mnt: device is busy
[root@testbox mnt]# cd /home/rich
[root@testbox rich]# umount /home/rich/mnt
[root@testbox rich]# ls -l mnt
total 0
[root@testbox rich]#

15,df命令
df命令会显示每个有数据的已挂载文件系统。如你在前例中看到的,有些已挂载设备仅限系统内部使用。命令输出如下:
设备的设备文件位置;
能容纳多少个1024字节大小的块;
已用了多少个1024字节大小的块;
还有多少个1024字节大小的块可用;
已用空间所占的比例;
设备挂载到了哪个挂载点上。
df命令有一些命令行参数可用,但基本上不会用到。一个常用的参数是-h。它会把输出中的磁盘空间按照用户易读的形式显示,
通常用M来替代兆字节,用G替代吉字节。
eg. $ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb2 18G 7.4G 9.2G 45% /
/dev/sda1 99M 19M 76M 20% /boot
tmpfs 117M 0 117M 0% /dev/shm
/dev/sdb1 125M 112M 14M 90% /media/disk
$

16,du命令
du命令可以显示某个特定目录(默认情况下是当前目录)的磁盘使用情况。这一方法可用来快速判断系统上某个目录下是
不是有超大文件。
默认情况下, du命令会显示当前目录下所有的文件、目录和子目录的磁盘使用情况,它会以磁盘块为单位来表明每个文件
或目录占用了多大存储空间。对标准大小的目录来说,这个输出会是一个比较长的列表。
下面是能让du命令用起来更方便的几个命令行参数。
-c:显示所有已列出文件总的大小。
-h:按用户易读的格式输出大小,即用K替代千字节,用M替代兆字节,用G替代吉字节。
-s:显示每个输出参数的总计。

17,ps -forest命令
展示了这些子shell间的嵌套结构。

18,子shell
在交互式的shell CLI中,还有很多更富有成效的子shell用法。进程列表、协程和管道都利用了子shell。它们都可以有效地
在交互式shell中使用。
sleep命令接受一个参数,该参数是你希望进程等待(睡眠)的秒数。这个命令在脚本中常用于引入一段时间的暂停。命令
sleep 10会将会话暂停10秒钟,然后返回shell CLI提示符。
eg. $ sleep 10
$
要想将命令置入后台模式,可以在命令末尾加上字符&。把sleep命令置入后台模式可以让我们利用ps命令来小窥一番。
eg. $ sleep 3000&
[1] 2396
$ ps -f
UID PID PPID C STIME TTY TIME CMD
christi+ 2338 2337 0 10:13 pts/9 00:00:00 -bash
christi+ 2396 2338 0 10:17 pts/9 00:00:00 sleep 3000
christi+ 2397 2338 0 10:17 pts/9 00:00:00 ps -f
$

19,history命令
一个有用的内建命令是history命令。 bash shell会跟踪你用过的命令。你可以唤回这些命令
并重新使用。
要查看最近用过的命令列表,可以输入不带选项的history命令。
eg. $ history
1 ps -f
2 pwd
3 ls
4 coproc ( sleep 10; sleep 2 )
5 jobs
6 ps --forest
7 ls
8 ps -f
9 pwd
10 ls -l /bin/ps
11 history
12 cd /etc
13 pwd
14 ls
15 cd
16 type pwd
17 which pwd
18 type echo
19 which echo
20 type -a pwd
21 type -a echo
22 pwd
23 history
在这个例子中,只显示了最近的23条命令。通常历史记录中会保存最近的1000条命令。这个数量可是不少的!
你可以唤回并重用历史列表中最近的命令。这样能够节省时间和击键量。输入!!,然后按回车键就能够唤出刚刚
用过的那条命令来使用。
eg. $ ps --forest
PID TTY TIME CMD
2089 pts/0 00:00:00 bash
2744 pts/0 00:00:00 \_ ps
$
$ !!
ps --forest
PID TTY TIME CMD
2089 pts/0 00:00:00 bash
2745 pts/0 00:00:00 \_ ps
$
命令历史记录被保存在隐藏文件.bash_history中,它位于用户的主目录中。这里要注意的是,bash命令的历史记录
是先存放在内存中,当shell退出时才被写入到历史文件中。
要实现强制写入,需要使用history命令的-a选项。

20,alias命令
alias命令是另一个shell的内建命令。命令别名允许你为常用的命令(及其参数)创建另一个名称,从而将输入量减少到最低。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值