Linux命令笔记

date命令,显示当前系统的时间和日期

date

cal命令,显示当月的日历
cal


df命令,查看磁盘驱动器当前的可用空间

df

free命令,显示可用内存

free

exit命令,关闭会话终端

exit

pwd命令,查看当前工作目录

pwd


cd命令,改变目录
cd dir		# 将工作目录改变成dir
cd			# 将工作目录改变成主目录
cd -		# 将工作目录改变成先前的工作目录
cd ~user	# 将工作目录改变为user的主目录

ls命令,列出目录内容
ls				# 列出当前工作目录的内容
ls dir			# 列出目录dir的内容
ls dir1 dir2	# 列出多个目录的内容
ls -a			# 列出当前工作目录的所有内容,包括隐藏目录
ls -l			# 长格式列出当前工作目录的内容
ls命令其他常用选项:
-d	# 列出目录本身
-h	# 长格式列出,以人们可读的方式而不是字节数显示文件大小
-r	# 以相反的顺序显示结果。通常,ls命令按照字母升序排列显示结果
-S	# 按文件大小对结果排序
-t	# 按修改时间排序
-i	# 列出目录内容及其索引编号

file命令,确定文件类型

file filename

less命令,查看文本文件内容

less filename

cp命令,复制文件和目录

cp item1 item2	# 将单个文件或目录item1复制到文件或目录item2中
cp item… dir	# 将多个项目(文件或目录)复制进一个目录中
cp命令常用选项:
-a	# 复制文件和目录及其属性,包括所有权和权限。
-i	# 在覆盖一个已存在的文件前,提示用户进行确认。默认cp会覆盖文件。
-r	# 递归地复制目录及其内容。
-v	# 复制文件时,线索信息行消息。


mv命令,移动或重命名文件和目录

mv item1 item2	# 将文件(或目录)item1移动到(或重命名为)item2
mv item… dir	# 将一个或多个条目移动到另一个目录下。
mv命令常用选项:
-i	# 在覆盖一个已存在的文件前,提示用户进行确认。默认mv会覆盖文件。
-v	# 移动文件时,线索信息行消息。

mkdir命令,创建目录

mkdir dir
mkdir dir1 dir2	# 创建多个目录

rm命令,移除文件和目录

rm item…
rm命令常用选项:

-i	# 删除一个已存在的文件前,提示用户确认。
-r	# 递归地删除目录。
-f	# 忽略不存在的文件并无需提示确认。该选项会覆盖i选项
-v	# 删除文件时显示信息性消息

ln命令,创建硬链接和符号链接
ln filename linkname		# 创建硬链接
ln -s filename linkname		# 创建符号链接

type命令,显示命令类型

type command
例:

type ls

which命令,显示可执行命令的位置
which program
例:

which cp

man命令,显示程序的手册页
man search_item_
man section search_item
例:
man cp
man 5 passwd

man命令显示的“手册文档”被分成多个部分(section),它不仅包括用户命令,也包括系统命令、程序接口、文件格式等。下表描述来手册文档的结构安排。

部分内容
1用户命令
2内核系统调用的程序接口
3C库函数程序接口
4特殊文件,如设备节点和驱动程序
5文件格式
6游戏和娱乐,例如屏幕保护程序
7其他杂项
8系统管理命令









apropos命令,显示一系列合适的命令

apropos命令与带k选项的man命令在功能上基本一致


info命令,显示命令的info条目

info command
例:
info ls

whatis命令,显示命令的简述

whatis command
例:
whatis ls

alias命令,使用别名创建自己的命令

alias name='string'
例:

alias foo='cd /usr; ls; cd -'
删除别名:
unalias foo

标准输出重定向
>	# 覆盖目标文件内容
>>	# 在目标文件尾部追加输出内容
例:
ls -l /usr/bin > ls-output.txt
> empty.txt
ls -l /usr/bin >> ls-output.txt

标准错误重定向
2>	# 覆盖目标文件内容
2>>	# 在目标文件尾部追加输出内容
例:
ls inexistent_dir 2> ls-error.txt
ls inexistent_dir 2>> ls-error.txt

