必须熟练的基础linux命令

推荐:命令大全

http://man.linuxde.net/

重要的几个热键[Tab],[ctrl]-c, [ctrl]-d

[Tab]按键---具有『命令补全』不『档案补齐』的功能

[Ctrl]-c按键---让当前的程序『停掉』

[Ctrl]-d按键---通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit

1、常用命令

shutdown -h now 现在马上关机
shutdown -r now 现在重新启动
reboot 现在重新启动
su - 如果当前是普通用户,则输入这条命令切换到管理员用户(root),如果要切换到其他用户则敲入 su - 用户名 如:  su - wangxin
logout 从当前用户注销(如果是在图形界面的终端的话,则是输入 exit 命令来退出当前用户)
cd 切换目录【如:cd / 表示切换到linux的根目录!!(/)表示根目录】
pwd 显示用户当前在哪个路径下的命令 (这个命令用的特别多,在命令行里如果不知道当前所处文件夹,可以输入该命令 pwd
clear 清空屏幕

useradd 用户名 【添加一个用户】 如:useradd wangxin
passwd 用户名 【给指定的用户名修改密码】 如:passwd wangxin
userdel 用户名 【删除一个用户,但是该用户在home文件下的子文件夹会保留】 如:userdel wangxin
userdel -r 用户名 【删除一个用户,并且删除连同该用户在home文件夹下的子文件夹】 如:userdel -r wangxin

du 度量目录文件大小
du –sh 显示本文件夹整体空间大小
文件数
find databak -type f | wc –l databak 目录下的文件数
find . -type f | wc –l 当前目录下的文件数
ls
ls 【列出文件和目录】 如:ls /home (列出home下面的所有文件和目录)
ls -l 【列出的文件和目录以长列表显示】 如:ls -l /home
ls -a 【列出隐藏的文件和目录】 如:ls -a /home
mkdir 【建立目录】 如:mkdir abc

rmdir 【删除空目录】 如:rmdir xiaoluo(只能删除空目录,如果该目录下还有其它文件则该命令无效)
rm -rf /var/lib/mysql #清除目录下所有数据文件!!!必须慎用!!!
rm /etc/my.cnf
cp
cp 【复制命令】 如:cp /home/Test.java / (将home路径下的Test.java文件复制到根目录下)
cp -r dir1 dir2 【-r表示递归,将dir1代表的文件夹及里面的文件复制到dir2路径那里】
如:cp -r /home/xiaoluo /(将home下的xiaoluo文件夹复制到根目录下)

mv 【移动文件和改文件名】 如:
mv /home/Test.java /(表示将home下的Test.java文件移动到根目录下)
mv /Test.java /Hello.java(表示将Test.java文件名改成Hello.java)
mv data/* databak 将data目录下所有文件剪切到databak目录
rm 【删除文件和目录】 如:
rm /Test.java (将根目录下的Test.java删除)【注:如果该文件是个文件夹则删除不了】
rm -rf *【(-r表示递归、f表示强制删除)删除所有内容,包括目录和文件夹】 如:rm -rf /home/xiaoluo(强制删除home下的xiaoluo文件夹)

touch 【建立空文件】 如:touch Test.java
pwd 【显示当前所在目录】 pwd
vi 编辑文本文件
②输入 i 【进入到编辑状态】
③敲入 esc【进入到命令行输入状态】
④敲入 : 【这样就可以输入命令了。】
⑤敲入 wq【保存并退出】 q!【不保存并退出】
cat /etc/profile (只是查看该文件里的内容)    
vi /etc/profile (查看、并且可以修改该文件里的内容)

创建新文件的两种方法
vi newfile
或者
touch newfile
只看文件头几行 head
后几行 tail
[root@wxcentos7 home]# head openfire_mysql.sql
CREATE TABLE ofUser (
username VARCHAR(64) NOT NULL,
只看文件后几行 tail
[root@wxcentos7 home]# tail openfire_mysql.sql
INSERT INTO ofID (idType, id) VALUES (26, 2);

列出行号
nl
# nl log2015.log

ln 【建立符号链接,类似于windows中的快捷方式(需root权限或相应用户权限)】
ln -s 源目标 目的目标 如:ln -s /etc/inittab /inittab(这样就会在根目录下建立一个inittab链接,该链接指向了etc目录下的inittab文件)

more
less 【显示文件内容,带分页】 如果我们的一个文件里面有很多内容,就可以使用more命令给其分页
如:more /etc/prelink.conf (给etc下面的prelink.conf文件内容进行分页显示)

| 【管道命令】 【这个命令在linux系统中用的很多】 ( | 这个命令的作用就是将 | 前面的那个命令的结果交给 | 后面的那个命令来处理)
如:ls /etc | more (|前面那个命令是显示出etc文件夹下的所有文件及目录,|后面那个命令就是以分页形式显示,
所以这个命令的意思就是 以分页来显示出etc目录下的所有文件和目录)

grep 【在文本中查询内容】
这条命令用的非常多 如:grep "xiaoluo" /home/Test.txt (在Test.txt文件中查询出包含有xiaoluo的那行文本信息)
如果需要显示出所查文本所在行数则使用: grep -n "xiaoluo" /home/Test.txt(查询出Test.txt文件中xiaoluo该信息所在行数以及改行所有文本)

重定向命令【> 、>>、<】
如:ls -l /etc> a.txt (将etc下面的列表信息写入到a.txt文件中【覆写】,如果之前不存在a.txt文件,则创建a.txt文件然后将信息写进去,
如果存在a.txt文件,则会覆盖掉之前的信息)
ls -al /etc>> aa.txt (将etc下面的列表信息追加到aa.txt文件信息后面)
从文件中输入信息 aaa < bbb

2、查看IP

ip address show
#或者
ifconfig #如果执行不了则需要: yum install net-tools

3、设置静态IP

vi /etc/sysconfig/network-scripts/ifcfg-ens33
这里ifcfg-ens33文件请ls后查看

默认网络配置(DHCP设置)
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=20d0e0a7-151c-451f-8904-63db006104ee
DEVICE=ens33
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
ONBOOT=yes
IPADDR=192.168.43.50

静态IP配置
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=7cb5f2a3-f916-402d-bd78-efe652798112
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.43.50
NETMASK=255.255.255.0

之后重启配置
/etc/rc.d/init.d/network restart
或者:
service network restart

关闭防火墙

systemctl stop firewalld

4、修改文件和文件夹权限属性

chmod命令文件权限属性设置
文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。
用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。

必须熟练的基础linux命令
权限范围的表示法如下:
 u User,即文件或目录的拥有者;
 g Group,即文件或目录的所属群组;
 Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
 a All,即全部的用户,包含拥有者,所属群组以及其他用户;
 r 读取权限,数字代号为“4”;
 w 写入权限,数字代号为“2”;
 x 执行或切换权限,数字代号为“1”;

- 不具任何权限,数字代号为“0”;
s 特殊功能说明:变更文件或目录的权限。
语法 chmod(选项)(参数) 选项
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quiet或——silent:不显示错误信息;
-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-v或——verbose:显示指令执行过程;
--reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
<权限范围>+<权限设置>:开启权限范围的文件或目录的该选项权限设置;
<权限范围>-<权限设置>:关闭权限范围的文件或目录的该选项权限设置;
<权限范围>=<权限设置>:指定权限范围的文件或目录的该选项权限设置;
--符号类型改变档案权限:

必须熟练的基础linux命令

其他实例:
$ chmod u+x file     给file的属主增加执行权限
$ chmod 751 file     给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
$ chmod u=rwx,g=rx,o=x file 上例的另一种形式
$ chmod =r file     为所有用户分配读权限
$ chmod 444 file      同上例
$ chmod a-wx,a+r file      同上例
$ chmod -R u+r directory   递归地给directory目录下所有文件和子目录的属主分配读的权限
$ chmod 4755   设置用ID,给属主分配读、写和执行权限,给组和其他用户分配读、执行的权限。

5、改变文件或目录所有者

chown命令文件权限属性设置
chown命令改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。
用户可以是用户或者是用户D,用户组可以是组名或组id。
文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。
只有文件主和超级用户才可以便用该命令。

-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quite或——silent:不显示错误信息;
-h或--no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件;
-R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-v或——version:显示指令执行过程;
--dereference:效果和“-h”参数相同;
--help:在线帮助;
--reference=<参考文件或目录>:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;
--version:显示版本信息。

实例:
$ chown user:market f01  //把文件f01给uesr,添加到market组

6、安装JDK1.8

# cd /usr/lib
# tar –xvf /home/jdk-8-linux-x64.tar.gz
vi /etc/profile
在文件末尾加上
##########
JAVA_HOME=/usr/lib/jdk1.8.0
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
############

7、修改主机名

一:
#hostname hn1
二:
修改/etc/sysconfig/network中的 HOSTNAME=name1
三:
修改/etc/hosts文件 127.0.0.1 name1

8、时区和时间设置

查看服务器时间:
date
显示日历
cal
修改时区:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

修改时间:
date -s 9:06:50
9、安装必要编译环境
装wget
yum -y install wget

-- 比较推荐用这种方式
yum –y groupinstall "Development Tools"

安装net-tools,不然用不了ifconfig
yum install net-tools

安装gcc
yum install gcc gcc-c++ kernel-devel

-- 或者
yum -y install gcc
yum -y install gcc-c++
yum install make

10、查看CPU、内存使用状况

top

11、寻找服务的文件位置

which

必须熟练的基础linux命令

[root@wxcentos7 bin]# which ifconfig
/usr/sbin/ifconfig

whereis
必须熟练的基础linux命令
[root@wxcentos7 bin]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
[root@wxcentos7 bin]# whereis ifconfig
ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

12、查找文件:find

必须熟练的基础linux命令

# 与用户或用户组名有关的参数:
-user name : 列出文件所有者为name的文件
-group name : 列出文件所属用户组为name的文件
-uid n : 列出文件所有者为用户ID为n的文件
-gid n : 列出文件所属用户组为用户组ID为n的文件
# 例如:
find /home/wangxin -user wangxin # 在目录/home/wangxin中找出所有者为wangxin的文件

# 与文件权限及名称有关的参数:
-name filename :找出文件名为filename的文件
-size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件
-tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、
目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);
-perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;
-perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示
-perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示
# 例如:
find / -name passwd # 查找文件名为passwd的文件
find . -perm 0755 # 查找当前目录中文件权限的0755的文件
find . -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte
find / -size +120000k
# 查找全部目录中大于100MB的文件
[root@wxcentos7 bin]# find / -size +102400k
/sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
/sys/devices/pci0000:00/0000:00:0f.0/resource1
/home/wangxin/jdk-8u131-linux-x64.rpm
/home/wangxin/jdk-8u131-linux-x64.tar.gz
/home/Openfire.zip

13、curl使用

下载文件到本地
curl -o 1.jpg http://static.oschina.net/uploads/img/201204/20230218_pNXn.jpg

打印HTML输出
curl -L http://www.centos.org

# 将myfile.txt文件上传到服务器
curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com

# 下载xss.php文件
curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php

请求数据
使用GET方式请求数据,这种方式下直接通过URL传递数据
可以通过 --data/-d 方式指定使用POST方式传递数据
# GET
curl -u username https://api.github.com/user?access_token=XXXXXXXXXX

# POST
curl -u username --data "param1=value1&param2=value" https://api.github.com

# 也可以指定一个文件,将该文件中的内容当作数据传递给服务器端
curl --data @filename https://github.api.com/authorizations

post文件的实际例子:
客户端curl操作
curl -F file=@/home/new.txt http://192.168.43.170:8070/webUploader/UploadServlet

或指定参数:
curl --form name=myfileparam file=@/home/new.txt \
http://192.168.43.170:8070/webUploader/UploadServlet

上一篇:LeetCode OJ:Jump Game(跳跃游戏)


下一篇:C语言的源程序字符集与执行字符集