liunx常用命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
|
liunx常用命令 liunx常见的发行版本有Ubuntu,CentOS,Debian等 我们使用的比较多的是Ubuntu和CentOS Ubuntu和CentOS对一般使用者来说,最大的不同是 Ubuntu安装软件命令为apt-get install * CentOS安装软件命令为yum install * 查看liunx是Ubuntu还是CentOS lsb_release -a 安装lsb_release yum -y install redhat-lsb 如下这些命令与发行版本无关 liunx创建用户 useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd ] [-r] name -c:加上备注文字,备注文字保存在 passwd 的备注栏中 -d:指定用户登入时的主目录,替换系统默认值 /home/ <用户名> -D:变更预设值 -e:指定账号的失效日期,日期格式为MM /DD/YY ,例如06 /30/12 。缺省表示永久有效 -f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1 -g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即 users -G:指定用户所属的附加群组 -m:自动建立用户的登入目录 -M:不要自动建立用户的登入目录 -n:取消建立以用户名称为名的群组 -p:账户密码 -r:建立系统账 -s:指定用户登入后所使用的shell。默认值为 /bin/bash -u:指定用户ID号。该值在系统中必须是唯一的。0~499默认保留给系统用户账号使用,所以该值必须大于499 ps : useradd xxxx passwd xxxx liunx命令中一定要深刻记忆的一条命令 sudo rm -rf /* // 删除根目录下所有内容 查看liunx基本信息 cat /proc/version // 查看linux版本 uname -a // 查看内核版本 ulimit -n // 单个进程所能打开的最大文件描述符数 hostnamectl status // 查看主机名 hostnamectl status [--static|--transient|--pretty] // 只查看静态、瞬态或灵活主机名,分别使用“--static”,“--transient”或“--pretty”选项 sudo hostnamectl set - hostname <host-name> // 要同时修改所有三个主机名:静态、瞬态和灵活主机名 sudo hostnamectl [--static|--transient|--pretty] set - hostname <host-name> // 如果只想修改特定的主机名(静态,瞬态或灵活),你可以使用“--static”,“--transient”或“--pretty”选项 创建文件夹 mkdir dir // 创建目录 dir (文件夹) mkdir -p /../.. /dir // 创建目录树 dir (文件夹 dir 及所有的父文件) 创建文件 vi file // 创建文件 file (文件名包括扩展名),命令(esc+:+wq)退出 删除 rm -rf dir // 删除目录 dir 及其内容(文件夹 dir 及其内容) rm -f file // 删除文件 file ,-f可省略 重命名或移动 mv dir1 dir2 // 将文件(或目录)dir1移动并重命名为dir2 复制 cp -rf dir1 fir2 // 复制文件(或目录)dir1到dir2 统计文件行数、字节数、字数 wc -c 统计字节数 -l 统计行数 -w 统计字数 file 查看文件夹下文件的个数 ls -l | grep "^-" | wc -l 查看文件夹下文件的个数,包括子文件夹中的 ls -lR | grep "^-" | wc -l 查看文件夹下文件夹的个数,包括子文件夹中的 ls -lR | grep "^d" | wc -l 杀死指定命令进程 kill ` ps ax | grep "xxxxxxx" | grep - v grep | awk '{ print $1; }' ` 其他 cd dir // 进入目录 dir cd .. // 返回上级目录( cd ../.. 即为返回上两级目录) cd - // 返回上次所在的目录 cd -- // 返回 /root (同 cd ~) pwd // 显示当前路径 ls // 查看目录中的文件(不显示隐藏文件) ls -a // 显示包括隐藏文件在内的所有文件 ls -l // 显示目录中文件的详细信息 ls -t // 按照修改时间排列显示目录中的文件(建议配合l使用, ls -lt查看文件具体修改时间) cat file // 查看文件 file 内容 cat file | head // 查看文件 file 前10行内容(或 head 10 file ) cat file | tail -n 10 // 查看文件 file 最后10行内容(或 tail 10 file ) tac file // 反向查看文件内容(即从最后一行反向查看)(正好写法与表述都与 cat 相反) tail -f file // 实时查看被添加到文件的内容 Ctrl + s // 停止 Ctrl + q // 继续 echo str >> file // 在文件 file 末尾(最后一行下)添加str (文件 file 不存在时就创建 file ) echo str > file // 用str覆盖 file 中的所有内容 (文件 file 不存在时就创建 file ) find dir -name "file" // 查找在目录 dir 下所有文件名为 file 的文件,支持模糊查找(即*.pdf,*.txt等) grep // 查找 grep str file // 在 file 中查找str grep -r str dir // 在目录 dir 下的所有文件及子文件中查找str grep -c str file // 统计str在 file 中出现的行数 grep -5 'parttern' inputfile // 打印匹配行的前后5行写入inputfile grep -C 5 'parttern' inputfile // 打印匹配行的前后5行写入inputfile grep -A 5 'parttern' inputfile // 打印匹配行的后5行写入inputfile grep -B 5 'parttern' inputfile // 打印匹配行的前5行写入inputfile grep -Ff file1 file2 // 打印file2中和file1中相同的行 grep - v str // 排除str sed 替换或插入 sed 's/原字符串/替换字符串/' file // 用替换字符串替换 file 中的原字符串 sed 's/^/添加的头部&/g' // 在所有行首添加 sed 's/$/&添加的尾部/g' // 在所有行末添加 sed '2s/原字符串/替换字符串/g' // 替换第2行 sed '$s/原字符串/替换字符串/g' // 替换最后一行 sed '2,5s/原字符串/替换字符串/g' // 替换第2到第5行 sed '2,$s/原字符串/替换字符串/g' // 替换第2到最后一行 lsof -n| awk '{print $2}' | sort | uniq -c| sort -nr| more // 查看文件句柄个数 查看线程: cat /proc/ ${pid} /status // 可以查看大致的情况 top -H -p pid // 查看进程的所有线程( ps -T -p pid) sysctl // 查看系统参数 -w // 临时改变某个指定参数的值,如sysctl -w net.ipv4.ip_forward=1 -a // 显示所有的系统参数 -p // 从指定的文件加载系统参数,如不指定即从 /etc/sysctl .conf中加载 查看JVM设置参数 jcmd pid VM.flags 查看gc状态 jstat -gc pid 1000 查看内存队列 jmap -histo pid | head -n 20 jmap -dump: format =b, file = /log/heapdump1 .out pid xargs 与- exec 功能类似 find mnt/* /root/ *.properties - type f | xargs grep -i "Mary" // 在所有文件中检索字符串Mary shell 快捷键 Ctrl + a -- 跳到行首 Ctrl + e -- 跳到行尾 awk : cat /proc/partitions | grep "[hsrm].*[^0-9]$" | sort -k 1 -k 2 -k 4| head -n 2| tail -n 1| awk '{print $NF}' // 获取硬盘盘符 cat test .txt | awk '{$1=""; $3=""; $4=""; print }' // 第几列不要,其他列都要 cat top .txt | awk '{if(NR % 3 == 0){print $0}}' // 只显示3的倍数行,其他行不显示 awk '{if(NR % 3 != 0){print $0}}' // 删除3的倍数行 最后一列 $NF ,分离 -F ',' '(print $1)' cat file | sed -e "/rsyslogd was HUPed/d" // 文件 file 中,包含 "rsyslogd was HUPed" 的行都显示 cat filename | sort | uniq // 文件去重 统计文件行数、字数、字节数 wc -l 统计行数 -w 统计字数 -c 统计字节数 TCP /IP netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' // 查看TCP状态 tcpdump -i eth0 host 172.16.15.38 and port 8055 -w out.cap // 查看网卡eth0的tcp报文,并重定向到文件中 上传/下载 本地与远程服务器间 ftp 101.37.86.115 // 连接指定host,要求输入用户名密码 sftp -P 40003 admin@120.55.21.42 // 连接指定host的40003端口,以admin连接,要输入密码 get // 下载 put // 上传 服务器间 scp *.tmp 101.37.86.115: /root/deploy/kft/req // 将当前目录下tmp后缀的文件上传到指定目录 scp root@10.20.2.232: /mnt/cosmetic-rest/ *.* ./ // 将指定目录的文件下载到当前路径 压缩/解压缩 tar -cvf jpg. tar *.jpg // 压缩 tar -cvf jpg. tar 1.jpg 2.jpg 3.jpg // 压缩 tar -xvf aaa. tar // 解压 卸载 rpm -q -a // 查看安装的软件包 rpm -e [package name] // 卸载软件包 rpm -e [package name] --nodeps // 忽略依赖 rpm -ql [package name] // 查看安装位置 批量删除同名进程 kill -9 ` ps -ef| grep xxxx| awk '{print $2}' ` ps -ef| grep xxxx| awk '{print $2}' | xargs kill -9 |