将标准输出和标准错误重定向到同一个文件
&>	# 覆盖目标文件内容
&>>	# 在目标文件尾部追加输出内容
例:
ls inexistent_dir &> ls-output.txt
ls inexistent_dir &>> ls-output.txt

标准输入重定向
<
例:
cat < tmp.txt

cat命令,读取一个或多个文件,并将其复制到标注输出
cat [file…]
例:
cat f.txt
cat f1.txt f2.txt > tmpf.txt
cat > tmpf.txt					# 在文件名参数缺省的情况下,cat将把标准输入内容复制到标准输出中

管道
command1 | command2
例:
date | cat
ls | sort | less

sort命令,对文本行排序
sort file
sort命令常用选项:
-u			# 在输出行中去除重复行
-r			# 按降序的方式排序,默认算升序的放松
-o [file]	# 将排序结果输出到指定文件,可以是原文件    
-f			# 排序时将小写字母视为大写字母
-n			# 以数值的方式排序
-b			# 排序时忽略每行前面开始处的空格字符

uniq命令,报告或删除文件中重复的行

wc命令,打印文件中的换行符、单词和字节的个数
wc file…
wc命令常用选项:
-l	# 打印文件的换行符的个数
-w	# 打印文件的单词的个数
-c	# 打印文件的字节的数
-m	# 打印文件的字符的数

grep命令,打印匹配行
grep pattern [file…]
例:
grep zip f1.txt f2.txt
ls | grep zip

head命令,输出文件的第一部分内容
head file
head命令常用选项:
-n	调整输出的行数,默认是10行
例:
head tmp.txt
head -n 5 tmp.txt


tail命令,输出文件的最后一部分内容

tail file
tail命令常用选项:
-n	# 调整输出的行数,默认是10行
-f	# 持续监视文件,一旦添加新行,新行将会立即显示在屏幕上,按Ctrl-C后停止;这选项对观察日志文件很有用处。

tee命令,读取标准输入的数据,并将其内容输出到标准输出和文件中。
tee file…
例:
ls | tee f1.txt

clear命令,清屏
clear


history命令,显示历史命令列表的记录
history

id命令,显示用户身份标识
id			# 显示当前用户的身份标识
id ~user	# 显示用户user的身份标识

chmod命令,更改文件的模式
chmod mode file
例:
chmod 764 tmp.txt		# 将文件的模式设置为600,即rwxrw-r--
chmod ug+x tmp.py		# 为文件所有者添加可执行权限
chmod u-x tmp.py		# 删除文件所有者的可执行权限
chmod +x tmp.py			# 为文件所有者、所属群组和其他书友用户添加可执行权限,等价于a+x
chmod o-rw tmp.py		# 除了文件所有者和所属群组之外,删除其他所有用户的读写权限
chmod go=rw tmp.txt		# 如果文件所有者之外,设置所属群组和其他所有用户具有读写权限,并删除其可执行权限,如果有的话。
chmod u+x,go=rx tmp.py	# 为文件所有者添加可执行权限,同时设置所属群组和其他所有用户具有读权限和可执行权限。

umask命令,设置文件的默认权限

umask		# 获取当前掩码值
umask num	# 设置掩码值
例:
umask 0022 

su命令,以另一个用户的身份运行shell
su [-[l]] [user]
如果包含“-l”选项,那么得到的shell会话界面将是指定用户的登录shell界面。这就意味着,该指定用户的运行环境将被加载,而且工作目录也将改为指定用户的主目录。这也常常是我们想要得到的结果。如果没有指定用户,那么默认为超级用户。-l可以缩写为-,这一形式经常被使用。
在输入su命令后,系统会提示输入指定用户的密码,如果密码正确则进入指定用户的shell环境,就可以以指定用户的身份执行命令来了。使用结束时,输入exit,将返回到之前的shell环境。

例:

su -
su - huey

sudo命令,以另一个用户的身份来执行命令
sudo command
例:
sudo shutdown -h now	# 以超级用户的身份执行关机命令

chown命令,更改文件的所有者
chown [ower][:group] file…
chown命令参数实例:
参数结果
huey把文件所有者从当前所有者更改为用户huey
huey:users把文件所有者从但却所有者更改为用户huey,并把文件所属群组更改为users组
:admins把文件所属群组更改为admins组,文件所有者不变
huey:把文件所有者从但却所有者更改为用户huey,并把文件所属群组更改为用户huey登录系统时所属的组

