注意事项
- linux严格区分大小写
- 以下命令测试均在centos6.7中测试通过
- 常用快捷键:
– 1. tab 补全:命令补全按键,一般直接连按三下路径补全按键
– 2. Ctrl+c 强制终止:终止当前任务或程序
– 3. Ctrl+d 退出会话:退出当前窗口或会话,相当于logout,exit
– 4. Ctrl+l 清屏:清屏,相当于clear
– 5. CRT中的复制和粘贴
Ctrl+shift+c(Ctrl+insert)ssh客户端SecureCRT里复制的命令
Ctrl+shift+v(shift+insert)ssh客户端SecureCRT里粘贴的命令
– 6. Ctrl+a 到命令开头:光标移动到行开头
– 7. Ctrl+e 到命令结尾:光标移动到行结尾
– 8. Ctrl+u 剪切前面的命令:剪切前面的命令,相当于清掉前面
– 9. Ctrl+k 剪切后面的命令:剪切后面的命令,相当于清掉后边
– 10. Ctrl+r 搜索:搜索
– 11. Ctrl+s 挂起:挂起后敲命令没反应
– 12. Ctrl+q 解除挂起:解除挂起操作
1. ls
- 简述:列出文件或目录列表。
ls #默认列出当前目录下的所有文件。
ls -l(long) #以长格式查看文件。
ls -d(directorys) #查看目录。
ls -F #给不同文件的结尾加标识
ls -p #给目录结尾加斜线
ls -a #显示所有文件,包括隐藏文件,默认.开头的文件都是隐藏不显示的
ls -r #倒排序
ls -t #按修改时间排序,一般rt结合,查看最近被修改的文件。
\ls --color=auto #显示颜色,别名默认设置了。
ls -i /data/ #显示inode,文件索引。
ls –lh /data/ #h参数标识人类可读,会将文件大小换成kb、Mb等。
ls –l --time-style=long-iso /data #规范时间,(2016-03-04这种格式)。
2. mkdir
- 简述:创建目录。
mkdir /data #在根目录下创建data目录。
mkdir –p /aa/bb #创建目录bb,如果没有aa目录则自动创建。
3. cd
- 简述:切换目录。
cd /etc #从当前目录切换到/etc路径下。
4. pwd
- 简述:打印工作目录。Pring Working Directory
pwd (print work directory) #显示当前所在路径。
#pwd的原理就是取$PWD这个变量的值
echo $PWD #可以看到这个变量的值
5. touch
- 简述:不存在就创建文件,存在则更新文件时间戳信息。
touch /data.txt #直接在/目录下创建data.txt文件。
cd /; touch data.txt #切换到/目录下,创建data.txt文件。
6. vi/vim
- 简述:vi编辑器。
vi /data.txt #打开data文件,打开默认为命令模式不可编辑。
#点击a或i进入插入状态,点击Esc退出编辑状态进入命令状态。
#命令状态按:wq保存退出。(wq为write quit)
#命令模式下:
dd #直接删除一行
set nu #显示行号
set nonu #不显示行号
G :$ ]] #光标移动到文件的最后一行
:0 gg [[ #光标移动到文件的第一行
0 ^ home #从光标所在位置将光标移动到当前行的开头
$ end #从光标所在位置将光标移动到当前行的结尾
u #取消上一次的动作
/ #向下搜索,继续搜索n,反向搜索N
? #向上搜索,继续搜索n,反向搜索N
7. echo
- 简述:打印
echo ‘I like linux’ #打印后边的字符串。
echo –n “oldboy”;echo “oldboy” #不换行输出
echo -e “oldboy\toldboy” #加特殊符号,比如制表符\t,换行\n等。
8. cat
- 简述:查看文件内容
cat /data.txt #查看data.txt文件中的内容
cat >>/data.txt<<EOF
I like linux
you like linux
EOF
#以上用法结合了cat和>>和<<,可以追加多行内容,内容用EOF包裹,
#EOF可以用任意重复字符替换,只要内容不存在就可以。文件不存在会自动创建文件。
cat -n /data.txt #显示行号
cat test{,1} >/tmp/aaa.txt #将test.txt和test1.txt文件内容合并到aaa.txt里面,行合并,上下合并。
cat -T test.txt #区分tab键和空格,tab键会被^I替代。
cat -E test.txt #会在行尾加$符号,空行也会有。
9. tac
- 简述:和cat相反,倒序读取文件。最后一行先输出,然后倒数第二行……如此。
10. paste
- 简述:粘帖,可以用作合并。
paste test1 test2 #列合并,即左右合并。
paste -d : test1 test2 #以冒号分隔,列合并。
paste -s test1 test2 #将每个文件列转行之后再按行合并。
11. sort
- 简述:排序命令
sort aa.txt #将内容按ascII码进行排序。
sort -n aa.txt #讲内容按数值排序。
sort -r aa.txt #倒序
sort -u aa.txt #压缩重复行
sort -k2 aa.txt #-k默认以空格分隔,指定第2列进行排序
sort -t “:” -k 2 aa.txt #用冒号分隔后以第2列进行排序。
12. rev
- 简述:每行倒读。
echo 1234|rev #输出的是4321
13. nl
- 简述:显示行号
nl /data.txt
14. cp
- 简述:拷贝命令,可以拷贝文件或目录
cp /data/aa.txt /test/ #将/data/aa.txt文件拷贝到/test/目录下。
cp –r /data /test/ #将/data目录递归拷贝到/test/下面。
cp –a /data /test/ #-a参数相当于-pdr
-p #连同档案属性一块拷贝,而非默认属性。
-d #若原文件为链接文件,则复制链接文件属性而非档案本身。
15. rm
-简述:删除命令,remove。删除动作很严重,少用。一般结合find删除。
rm /test/aa.txt #删除/test/aa.txt文件。 不加参数会提示确认删除。
rm –f /test/aa.txt #强制删除,不会出提示。
rm –r /test #删除目录,目录下若有文件,则每个文件都会提示,可以加f参数。
16. head
- 简述:取内容头n行,默认10行。
head –n 3 aa.txt #取aa.txt前三行内容。等于head -3 aa.txt
17. tail
- 简述:取内容后n行,默认后10行。
tail –n 3 aa.txt #取aa.txt后3行内容。等于tail -3 aa.txt
tail –f /var/log/messages #实时监控此文件尾部的变化,等于tailf
tail –F /var/log/messages #实时监控此文件尾部的变化,如果出错会重试
18. less
- 简述:一屏一屏显示,回车向下一次一行,空格向下一次一屏,可回退看,b是一次一屏回退看。less是部分内容加入内存,打文件也很快。
19. more
- 简述:按页一次一屏,回车一次一行,空格一次一屏,无法回退看,多用less。more是内容全部一次加载如内存,打文件比较慢。
more +290 test.txt #直接跳至第290行内容。
more -20 test.txt #显示前20行内容。
20. cut
- 简述:切割行
cut -b 2 test.txt #只显示test.txt第二个字节的内容,如果是汉字可能不会显示,因为汉字(utf-8编码占三个字节)。
cut –c 2 test.txt #显示第2个字符。
cut -f 2 test.txt #以tab键分割,显示第2列。注意:cut默认以tab键分隔,awk默认以空格。
cut -d “ ” –f 2 test.txt #以空格分隔,显示第2列。-d可以指定分隔符,只能指定一个。
21. split
- 简述:按照指定的行数或大小分割文件
- 语法:split 选项 输入文件 输出文件的前缀(后缀自动生成)
split -l 10 /etc/inittab new_ #将文件inittab每10行切割成一个文件。
split -l 10 -a 4 /etc/inittab new_ #-a是指定后缀生成的长度。
split -b 2M /data/test.txt #按文件大小进行切割。
22. seq
- 简述:生成序列
seq 20 >aa.txt
seq 2 5 #输出从2到5,左右都包含。
seq 1 3 10 #从1开始间隔3,一直到10。相当于等差数列。
seq –s “ ” 10 #-s指定分隔符,此处会输出1行1-10,空格隔开。
seq -w 10 #输出01 02 03 …10,即输入加0的。
23. tree
- 简述:查看目录树结构层次
tree /data #查看/data树结构包含文件和目录。
#注意:此命令如果没有需要安装一下:
yum install tree –y
tree –d /data #只显示/data/下的目录
tree -L 1 /data #显示层级,这里显示1层。(Level)
tree –i /data #不显示树枝,那些横线不显示了。
tree –F /data #区分目录和文件及其他文件,文件不加标示,目录后边会加斜线/
24. alias/unalias
- 简述:别名,取消别名
alias #查看已有的别名。
alias cp=’cp -i’ #设置别名。 只对当前生效,重启后失效。
永久生效:放入
/etc/profil #全局生效。
~/.bashrc #当前用户生效。
unalias cp #取消cp的别名。
- 作用:
通过给危险命令加保护参数,防止人为误操作。
把很多复杂的字符串或命令变成一个简单的字符串或命令。
25. 重定向(> />>/<<)
- 简述:标准输出/输入,结合echo会创建文件覆盖文件内容或追加内容。
echo ‘I like linux’>/data.txt #如果data.txt不存在则创建并把内容输入进文件。如果文件存在则覆盖内容。
echo ‘I like linux’>>/data.txt #追加内容到文件尾部。
echo ‘aa
bb
cc’>>/data.txt #追加多行内容。
cat >>/data.txt<<EOF
I like linux
you like linux
EOF
#上述用法结合了cat和>>和<<,可以追加多行内容,内容用EOF包裹,EOF可以用任意重复字符替换,
#只要内容不存在就可以。文件不存在会自动创建文件。
26. 重定向概念
- >或1> 输出重定向:把前面输出的东西输入到后边的文件中,会清除文件原有内容。
- >>或1> 追加重定向:把前面输出的东西追加到后边的文件尾部,不会清除文件原有内容。
- 0<或<< 输入重定向:输入重定向用于改变命令的输入,后面指定输入内容,前面跟文件名。
- 2> 错误重定向:把错误信息输入到后边的文件中,会删除文件原有内容。
- 2>> 错误追加重定向:把错误信息追加到后边的文件中,不会删除文件原有内容。
箭头的指向就是数据的流向。
数字0表示标准输入(stdin),默认可以不用写。
数字1表示正常输出(stdout)。
数字2表示标准错误输出(stderr)。 - 实例:
echo 1 2 3 4 >/data.txt
xargs –n 2 </data.txt #其中2表示两个一组。输出如下:
1 2
3 4
echo girl >a.txt 2>a.txt #将正确或者错误信息都输入到a.txt。
echo girl >a.txt 2>&1 #和上面的意思一样,不同的写法,这个常用。
echo girl &>a.txt #和上面意思一样,正确和错误信息都放入a.txt。
27. { }
echo {1..10}; echo {a..z} #两个都会打印输出 1-10和a-z
mkdir –p /data/{aa,bb}/data #创建/data/aa/data和/data/bb/data两个目录。
28. ~
- 简述:表示当前用户的家目录。
cd ~ #切换到当前用户的家目录中
29. –
- 简述:上一次所在的目录。读取的是 $OLDPWD 这个路径
cd - #切换到上一次所在的目录
30. !
!m #调出最近使用过的以m开头的命令。
!! #调出最近使用的命令。
!+数字 #表示调出历史的第几条命令。
取反
31. history
- 简述:显示历史执行过的命令
history -c #清空当前的历史记录,清空比较安全,但对管理不是很方便。
history -d num #删除指定记录。
#调整历史记录的数量
export HISTSIZE=5 #调整命令行历史记录数量。此处操作后,文件中仍然存在
cat ~/.bash_history #可以查看历史文件仍然存在,下面可以设置文件存在的历史记录数量。
export HISTFILESIZE=5 #调整历史记录为5条。
32. man
- 简述:查看命令的帮助信息,非内置命令
man mv #查看mv命令的帮助信息。
33. --help
- 简述:查看命令的简短帮助信息,适用于内置命令
cp --help
help cd #查看内置命令帮助
34. info
- 简述:查看帮助信息
35. stat
- 简述:查看文件详细属性
stat aa.txt #查看aa.txt详细的属性
36. xargs
- 简述:从标准输入获取内容创建和执行命令。
# -n 接数字相当于分组。
echo 1 2 3 4 >/data.txt
xargs –n 2 </data.txt #其中2表示两个一组。输出如下:
1 2
3 4
37. find
- 简述:顾名思义
find /data –type f –name “test.txt” –exec rm {} \;
#先找到/data下面名字叫test.txt的文件,然后执行删除操作。
find /data –type f –name “test.txt” |xargs rm -f #用管道和xargs进行删除。
#用xargs的目的是将找到的内容变为1行。
#-type :文件类型 f(file),d(directory),c(character),b(block)
#s(sockey),l(link)
#-name :文件名称。
#-mtime :参考考试题,删除7天之前的文件。
#-o :或的意思,find /data –type f –name “aa.txt” –o –name “bb.txt”:找aa.txt或bb.txt
#-a :取交集的意思,同-o用法类似。
#-maxdepth :查找的深度
#-perm 4755 :按权限查找
- 实例:
mv `find /data -type f -name “*.txt”` /temp/
#注意 find前面和txt双引号后边分别有一个反引号。
#将找到的文件移动到/temp/下面。其中的反引号表示执行里面的命令。
38. grep
- 简述:过滤功能
grep ty test.txt #过滤出test.txt中包含ty的内容。
grep –v 3 test.txt #排除内容3 将test.txt中其余内容过滤出来。
#-A :除了显示匹配的一行之外,并显示该行之后的num行。after
#-B :除了显示匹配的一行之外,并显示该行之前的num行。before
#-C :除了显示匹配的一行之外,并显示该行之前后各num行。context
#-atime n :n为数字,意思为在n天之前的被access过的档案。
#-ctime n :n为数字,意思为在n天之前的被change过的档案。
#-mtime n :n为数字,意思为在n天之前的被modification过的档案。
#-newer file:file为一个存在的档案,意思是说:只要档案比file还要新,就列出来。
#-n :对匹配的内容打印行号。
#-i :不区分大小写。
#-o :只显示匹配到的内容,而不是按行显示。
#-c :计算找到‘搜索字符串’的次数。
grep 20 –A 10 aa.txt :取aa.txt第20-30行的内容。
grep --color=auto 3306 /etc/services :会将过滤出来的3306加颜色
grep -E “3306|1521” /etc/services :同时过滤多个,中间用|隔开。等同于egrep
grep “\boldboy\b” aa.txt:搜索oldboy单词的所在行,\b是划定单词边界。oldboy2这样的内容不会被过滤出来。
grep -w “oldboy” aa.txt:相当于上边的命令,按单词搜索,指定了单词的边界
39. sed
- 简述:stream editor 流编辑器,实现对文件的增删改查加替换,编辑行比较在行。
sed –n ’20,30’p ett.txt #查文件20到30行的内容。-n为取消默认输出,只输出想要的,p表示打印。
sed ‘s#aa#bb#g’ test.txt:
# s表示查找并替换。
# g表示对当前行全局替换。
# #1#2#:位置1表示要替换的内容,位置2表示要替换成什么内容。
#以上写法只输出时会修改,不会修改文件。加-i修改文件内容。
# -e 允许多项编辑
#后向引用:
sed –nr ‘s#()()#\1\2#gp’ file #第一个小括号匹配的内容用\1输出,第二个可以用\2输出。
#其中-r是可以使用特殊字符,不用转义。
#比如:I am oldboy linux 要匹配oldboy则可以:sed –nr ‘s#^.*m (.*) l.*$#\1#gp’ filename则会输出oldboy。也就是将小括号匹配的内容输出了。
sed ‘2a liuyi,liuli’ test.txt #a表示在第几行之后追加内容。
sed ‘2i liuyi,liuli\ntest1test2’ test.txt #i表示在第几行之前追加内容。\n是换行,也就是多行追加。
sed ‘2,3d’ person.txt #删除第 二行和第三行。
sed ‘2c liuyi’ test.txt #新行取代旧行。
sed ‘1,3s#C#--&--#g’ test.txt # &表示要被替换的内容,此句表示在匹配的C字符两边加内容。
40. awk
- 简述:模式扫描和处理,过滤,输出内容,是一门语言,可以处理数据和生成报告。
awk ‘NR>19&&NR<31’ ett.txt #取出ett.txt中20到30行的内容。NR表示行。
ls –l|awk ‘{if($2>1) print $0}’ # $1第一列,$2第二列,$0标识行,$NF标识最后一列。
awk –F “[: ]+” ‘NR==1 {print $2,$NF}’ /etc/passwd # 以:和空格两个分隔符进行分隔
# NF:代表浏览记录的域的个数,1:2:3:4 用-F “:” 分割之后 NF=4
# $NF:代表最后一列
# ~:用来匹配后边的正则表达式,告诉awk后边开始是正则语法,正则语法用//包裹
# FNR:同时查看多个文件行时,可以每个文件单独显示行号
- awk的匹配模式或者匹配条件可以是:
正则表达式
条件表达式(NR>=2)
范围表达式:
(NR2,NR5)2行到5行,左右闭合。
正则表达式-开始/,/正则表达式-结束/ 行,记录 - awk区域:FS刀分隔的,FS是区域分隔符(行分隔)。
- awk记录:RS刀分隔的,RS是记录分隔符(列分隔)。
- FS:NF 区域的数量
- RS:NR 记录号,随着记录的增加NR自动+1
- BEGIN模块
它在awk读取文件之前就执行,一般用来定义我们的内置变量(预定义变量FS,RS等) - END模块
它在awk读取完所有文件时,再执行END模块,一般用来输出一个结果(累加、数组结果等)。
awk ‘/^$/{a=a+1}END{print a}’ a.txt #输出文件空行的数量
- awk内置变量(预定义变量)
41. uname
- 简述:打印系统信息。
uname –m #查看系统是32还是64
uname –a #查看系统版本信息
uname –r #查看内核版本
uname –n #查看主机名 相当于hostname命令,hostname liuyi 设置主机名(临时生效)
cat /etc/redhat-release #查看系统版本
42. ifconfig
- 简述:配置网络
ifconfig #可以查看网络配置信息,ip地址等
ifconfig eth0 #查看指定网卡的配置信息。
43. shutdown/halt/init 0
- 关机
shutdown –h now #立即关机
shutdown –h +10 #表示10分钟后关机
halt #关机
init 0 #关机
- 重启
reboot #重启
init 6 #重启
shutdown –r now #立即重启
44. --color=auto
- 加颜色方便查看,经常用,因此我们可以加入别名。
vi /etc/profile #编辑环境变量,把grep的别名加入进去。
# Shift+g 跳转至最后一行,按o在下一行插入: alias grep=’grep –color=auto’
# 然后按esc退出编辑模式按:wq保存并退出,然后我们重新登录使其生效。Ctrl+d退出登录。
# 然后我们再次执行grep 3306 /etc/services 不用加入—color=auto也会出颜色了。
45. chkconfig
- 功能:设置系统服务在哪些运行级别开机启动,可以用来更新或查询。更新后需重新登陆可生效。
- 原理:将对应运行级别的目录下创建一个软连接,此处参考第二关考试题第8题。
chkconfig --list #查看所有的系统服务在各自运行级别的启动情况。
chkconfig --list sshd #查看sshd服务在各运行级别中的启动情况。
[root@liuyipc ~]# chkconfig --list sshd
sshd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
chkconfig sshd on #默认是2345级别开机自启动。
chkconfig --level 3 sshd off #把3级别的sshd服务下次开机关闭。
chkconfig --add test #假设test是我们写的一个脚本,放在/etc/init.d/下面,如果要纳入chkconfig管理,则需要在test文件开头加入:
# chkconfig: 2345 55 25 #-->可变
# description: SSH is a protocol for secure remote shell access. \
# This service starts up the OpenSSH server daemon.
- 那么要把一个脚本纳入chkconfig管理,有四步:
– 1、把脚本放入/etc/init.d/下面
– 2、赋予可执行权限 +x
– 3、文件开头有上面的红色的标识。
– 4、用chkconfig –add 进行添加。
46. tar
- 简述:压缩和解压缩
47. 用户操作
- 添加用户
useradd liuyi #添加用户(更改4个用户文件)(/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow)
#-u 指定uid,比如 useradd -u 504 liuyi
userdel liuyi #删除用户(更改4个用户文件)
userdel -r liuyi #删除家目录
passwd liuyi #回车后会让输入两遍密码。(/etc/shadow)
echo “123456”|passwd --stdin liuyi #非交互式设置密码
tail -1 /etc/passwd #可以查看刚添加的用户信息
su - liuyi #切换到用户。一定要加横线
su - #切换到root下,需要输入root密码
su – liuyi –c pwd #切换到用户下执行一下命令再返回来,可以开机以某个用户执行下命令。
sudo #提权
visudo #编辑sudo配置文件,会检查语法。相当于vi /etc/sudoers 但这个不检查语法
visudo -c #检查语法
whoami #查看当前用户
- 添加组、用户等
groupadd incahome #新添加一个组。-g 可指定组id。(/etc/group)
groupdel incahome #删除用户组
useradd liuyi -g incahome #添加用户并指定组
usermod -g liuyi incahome #修改用户组
chage #查看账户过期信息的,修改密码期限等。(/etc/shadow)
chage -l liuyi #查看用户期限信息
chage -E liuyi #设置账户过期日期,日期写法MM/DD/YY
id liuyi #查看用户id组id等信息。
chown liuyi.incahome /test/liuyi/test.sh #root下对文件更改属主和属组。
chmod g+w /test/liuyi/test.sh #g+w表示group加如写权限。o+w则表示other加入写权限等。
注意:root切换到普通用户下面,无需输入对应用户密码。
普通用户切换到root下,需要输入root密码。
- 删除用户经验
企业处理一般的方法:
vi /etc/passwd #注释掉用户,观察1个月,出问题可以还原。
#把登录shell改成/sbin/nologin
#openldap(类似活动目录)帐号统一管理的,ldap库里干掉用户,所有服务器全部都没了
48. linux三剑客正则表达式
- 只适用于grep(egrep),sed,awk 。对其余命令不适用。
^ 以...开头,^d,意思是以d开头进行匹配。
$ 以....结尾,/$,意思是以/结尾进行匹配。
^$ 空行
\ 让原本有意义的字符脱掉马甲,还原它本身的含义,转义。
. 代表任意一个字符。
.* 代表所有。*代表0个或多个
[abc] 匹配含有a或者b或者c的内容。[0-9]或者[a-z]
[^abc] 匹配不包含a并且不包含b并且不包含c的内容。相当于取反。
a\{n,m\} 匹配至少有n到m次a字符的内容。
a\{n,\} 匹配至少n次a字符的内容。
a\{,m\} 匹配内容至多有m次a字符的内容。
a\{n\} 重复n次,如果用egrep或者sed –r可以去掉斜线。
+ 表示重复“一个或多个”前面的字符(*是0个或多个)
? 表示重复0个或1个前面的字符(.是有且只有1个)
| 表示同时过滤多个字符
() 分组过滤,后向引用。 比如 grep –E “g(aa|oo)d” aa.txt
- 可以man grep查找正则表达式内容。
49. wc
- 简述:总数
wc -l /etc/services #显示总行数。lines
wc -L /test/aa.txt #显示最大行的字符数
50. stat
- 简述:查看文件的属性
stat /etc/hosts #查看hosts文件的属性。
51. dumpe2fs
- 查看文件系统inode总量以及剩余量
[root@liuyipc ~]# dumpe2fs /dev/sda1|grep -i "Inode size"
dumpe2fs 1.41.12 (17-May-2010)
Inode size: 128
52. df
- 简述:查看文件系统磁盘空间。
– 查看文件系统inode总量以及剩余量
[root@liuyipc ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 479552 55867 423685 12% /
tmpfs 127037 1 127036 1% /dev/shm
/dev/sda1 51200 38 51162 1% /boot
– 查看磁盘的使用量,人类可读。
[root@liuyipc ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 7.1G 1.5G 5.3G 22% /
tmpfs 497M 0 497M 0% /dev/shm
/dev/sda1 190M 36M 145M 20% /boot
– 查看当前挂载的文件系统
df -hT
– 查看挂载也可以用
cat /proc/mounts
– 查看分区
cat /porc/partitions
53. du
- 简述:查看文件和目录大小
du –h /test #以人类可读方式查看test目录及子目录大小
du –s /test #查看test目录总的大小。
du --max-depth=1 -h / #深度为1,-h为人类可读。
54. last
- 简述:查看用户登录信息。
55. lastlog
- 简述:显示最近登录的用户信息。对应/var/log/lastlog数据文件。
56. file
- 简述:查看文件类型
file test.txt
57. id
- 简述:查看用户的uid和gid
id #查看当前用户的uid和gid
id liuyi #查看liuyi用户的uid和gid
58. date
- 简述:设置或查看日期等
date –s “2016/05/04 10:30” #设置时间
date +%y-%m-%d #以2016-05-04这种格式输出日期 其余格式变量用man或help查看
59. whereis
- 简述:查找命令的帮助、源代码、-b参数查找二进制文件路径
60. locate
- 简述:通过名称查找文件,智能查updatedb库里的
- 它从/var/lib/mlocate/mlocate.db查找路径。
61. which
- 简述:查看二进制命令的所在路径。从PATH变量所在的路径进行查找。
which ls #查找ls命令的路径。
62. readlink
- 查看软链接的值
readlink 软链接的文件名 #可以读取出源文件名。
63. ln
- 设置链接文件,分为硬链接和软链接(符号连接)。
ln 源文件 目标文件 #直接创建链接为硬链接。
ln –s 源文件 目标文件 #创建的为软链接。
64. rename
- 简述:重命名文件
[root@liuyipc test]# ls
file1.txt file2.txt file3.txt file4.txt file5.txt
[root@liuyipc test]# rename "file" "aa" *
[root@liuyipc test]# ls
aa1.txt aa2.txt aa3.txt aa4.txt aa5.txt
65. basename
- 简述:取文件名,可以去除前边路径,也可以去除扩展名。
[root@liuyipc test]# basename /test/aa1.txt
aa1.txt
[root@liuyipc test]# basename /test/aa1.txt .txt
aa1
66. dirname
- 简述:取路径
[root@liuyipc test]# dirname /test/aa1.txt
/test
67. md5sum
- 简述:生成和查看md5值
md5sum aa.txt #生成md5值,软链接和硬链接和源文件的md5值是一样的。
md5sum aa.txt >md5.log。
md5sum -c md5.log #校验,成功会提示成功,若文件修改,则会提示不匹配。
68. chown
- 简述:修改文件或目录的属主或属组。冒号可以用“.”代替。
chown 用户 文件或目录 #仅授权用户
chown :组 文件或目录 #仅授权组,相当于 “chgrp 组 文件或目录”(chgrp基本不用了)
chown 用户:组 文件或目录 #授权用户和组
chown -R 用户:组 目录 #如果后边接的是目录,并接了R参数,则会递归修改目录下所有文件和目录。
69. chmod
- 简述:更改及设置文件对应权限。
70. chattr
- 简述:改变文件的扩展属性,仅root用户可以使用。
chattr +a test.txt #设置文件只能追加。设置后,不能删除不能清空。
chattr +I test.txt #给文件加锁,不能追加删除清空,仅能查看。
71. lsattr
- 简述:查看文件的扩展属性
- 普通文件的属性如下;
[root@liuyipc test]# lsattr 2.txt
-------------e- 2.txt
72. umask
- 简述:控制文件默认权限
73. useradd
- 简述:添加用户
-c :指定注释。test:x:503:501:注释:/home/test:/bin/bash
-d :指定家目录。test:x:503:501::/home/test:/bin/bash
-e :指定过期时间,格式为MM/DD/YY 给公司员工帐号一般会用到
-g :指定用户组。
-G :指定用户属于多个组。
-M :不建立家目录。
-s :指定shell。test:x:503:501::/home/test:/bin/bash
-u :指定UID。
74. userdel
- 简述:删除用户
userdel –r 用户 #删除此用户的家目录,删除后属主和数组会显示数字 504等,
#此时可以用useradd –u指定回来。useradd –u 504 用户
75. chattr
- 简述:改变文件属性,最大用途可以给文件加锁
chattr +i /etc/passwd #锁住此文件了。
lsattr /etc/passwd #查看会有各i属性
76. crontab
- 简述:设置定时任务
crontab -e #会进入编辑模式,写任务即可。
#比如 * * * * * echo ‘”liuyi” >>/test/aa.txt 每分钟打印。
77. 特殊环境变量
- 设置环境变量用export,临时生效。
export PATH=$PATH:$HOME/bin:/sbin
#想要永久生效,将上边的命令放入profile文件
- PATH
简述:所有命令的路径所在地,用冒号分隔。 - LANG
简述:字符集变量。
78. uuid
- cat /proc/sys/kernel/random/uuid:获取uuid
79. w
- 简述:显示谁登录了和他们在做什么
80. who
- 简述:显示谁登陆了
81. last
- 简述:显示用户登录历史列表,会查/var/log/wtmp
82. lastlog
- 简述:显示所有用户最近登录的情况,读/var/log/lastlog
83. paste
- 简述:粘帖,合并文件
paste /data1 /data2 >>/data3 #合并data1和data2文件内容到data3中
84. ethtool
- 简述:查看网卡信息
ethtool eth0
85. dd
- 简述:创建一定大小的文件
- 参数
if =输入文件(或设备名称)
of =输出文件(或设备名称)
bs = bytes 同时设置读/写缓冲区的字节数(等于设置obs和obs)
count = blocks 只拷贝输入的blocks块
- 示例
dd if=/dev/zero of=hello.txt bs=100M count=1 #创建一个100M的文件。
#将本地的/dev/hdx整盘备份到/dev/hdy :dd if=/dev/hdx of=/dev/hdy
86. /dev/zero和/dev/null
- /dev/zero,是一个输入设备,你可你用它来初始化文件。
- /dev/zero------该设备无穷尽地提供0(是ASCII 0 就是NULL),可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入NULL
/dev/zero主要的用处是用来创建一个指定长度用于初始化的空文件,就像临时交换文件 - /dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!
- /dev/null------它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。
把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用
禁止标准输出. cat $filename >/dev/null --文件内容丢失,而不会输出到标准输出
禁止标准错误 rm $badname 2>/dev/null --这样错误信息[标准错误]就被丢到太平洋去了
87. mkfs
- 简述:在特定的分区上创建linux文件系统,也就是格式化操作。
mkfs.xfs /etc/sdc #在sdc上创建xfs文件系统。
mkfs -t ext4 -b 4096 -I 256 /dev/sdb1 #参数-I是大写的,讲sdb1格式化为ext4。
88. mkswap
- 简述:格式化swap分区
89. swapon/swapoff
- 简述:使用swap分区的命令。
swapon /dev/sdb1
90. mount、umount
- 简述:挂载命令/卸载命令,可以挂载/卸载镜像文件、移动硬盘、u盘、网络共享等等。
- 语法:mount [-t vfstype] [-o options] device dir
-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:
光盘或光盘镜像:iso9660
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
Mount Windows文件网络共享:smbfs
UNIX(LINUX) 文件网络共享:nfs
-o options 主要用来描述设备或档案的挂接方式。常用的参数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集
device 要挂接(mount)的设备。
dir设备在系统上的挂接点(mount point)。
- 示例:
mount -t xfs -o loop /dev/sdc /mnt
91. dumpe2fs
- 简述:查看文件系统内部细节信息
dumpe2fs /dev/sdb1
92. fdisk、parted
- 简述:分区命令。parted一般用于对大于2T的设备分区。
93. fsck、badblocks
- 简述:做磁盘检查用,没坏的磁盘一定不要用!
94. partprobe
- 简述:把分区表的修改变化通知内核,一般在分区完之后用。
95. tunefs
- 简述:修改文件系统信息
96. megacli
- 简述:查看raid信息。
97. ipmitools
- 简述:查看硬件信息的工具
98. resize2fs
- 简述:调整文件系统大小(LVM,drbd)
99. dos2unix、unix2dos
- 简述:
Windows换行符为\r\n
linux下换行符为\n
从windows传输过来的文件,打开后就比较难看了。
因此从windows传输过来之后可以进行 dos2unix操作,同理linux传到windows前执行unix2dos
dos2unix aa.txt
100. diff
- 简述:文件对比
diff aa.txt bb.txt #直接会显示变化的行。
101. vimdiff
- 简述:文件对比,比diff好用,可同时对比最多四个文件。
vimdiff aa.txt bb.txt cc.txt dd.txt
102. tr
- 简述:转换和删除字符串
tr ‘abc’ ‘ABC’ < aa.txt #对文件中所有的a、b、c字符全部替换为A、B、C。
tr ‘[0-9]’ ‘[A-Z]’ < aa.txt
tr -d 0 < aa.txt #把文件中所有的0删掉。
103. tee
- 简述:重定向功能,可同时看结果,并把结果输出到文件。
ls|tee aa.txt #不加参数会默认把内容重定向到aa.txt文件中,同时打印到屏幕上。
ls|tee -a aa.txt #追加重定向。
104. dig
- 简述:查询dns的工具
dig @8.8.8.8 www.baidu.com +trace #@指定dns 查百度解析的整个过程。
105. route
- 简述:路由设置
route del default gw 10.0.0.254 #删除默认网关
route add default gw 10.0.0.254 #添加默认网关
106. lsof
- 简述:可以查看端口对应的服务
lsof -I :52113 #查看52113端口上跑的服务。