@Tmacy
2015-11-13T08:03:43.000000Z
字数 3269
阅读 1225
cat /proc/meminfo
ipcs -m
ps ax
第一列是进程ID(PID)
第二列是进程在哪个终端设备上运行,若与终端无关,则显示?。
tty1-tty6是本机上登入者程序,若为pts/0等,表示位网络连接主机程序
第三列是进程当前状态(s表示休眠,sw表示休眠并等待,R表示运行)
第四列是进程占用CPU时间
最后一列是进程名。方括号中的进程表示该进程不活动。因而已经从内存换出到磁盘交换空间中。
默认shell的设置在/etc/passwd中的最后一行
其他项目的含义:
* 用户名
* 用户密码(如果用户密码存在其他文件,则位占位符x)
* 用户的系统用户ID号
* 用户系统组ID号
* 用户全名
* 用户默认主目录
* 用户默认shell
* 当前目录
* 控制命令行提示符的环境变量有两个。
* PS1:控制默认命令提示符的格式
* PS2:控制第二层命令提示符的格式
可以使用echo $PS1
和echo $PS2
显示其内容。可以自定义显示方式。
符号 | 说明 |
---|---|
\a | 铃声 |
\d | 代表日期,格式为weekday month date,例如:"Mon Aug 1" |
\e | ASCII 转义字符 |
\H | 完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux |
\h | 仅取主机的第一个名字,如上例,则为fc4,.linux则被省略 |
\l | shell终端设备名的基本名称 |
\n | ASCII的换行字符 |
\r | ASCII的回车字符 |
\s | shell的名称 |
\t | 显示时间为24小时格式,如:HH:MM:SS |
\T | 显示时间为12小时格式 |
\@ | 格式为am/pm的12小时制的当前时间 |
\A | 显示时间为24小时格式:HH:MM |
\u | 当前用户的账号名称 |
\v | BASH的版本信息 |
\w | 完整的工作目录名称。家目录会以 ~代替 |
\W | 利用basename取得工作目录名称,所以只会列出最后一个目录 |
# | 下达的第几个命令 |
$ | 提示字符,如果是root时,提示符为:#,普通用户则为:$ |
\| 字符"\" | |
[ | 字符"[" |
] | 字符"]" |
! | 命令行动态统计历史命令次数 |
ls -R
递归显示目录中的文件ls -l
显示目录详细信息,具体列表含义如下:
- 文件类型(目录(d)、文件(-)、字符设备(c)、块设备(b)、符号链接(l)、套接字(s)、命名管道(p))
- 文件权限
- 指向该文件的硬链接数目
- 文件所有者用户名
- 文件所属组名称
- 文件字节大小
- 上次修改文件的时间
- 文件或者目录名称
ls -i
显示索引节点号ls -s
打印每个文件的块大小ls -S
按照文件大小排列输出ls -t
按照文件修改时间排列输出ls -u
显示文件上次访问时间ls -X
按照文件扩展名输出
可以为特定文件名称制定过滤器:
显示最后一组行
-c bytes 显示最后bytes个字节
- UID :负责启动进程的用户
- PID :进程的ID
- PPID:父进程的PID
- C:进程连续期的处理器利用率
- STIME:进程启动时的系统时间
- TTY:进程启动时的终端设备
- TIME:运行进程所需的累计CPU时间
- CMD :启动程序的名称
command | description |
---|---|
usermod | 编辑用户账户字段,以及指定主要和次要用户组成员 |
passwd | 修改已有用户的密码 |
chpasswd | 读取登录名和密码文件,并更新密码 |
chage | 修改密码的逾期时间 |
chfn | 修改用户账户的注释信息 |
chsh | 修改用户账户的默认shell |
*chown *
chown options owner[.group] file
exp : testing=date
shell运行反引号中的命令,把结果赋值给变量testing
wc用来对数据文本计数.
输出三个数字,代表的含义为
* 文本行数
* 文本单词数
* 文本的字节数
在Linux世界中,正则表达式的引擎是POSIX基本正则表达式(BRE)引擎
正则表达式关心大小写
正则表达式不限于单个单词,也不必局限于完整的单词
正则表达式可以匹配多个空格
正则表达式中的特殊字符:
.*[]^${}+?|()
这些都是有特定含义的字符,不要在文本模式中单独使用这些字符
如果要使用这些字符,可以使用转义符号(\)
如果想在文本中输入(\),请也对它进行转义:\\
1.从头开始: ^
输出以指定模式开头的文本.
使用这个字符,要把它放在正则表达式指定的模式之前:
echo "the book store" | sed -n '/^book/p'
// 无输出
echo "Book store" | sed -n '/^Book/p'
//打印Book store
只要该模式出现在新行的开始,^定位符就会捕获它
如果^出现在模式的其他位置,它就会充当普通字符。
2.查到结尾 :$
$符号定义了文本的结尾,表示输出以这个模式结尾的文本
echo "This is a good book" | sed -n '/book$/p'
//输出文本
echo "This is a good books" | sed -n '/book$/p'
//无输出
3.联合定位
两种情况可以使用同时开始和结尾定位符
echo "This is a test for using | sed -n '/^This is a test$/p
删除文本中的空行
$ cat data
This is one test line.
This is another test line.
$sed '/^$/d' data
This is one test line.
This is another test line.
$
可以定义一类字符来匹配文本模式中的某一个位置,如果该字符类中的字符之一在数据中,它就会模式匹配。
使用放括号[],将要包含在该类中的字符扩起来。
example :
$sed -n '/[ch]at/[' data
The cat is sleeping.
That is a very nice hat.
定义的字符类匹配两种字符,一个是cat,另一个是hat。
如果不能确定大小写,可以使用下面这个例子:
echo "Yes" | sed -n '/[Yy]es/p'
单个表达式中可以有多个字符类
echo "yes" | sed -n '/[Yy][Ee][Ss]/p'
字符类也可以包含数字:
sed -n '/[0123]/p' data
// 字符类会匹配包含数字0.1.2.3的所有行
sed -n '/[0-9]/p' data
// 字符类匹配数字从0~9的所有行
查找不再该字符类中的字符
只需要在开头加入^字符
sed -n '/[^ch]at/p'
在某个字符后加一个*表示该字符必须在匹配模式的文本中不出现或者出现多次
$echo "ik" | sed -n '/ie*k/p
表示在i和k之间的字母e,可以出现多次,也可以不出现。
一般常见与对语言拼音常见错误拼写或变化的单词。可能多余的一个字母后面加上一个
*号,可以允许接受拼错的单词。
再者,将点与星操作符相结合,可以提供匹配许多任意字符的模式。常用于数据流中两个
可能彼此相邻出现也可能彼此不相邻出现的文本字符串之间。
echo "This is a regular pattern expression" | sed -n '/regular.*expression'
使用这个模式,可以很方便的搜索出现在数据中一行文本上任意位置的多个单词。
还可以用星号用于字符类,允许指定在文本中多次出现的一组或某一范围的字符:
$ echo "bt" | sed -n '/b[ae]*t/p'