passwd命令,更改用户密码
passwd				# 修改当前用户的密码
sudo passwd user	# 修改用户user的密码

ps命令,显示当前所有进程的运行情况
ps	# 显示当前终端控制的进程的信息
运行结果:
  PID TTY          TIME CMD
 5694 pts/1    00:00:00 bash
10821 pts/1    00:00:00 ps

ps x	# 显示所有的进程的信息而不关注是由哪个终端所控制的。
运行结果:
  PID TTY      STAT   TIME COMMAND
 1946 ?        Sl     0:00 /usr/bin/gnome-keyring-daemon --daemonize --login
 1957 ?        Ssl    0:00 gnome-session --session=ubuntu
 1988 ?        Z      0:00 [lightdm-session] <defunct>
 1996 ?        Ss     0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-s
 1999 ?        S      0:00 /usr/bin/dbus-launch --exit-with-session gnome-sessio
 2034 ?        S      0:19 syndaemon -i 2.0 -K -R -t
 2039 ?        S<l   16:23 /usr/bin/pulseaudio --start --log-target=syslog
 2058 ?        Sl     0:16 nm-applet
 2739 ?        Rl     0:25 gnome-terminal
 2746 ?        S      0:00 gnome-pty-helper
 5694 pts/1    Ss     0:00 bash
 5982 ?        Sl    37:16 /usr/lib/firefox/firefox
 6258 ?        Sl     0:00 /usr/lib/evince/evinced
 6622 ?        Rl   202:51 /usr/lib/firefox/plugin-container /usr/lib/flashplugi
10731 pts/0    Ss+    0:00 bash
10845 pts/1    R+     0:00 ps x
...

ps aux	# 显示属于每个用户的进程信息
运行结果:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   3660  2036 ?        Ss   08:01   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    08:01   0:00 [kthreadd]
root        12  0.0  0.0      0     0 ?        S<   08:01   0:00 [cpuset]
root        27  0.0  0.0      0     0 ?        SN   08:01   0:00 [ksmd]
root       561  0.0  0.0   3368  1308 ?        S    08:01   0:00 /sbin/udevd --d
root       562  0.0  0.0   3384  1236 ?        S    08:01   0:00 /sbin/udevd --d
syslog     784  0.0  0.0  31064  1468 ?        Sl   08:01   0:03 rsyslogd -c5
avahi      948  0.0  0.0   3456  1488 ?        S    08:01   0:00 avahi-daemon: r
avahi      949  0.0  0.0   3456   432 ?        S    08:01   0:00 avahi-daemon: c
root       957  0.0  0.0      0     0 ?        S<   08:01   0:00 [krfcommd]
root       986  0.0  0.0   4632   872 tty4     Ss+  08:01   0:00 /sbin/getty -8
root       990  0.0  0.0   4632   860 tty5     Ss+  08:01   0:00 /sbin/getty -8
daemon    1013  0.0  0.0   2472   348 ?        Ss   08:01   0:00 atd
root      1031  0.0  0.0  34040  3128 ?        Ssl  08:01   0:00 lightdm
whoopsie  1077  0.0  0.1  26016  4532 ?        Ssl  08:01   0:00 whoopsie
root      1078  3.5  9.6 297660 383584 tty7    Ss+  08:01  26:35 /usr/bin/X :0 -
mysql     1220  0.0  0.8 318728 33808 ?        Ssl  08:01   0:13 /usr/sbin/mysql
root      1250  0.0  0.0   6088  2196 ?        Ss   08:01   0:02 /sbin/wpa_suppl
nobody    1415  0.0  0.0   6832  1400 ?        S    08:01   0:00 /usr/sbin/dnsma
colord    1813  0.0  0.2  53588 10468 ?        Sl   08:01   0:00 /usr/lib/i386-l
root      1838  0.0  0.0  16460  3260 ?        Sl   08:01   0:00 lightdm --sessi
rtkit     1870  0.0  0.0  21336  1248 ?        SNl  08:01   0:00 /usr/lib/rtkit/
lp        3013  0.0  0.0   6228  1380 ?        S    08:13   0:00 /usr/lib/cups/n
huey      5694  0.0  0.1   9208  4148 pts/1    Ss   08:21   0:00 bash
huey      6622 34.2  2.2 429188 90920 ?        Sl   10:24 205:49 /usr/lib/firefo
root      6765  0.0  0.0   3316  1168 ?        Ss   10:59   0:00 /sbin/mount.ntf
huey     10731  0.0  0.0   9140  3924 pts/0    Ss+  20:09   0:00 bash
huey     10913  0.0  0.0   6368  1164 pts/1    R+   20:26   0:00 ps aux
...
列标题含义:
USER:用户ID,表示该进程的所有者
PID:表示进程ID
%CPU:CPU使用百分比
%MEM:内存使用百分比
VSZ:虚拟耗用内存大小
RSS:实际使用的内存大小。进程使用的物理内存(RAM)大小(以KB为单位)
TTY:代表来进程的控制终端,问号表示没有终端控制
STAT:表示进程的当前状态
START:进程开启的时间。如果超过24个小时,那么将使用日期来显示
TIME:表示进程消耗的CPU时间总和

