程序员必知必会----linux常用命令之一【基础命令】
一.文件处理命令
1.查看目录下的内容:
ls -la /dir :-a显示所有文件,-l显示详细信息
ll /dir
2.查看目录或文件的属性
ll -d /dir :-d只显示目录信息
ll filename
3.切换目录
cd / :切换到根目录
cd .. :回到上级目录
cd - :返回到上一个访问的目录
4.查看当前路径
pwd
5.创建空文件
touch filename
6.创建目录
mkdir dir
mkdir -p dir/dir/dir :创建多级目录
7.文件和目录复制
cp sourcefile todir :复制到指定目录,保持原文件名
cp file1 file2 todir :同时复制多个文件到指定目录下
cp sourcefile todir/newfile :复制到指定目录,并重命名文件
cp -R sourcedir todir :复制目录到指定目录下
cp sourcedir/* todir :复制目录下的文件到指定目录
cp -n sourcefile todir :如文件已经存在,则不覆盖
cp -f sourcefile todir :如文件已经存在,则强制覆盖
8.移动文件、重命名
mv file1 file2 :重命名file1为file2
mv file todir :将文件移动到指定目录
mv dir todir :将目录移动到指定目录
mv -n file todir :如有重复,则不覆盖
mv -f file todir :如有重复,则强制覆盖
9.文件和目录删除
rm -f file
rm -rf dir
10.显示文件内容相关
1)cat file:显示文件所有内容
2)more file:分页显示文件内容
下一页:空格
下一行:回车
退出 :q
3)head -20 file:显示文件前20行,默认是10行
4)tail -20 file:显示文件最后20行,默认是10行
tail -f file -n 100:动态显示文件内容,先显示最后100行内容,用于查看日志
11.软链接与硬连接
ln -s file/dir file/dir :软连接
ln file/dir file/dir :硬连接
二.权限管理命令
1.改变文件或目录权限
chmod 777 file/dir
chmod u+x file :赋予文件所有者执行权限
u:文件所有者
g:文件所属组
o:其它用户和组
a:所有用户所有组
+:赋予权限 -:去除权限
r:读权限 文件--可以查看 目录--可以列出目录内容
w:写权限 文件--可以修改 目录--可以在目录中创建、删除文件和目录
x:执行权限 文件--可以执行文件 目录--可以进入目录
注:对于目录,如有r权限,则必须有x权限。
2.改变文件或目录所有者和所属组
chown user file :将file的所有者修改为user
chgrp group file :将file的所属组修改为group
chown -R user.group dir :修改dir及其子目录的所有者和所属组
三.文件搜索命令
1.显示系统命令所在目录
which useradd
2.查找文件或目录
find dir -name filename:在目录下查找文件名为filename的文件
-name:文件名称,例如:find . -name "*.log"
-size:文件大小,以block为单位,1block=512k
-size +204800:大于100M
-size -204800:小于100M
-user:文件所有者
-ctime:按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-cmin:同上,分钟
-mtime:按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-mmin:同上,分钟
-atime:按文件访问时间来查找文件
-amin:同上,分钟
-type b/d/c/p/l/f :查是块设备、目录、字符设备、管道、符号链接、普通文件
-empty:查找在系统中为空的文件或者文件夹
-exec commond {} \;:将查找到的路径作为commond的参数,并执行,
例如:find . -name .svn -exec rm -rf {} \; 类似于:find . -name .svn | xargs rm -rf
find . -name "*.log" -exec cp '{}' ./dir ';' :将当前目录下的以.log结尾的文件拷贝到./dir下
类似于find . -name "*.log" | xargs -n1 -i cp {} ./dir
-n[num] : 执行命令时,一次提供几个参数,这里表示,每次传递给cp一个参数
-maxdepth:查找目录最大深度,默认是全部查找
例如:find -maxdepth 2 -name "*${filename}*" -exec cp {} $newfilename \;
-a:and
-o:or
例子:查询大于100M并且所有者为hanqf的文件并将其删除
find /etc -size +204800 -a -user hanqf -exec rm -rf {} \;
!:不等于,不包含,例如:find . ! -type d,查找所有类型不是目录的文件
3.从文件索引库中查找文件或目录
updatedb:更新索引,系统会自动定期执行
locate key:从索引库中查找名称包含key的文件和目录
4.在文件中搜索匹配关键字的行
grep key file:grep ^# file:显示所有行首是#的行
cat file | grep key
grep -v key file:查找不含key的行
grep key file -A 10:显示关键字行及其后面的10行
grep key file -B 10:显示关键字行及其前面的10行
四.帮助命令
1.获得帮助信息
man ls:查看ls的命令帮助
man services:查看配置文件services的帮助信息(/etc/services,配置文件都位于/etc下)
man passwd:查看命令,或者man 1 passwd
man 5 passwd:查看配置文件
2.获得命令的简单说明
makewhatis:建立索引数据库
whatis ls
五.压缩和解压缩命令
1.格式:.gz 只能压缩文件
gzip file ===》file.gz
gunzip file.gz ===》file
gunzip *.gz
2.格式:.tar 可以压缩文件和目录
tar -cvf file.tar file
-c:产生.tar文件
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩为.gz
tar -xvf file.tar
-x:解压.tar文件
-v:显示详细信息
-f:指定要解压的文件名
-z:解压缩.gz
tar -zcvf file.tar.gz file/dir
tar -zxvf file.tar.gz
tar -zxvf file.tar.gz -C todir
-C:解压到指定目录
tar -zcvf file_$(date +%F).tar.gz file
$(date +%Y.%m.%d-%H%M)
tar -ztf file.tar.gz:不解包,查看包中文件列表
tar -zcvf file.tar.gz dir1 dir2 dir3:压缩多个目录
3.格式:.zip 可以压缩文件和目录
zip file.zip file
zip -r dir.zip dir
unzip file.zip
unzip -o file.zip:解压后如果文件已经存在,则覆盖
unzip -n file.zip:解压后如果文件已经存在,则不覆盖
4.格式:.bz2 只能压缩文件
bzip2 -k file===>file.bz2
-k:压缩后保留原文件
bunzip2 -k file.bz2
-k:解压后保留原文件
六.网络通信命令
1.向已经登录系统的另一个用户发送即时消息
write user
Ctrl+D:退出
2.向所有登录用户发送广播消息
wall
Ctrl+D:退出
cat file | wall
wall < file
3.测试网络连通性
ping ip/domain
ping 192.168.36.49 -c 3 :-c 测试次数
ping 192.168.36.49 -c 3 -s 1000 :-s 发送icmp包的大小bytes
4.查看网络设置信息
ifconfig -a:查看所有网卡信息
ip a:查看网卡信息
七.系统关机与重启命令
重启:
shutdown -r:安全重启,会通知正在登录的用户
shutdown -r now:马上重启
reboot:马上重启,不通知登录用户
init 6
关机:
shutdown -h:安全关机,会通知正在登录的用户
shutdown -h now:马上关机
init 0
poweroff:直接断电,相当于按住电源键3秒钟
echo b > /proc/sysrq-trigger 立即重新计算机
echo o > /proc/sysrq-trigger 立即关闭计算机
八.命令别名
alias:查看所有系统定义的别名
定义:
alias copy=cp
alias xrm="rm -r"
删除:unalias copy
九.输入/输出重定向
0:标准输入
1:标准输出
2:标准错误输出
>:输出重定向 date > file
>>:增量输出重定向 date >> file
<:输入重定向 wall < file
例子:
标准输出和错误输出分别定向到指定的文件
ls 1>/dev/null 2>/dev/null
标准输出和错误输出都定向到同一个文件
ls >/dev/null 2>&1 ===== ls >& /dev/null
十.管道
| : cat file | grep key | sort | uniq | wc -l
十一.命令连接符
; : 间隔命令
&& :逻辑与,前面的命令成功,才会执行后面的命令
|| :逻辑或,前面的命令失败,才会执行后面的命令
十二.命令替换符
`command`:ls -l `which touch` 会优先执行替换符里面的命令,并将结果作为前面命令的参数
十三.系统相关
runlevel:查看当前的系统运行级别
init 5:切换到5运行级别
0:关机
1:单用户安全模式
2:多用户,类似于3,但不支持nfs
3:多用户,完整模式
4:未使用
5:X window
6:重启
uname -a :查看系统类型
十四.系统时间
hwclock --hctosys:用主板时间设置软件时间
hwclock --systohc:用软件时间设置主板时间
hwclock --set --date="9/22/96 16:45:05"
date MMDDHHmmYYYY.ss:设置软件时间
十五.网络命令
1.ssh登录:
ssh -p 2188 [email protected] //不同用户名
ssh -p 2188 192.168.1.219 //相同用户名
2.scp远程传输
scp -P 2188 xxx.txt [email protected]:~/xxx.txt //不同用户名
scp -P 2188 xxx.txt 192.168.1.219:~/xxx.txt //相同用户名
十六.watch
定期执行程序,全屏显示输出
watch -n1 command
-n[num]:间隔多少秒执行一次command
例子:watch -n1 ls -al:每隔1秒,查看当前目录的变化,默认2秒
十七.系统启动时关闭进度条,显示详细信息
vi /boot/grub/grub.conf
#将下面内容最后的rhgb去掉即可
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
说明:
其中"rhgb"表示"redhat graphics boot",就是图形进度条模式。
而"quiet"表示在启动过程中只显示重要启动信息,类似硬件自检之类的消息不会显示,可以有选择地选用。
十八.查看centos版本号
cat /etc/issue
十九.大文件拆分
split -b 512m new-fl.tar.gz new-fl.
split -b 2g new-fl.tar.gz new-fl.
split -d -b 2g new-fl.tar.gz new-fl.
split -l 100 list.csv list.csv.
格式:split 参数 被分割文件 分割后文件前缀
参数:
-b:分割文件的大小
-d:默认分割后的文件后缀是aa、ab、ac……,加上-d参数,后缀变为00,01,02……
-l:按行分割文件,这里表示100行一个文件