$ ls # 查看文件列表
$ ls dir_name | more : 分页查看文件列表
$ ll -h dir_name # 以 KB、MB、GB格式查看文件大小
$ ll -Sh # --sort[S] 根据文件大小排序,--time[t]修改时间 --reverse[r]逆序排序
cp : 复制文件或文件夹
$ cp -r /var/www/xkzd /home/www/xkzd
- r 表示递归复制该目录下所有的子目录和文件至目的地。此时目标文件必须为一个目录名。
$ cp -rf /var/www/xkzd /home/www/xkzd #覆盖已存在的文件
$ /bin/cp -rf /www/teacherapi/* /www/teacherapitest # 不提示直接覆盖需要用/bin/cp 命令
$ cp -rn /var/www/xkzd /home/www/xkzd #忽略已存在的文件
cat:显示文件内容
$ cat hello.txt
hello wrold!
$ cat -n hello.txt #查看行号
$ cat -b hello.txt #查看行号(不包含空行)
$ cat -A hello.txt # 可以查看到换行符号 --show-all 等价于 -vET
根据条件过滤文件内容后重定向(输入)到文件内
$ cat nginx_error.log | grep "2014/03/26"|grep "upstream prematurely closed connection">nginx_20140326.502.log
echo: 输出系统变量或文件
$ echo $PATH
$ echo "hello" > /tmp/test.log # 输出文件的过程中将内容重定向(输入)到文件内
more:分页显示
按下空格键可以显示下一屏内容;按下Enter键显示下一行内容;按下B键显示上一屏;按下Q键退出显示
# more settings.py
mkdir:创建文件夹或目录 Make directory
格式: mkdir [选项] DirName
[root@localhost /]# mkdir /home/software
vi 创建文件
[root@rh-linux /]# touch /var/www/php/test.php
[root@rh-linux /]# vi /var/www/php/test2.php #创建并编辑文件
[root@rh-linux /]# echo hello > /var/www/php/test3.php #直接把内容写入文件并创建
[root@rh-linux /]# cat /var/www/php/test4.php #创建并查看文件
mv 移动文件
[root@rh-linux ~]# mv -i /root/wordpress/ /home/software/
-i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。
-f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。
mv 修改文件
[root@rh-linux /]# mv /var/www/html/DedeCMS-V5.7-UTF8-SP1 /var/www/html/dedecms
rm 删除文件
[root@rh-linux /]rm -f /var/log/httpd/access.log
-f 就是直接强行删除,不作任何提示的意思
删除目录使用实例:
[root@rh-linux /]rm -rf /var/log/httpd/access # -r 递归操作
将会删除/var/log/httpd/access目录以及其下所有文件、文件夹
需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的
rm更多用法使用man rm就可以查看了
有时候会出现一些乱码文件,因为不知道文件名,所以就无法通过rm删除,这是可以使用节点号删除,可以通过 ls -i 或 ll -i 命令查看节点号,最后使用find命令将节点号传递给rm命令
例如:find ./ -inum 12345 -print -exec rm {} -rf \; #注意\;前面的空格不能少,少了就会报错
另外也可以使用图形界面的客户端(SSH Secure File Transfer Client)来删除。
#根据搜索条件删除
$ find /home/www/project-tbkt/zhishidian/ -maxdepth 1 -type f -name "*.jpg" | xargs rm -fr
#删除指定类型的文件
$ rm -f /home/mmsc_media/*.smil
#删除文件夹下指定扩展类型的所有文件,排除指定文件
[root@localhost log]# ls
2013-08-19.log 2013-08-20.log 2013-08-21.log 2013-08-22.log 2013-08-23.log 2013-08-24.log 2013-08-25.log 2013-08-26.log
[root@localhost log]# rm -rf `ls *.log |egrep -v 2013-08-26.log` # 注意“`”是TAB上面那个键不是引号
[root@localhost log]# ls
2013-08-26.log
[root@localhost log]# rm -rf `ls -I 2013-08-26.log #删除文件夹内所有文件只保留一个文件
[root@localhost log]# rm -rf `ls|egrep -v '(2013-08-26.log|filename|dirname)'` # 删除文件夹内所有文件保留部分文件
[root@localhost log]# rm -rf `find *.log |egrep -v '(2013-08-26.log|filename|dirname)'` # 使用find命令删除
tail 从指定点开始将文件写到标准输出
[root@rh-linux /]# tail -f /www/logs/test.tbkt.cn.uwsgi.log
tail 命令在 /usr/bin/tail 下,使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。
语法 tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
Number 变量用于确定计数的起点的单元类型由 -b、-c、-k、-m 以及 -n 标志确定。如果没有指定其中的任何一个标志,那么 tail 命令就会读取指定文件的最后十行,并将其写到标准输出。这与在命令行输入 -n 10 是相同的。
查看文件下下有多少文件, -R表示遍历子文件夹
[root@burning video]# ls -R /home/upload_media/zhishidian/video|wc -l
WC 统计
$ wc file1
7 14 56 file1
第一列为文件的行数,第二列为文件内让的单词数,第三列文件的字节数,最后一列为文件名。
$ wc -lcw file1
-c 字节数
-l 行数
-w 字数
ln 创建软链接(相当于windows的快捷方式)
语法:ln –s 源文件 目标文件
例如:ln -s /data/git/teacherapi.git /teacherapi.git # 相当于在根目录创建一个teacherapi.git 链接文件
-s 是 symbolic link 的意思,如果没有-s则是创建硬链接,硬链接是一个文件设置多个名字,文件夹不能创建硬链接,但可以创建软链接
查看当前目录文件夹大小
[root@localhost home]# du -s /home
3795828 /home
[root@localhost home]# du -sh /home
3.7G /home
[root@localhost home]# du -sh
3.1G .
[root@localhost home]# du -sh /home/tbkt.sql
897M /home/tbkt.sql
[root@burning backup_video]# du -h --max-depth=1
41M ./test
30G ./2012
4.0K ./new
156M ./2013
23G ./2011
52G .
[root@db106 ~]# du -mmsh * | ll -Sh # 查看当前目录的子目录文件大小,并通过管道形式按大小排序
查看系统剩余空间
[root@localhost /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 192G 20G 163G 11% /
/dev/sda1 289M 17M 258M 7% /boot
tmpfs 1.5G 0 1.5G 0% /dev/shm
查看系统中大于500M的文件
# find / -xdev -size +500M -exec ls -lh {} \;
locate :搜索文件
locate命令用于查找文件,它比find命令的搜索速度快,它需要一个数据库,这个数据库由每天的例行工作(crontab)程序来建立。当我们建立好这个数据库后,就可以方便地来搜寻所需文件了。
即先运行:updatedb(无论在那个目录中均可,可以放在crontab中 )后在 /var/lib/slocate/ 下生成 slocate.db 数据库即可快速查找。在命令提示符下直接执行#updatedb 命令即可:
例如:查找相关字my_config.h
[root@db1 ~]# updatedb
[root@db1 ~]# locate my_config.h
/usr/include/mysql/my_config.h
find命令
功能:在目录结构中搜索文件,并执行指定的操作。
语法:find 起始目录 寻找条件 操作.
说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。
该命令提供的寻找条件可以是一个用逻辑运算符not、and、or组成的复合条件。逻辑运算符and、or、not的含义为:
(1)and:逻辑与,在命令中用“-a”表示,是系统缺省的选项,表示只有当所给的条件都满足时,寻找条件才算满足。例如:
$ find –name ’tmp’ –xtype c -user ’inin’
该命令寻找三个给定条件都满足的所有文件。
(2)or:逻辑或,在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就算满足。例如:
$ find –name ’tmp’ –o –name ’mina*’
该命令查询文件名为’tmp’或是匹配’mina*’的所有文件。
(3)not:逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件。例如:
$ find ! –name ’tmp’
该命令查询文件名不是’tmp’的所有文件。
以名称和文件属性查找,字串内可用通配符*、?、[ ]
$ find / -name 'python*'
说明:命令中的“/”表示所有目录,“.”表示当前目录,什么路径都不写也表示当前路径。
#指定深度指定文件名查找
$ find /home/www/project-tbkt/zhishidian/ -maxdepth 1 -type f -name "*.jpg"
查看当前路径pwd
[root@fileserver Twisted-8.2.0]# pwd
/home/soft/Twisted-8.2.0
ifconfig 查看本机IP
netstat 查看端口是否占用
[root@web2 ~]# netstat -anp| grep 3006
tcp 0 0 127.0.0.1:3006 0.0.0.0:* LISTEN 1492/uwsgi
scp 服务器之间复制文件或目录
命令基本格式: scp [可选参数] file_source file_target
从 本地 复制到 远程
======
* 复制文件:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
* 例子:
scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music
scp /home/space/music/1.mp3 root@www.cumt.edu.cn:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music
* 复制目录:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1个指定了用户名,命令执行后需要再输入密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
* 例子:
scp -r /home/space/music/ root@www.cumt.edu.cn:/home/root/others/
scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/
上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录
======
从 远程 复制到 本地
======
从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可;
例如:
scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/1.mp3
scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/
======
指定端口复制文件
scp -P 6022 /www/shouji.tar.gz root@192.168.0.103:/www/
统计某文件夹下文件的个数
ls -l |grep "^-"|wc -l
统计某文件夹下目录的个数
ls -l |grep "^d"|wc -l
统计文件夹下文件的个数,包括子文件夹里的
ls -lR|grep "^-"|wc -l
统计文件夹下目录的个数,包括子文件夹里的
ls -lR|grep "^d"|wc -l
如统计/home/han目录(包含子目录)下的所有js文件则:
ls -lR /home/han|grep js|wc -l 或 ls -l "/home/han"|grep "js"|wc -l
whoami、who 查看用户
$ whoami #查看当前会话用户
root
$ who # 查看当前连接用户都有谁
root pts/0 2014-03-24 00:12 (192.168.0.126)
wei pts/1 2014-03-24 00:16 (192.168.0.126)
sudo -i 切换为超级管理员, exit 退出当前用户登录
su -i # 切换为超级管理员
su -i username # 切换普通用户
查看修改系统时间
$ date # 查看当前时间
$ date --s "2014-03-26 19:10:00" # 同时修改日期和时间
$ date -s 2014-03-26 # 只设置时间 这时候小时、分钟、秒默认是零
$ date -s 19:10:30 # 只设置时间
$ hwclock # 查看硬件(主板)时间
$ hwclock --hctosys # 硬件时间和系统时间同步
$ hwclock –systohc # 系统时钟和硬件时钟同步
$ yum install ntp # ntp服务为自动同步时间服务,安装后使用 $ service ntpd start 启动服务即可
which, whereis 查看文件位置
which 查看可执行文件的位置。which是通过 PATH环境变量到该路径内查找可执行文件,所以基本的功能是寻找可执行文件.
whereis 文件或者目录名称。
mac:~ admin$ which java
/usr/bin/java
mac:~ admin$ whereis java
/usr/bin/java
SSH 使用git bash登录linux服务器
$ ssh root@192.168.0.126 或 $ ssh -l username remotehost
$ ssh root@192.168.0.126 -p6022 # 带端口访问
rpm 包安装
# rpm -ivh ***.rpm
# yum localinstall ***.rpm # yum方式安装rpm可以同时安装依赖包(推荐使用该方式)
查看系统版本号
[root@db106 ~]# lsb_release -a
LSB # 注:7.0后该命令默认不可用
Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.4 (Final)
Release: 5.4
Codename: Final
[root@localhost ~]# uname -a # 适用于所有的linux,包括Redhat、SuSE、Debian、Centos等发行版。
Linux localhost.localdomain 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /etc/redhat-release # 适用于RedHat,CentOS
CentOS Linux release 7.1.1503 (Core)
修改主机名
[root@iZ25rw6p599Z ~]# vi /etc/sysconfig/network
PEERNTP=no
NETWORKING_IPV6=no
GATEWAY=101.201.83.247
#HOSTNAME=5rw6p599
HOSTNAME=webpdf
/etc/sysconfig/network方式需要重启服务器
临时修改主机名称
[root@iZ25rw6p599Z ~]# sudo hostname webpdf
[root@iZ25rw6p599Z ~]# hostname
webpdf
如果不想重启又想及时更新名称,可以使用临时+永久方式