进程状态含义:
R    运行状态。进程正在运行或准备运行
S    睡眠状态。进程不在运行,而是在等待某事件的发生,如键盘输入或者收到网络报文
D    不可中断的睡眠状态,进程在等待I/O操作,如硬盘驱动
T    暂停状态。进程被指示暂停(后续还可以继续运行)
Z    无效或者“僵尸”进程。子进程被终止,但是还没有被父进程彻底释放掉
<    高优先级进程。进程可以被赋予更多的重要性,分配更多的CPU时间。
N    低优先级进程。

top命令,实时显示当前所有认为的资源占有情况

top

运行结果:

top - 20:49:15 up 12:48,  3 users,  load average: 0.92, 0.84, 0.79
Tasks: 175 total,   2 running, 172 sleeping,   0 stopped,   1 zombie
Cpu(s): 26.7%us,  5.8%sy,  0.0%ni, 66.8%id,  0.7%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3988160k total,  2354796k used,  1633364k free,   191804k buffers
Swap:  2012156k total,        0k used,  2012156k free,   910072k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 6622 huey      20   0  419m  89m  28m R   34  2.3 213:59.78 plugin-containe    
 6251 huey      20   0  176m  73m  15m S   14  1.9   2:57.42 evince             
 1078 root      20   0  525m 370m 128m S    9  9.5  28:10.10 Xorg               
 2028 huey      20   0  282m 141m  40m S    6  3.6  10:00.86 compiz             
 2039 huey       9 -11  171m 5620 4028 S    2  0.1  17:01.82 pulseaudio         
 5982 huey      20   0  791m 291m  46m S    1  7.5  38:08.23 firefox            
 2034 huey      20   0  3712  800  664 S    0  0.0   0:20.58 syndaemon          
11054 huey      20   0  2852 1184  892 R    0  0.0   0:00.20 top                
    1 root      20   0  3660 2036 1288 S    0  0.1   0:00.66 init               
    2 root      20   0     0    0    0 S    0  0.0   0:00.01 kthreadd           
    3 root      20   0     0    0    0 S    0  0.0   0:02.55 ksoftirqd/0        
    6 root      RT   0     0    0    0 S    0  0.0   0:01.97 migration/0        
    7 root      RT   0     0    0    0 S    0  0.0   0:00.17 watchdog/0         
    8 root      RT   0     0    0    0 S    0  0.0   0:02.23 migration/1        
   10 root      20   0     0    0    0 S    0  0.0   0:02.10 ksoftirqd/1        
   11 root      RT   0     0    0    0 S    0  0.0   0:00.19 watchdog/1         
   12 root       0 -20     0    0    0 S    0  0.0   0:00.00 cpuset            
...


顶部信息的字段释义:
字段含义
1top程序名
 20:49:15一天中的当前时间
 up 12:48正常运行时间(uptime)。从机器最后一次启动开始计算的时间总数。
 3 users有3个用户已登录
 load average:负载均值(load average)指的是等待运行的进程数;即共享CPU资源的处于可运行状态的进程数。显示的三个值分别对应不同的时间段。第一个对应的是前60秒的均值,第二个对应的是前5分钟的均值,最后一个对应的前15分钟的均值。该均值小于1.0表算该机器并不忙
2Tasks:统计进程数及各个进程的状态信息
 26.7%us26.7%的CPU时间被用户进程占用,这里指的是处于内核外的进程
 5.8%sy5.8%的CPU时间被系统进程(内核进程)占用
 0.0%ni0.0%的CPU时间被友好进程(nice)(低优先级进程)占用
 66.8%id66.8%的CPU时间是空闲的
 0.7%wa0.7%的CPU时间用来等待I/O操作
3Mem:显示物理RAM(随机存取内存)的使用情况
4Swap:显示交换空间(虚拟内存)的使用情况





















job命令,列出所有活动作业的状态信息

jobs
启动一个简单的小程序xlogo作为实验对象:
xlogo
输入xlogo命令,启动xlogo程序,发现shell提示符没有返回,这是因为shell正在等待该xlogo程序结束,如果关闭xlogo窗口,那么提示符将返回。
在终端里按下Ctrl-C,将会中断一个程序,xlogo窗口将会关闭,shell提示符将返回。许多(但不是所有)命令行程序都可以使用这个方法来实现中断。
在后台运行程序:
xlogo &
命令执行后,将出现xlogo窗口,而且shell提示符也将返回,同时也会打印一些数字信息:
[1] 11203
这条信息是shell的一个称为作业控制(job control)的特性表现。表示已经启动的作业编号为1([1]),其对应的PID是11203。
执行ps命令,查看当前运行的进程:
huey@huey-K42JE:~$ ps
  PID TTY          TIME CMD
 5694 pts/1    00:00:00 bash
11203 pts/1    00:00:00 xlogo
11204 pts/1    00:00:00 ps
使用job命令查看作业控制特性:
huey@huey-K42JE:~$ jobs
[1]+  运行中               xlogo &
输出结果显示存在一个编号为1的作业在运行,而且对应的命令是xlogo &。
后台运行的进程不会受到任何键盘输入的影响,包括试图中断它的Ctrl-C键。想要使得进程返回到前台运行,可以使用fg命令。
huey@huey-K42JE:~/huey/linux/tmpdir$ fg %1
xlogo
在fg命令后面加上百分号和作业编号(称为jobspec选项),如果后台只有一个任务,那么可以不带jobspec选项。
如果只是想要暂停进程,而不是终止进程。按Ctrl-Z键。
huey@huey-K42JE:~$ xlogo
^Z
[1]+  已停止               xlogo
暂停xlogo后,可以使用fg命令让进程在前台恢复运行,也可以使用bg命令让进程移到后台运行。

kill命令,发送信号给某个进程
kill [-signal] PID…
例:
kill 11565			# 向PID为11565的进程发送TERM信息
kill -1 11565		# 向PID为11565的进程发送HUP信息
kill -INT 11565		# 向PID为11565的进程发送INT信息
常用信号:
信号编号信号名含义
1HUP挂起信号
2INT中断信号
3QUIT退出信号
9KILL杀死信号
11SEGV段错误信号
15TERM终止信号,kill命令默认发送的信号类型
18CONT继续运行信号,恢复之前接受了STOP信号的进程
19STOP暂停信号










注:

和文件一样,进程也有所有者,只有进程的所有者(或者超级用户)才能使用kill命令来给它放送信号。


killall命令,发送信号给多个进程

killall [- u user] [-signal] name…
例:
huey@huey-K42JE:~$ xlogo &
[1] 11565
huey@huey-K42JE:~$ xlogo &
[2] 11673
huey@huey-K42JE:~$ killall xlogo 
[1]-  已终止               xlogo
[2]+  已终止               xlogo


shutdown命令,关机或是重启系统
shutdown命令常用选项:
-c	# 取消前一个shutdown命令
-h	# 将系统关机
-r	# shutdown之后重新启动。
shutdown命令格式:
精确时间格式:hh:mm
时间段格式:+和分钟数
例:
# 指定现在立即关机
shutdown -h now
# 指定23:30时关机并马上重新启动系统
shutdown -r 23:30
# 指定10分钟后关机,并向所有所有登入用户传送信息
shutdown -h +10 'System wiil shutdwon after 10 minutes!'



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值